Awesome Typography
Curated list about digital typography.
Contents
- Specifications
- OpenType
- JavaScript
- Python
- C
- C++
- C#
- Java
- Ruby
- Go
- Rust
- PHP
- Perl
- Processing
- Clojure
- UFO
- Tools with GUI
- Font Validator
- Font Testing Websites
- Miscellaneous
- Fonts
- TrueType
- Books
- Videos
Specifications
- Microsoft's Documentation
- Apple's Documentation
- The Compact Font Format Specification - Technical Note #5176.
- the-cff-table - Markdown conversion of the Adobe Tech notes 5176 and 5177 about CFF.
- Adobe's Documentation
OpenType
- OpenType: let's learn how modern fonts actually work
- The OpenType Cookbook - Introduction to OpenType features for type designers. (Source).
- A bit of font generation - Brief excursion into OpenType.
JavaScript
- OpenType.js - Read and write OpenType fonts.
- opentype-layout - Experimental word-wrapping and layout for OpenType.js.
- canvas-text-opentypejs-shim - Consistent text rendering for (backed by OpenType.js).
- CharacterMap - Online Character Map / Glyph / Icon / Font Viewer.
- font - Parse OTF/TTF file format directory from buffers for metadata.
- fontkit - Advanced font engine for Node and the browser.
- Minimal-font-generator - Font's Hello world.
- simple-cff-builder - Simple CFF builder for testing fonts with different Type2 charstrings.
- ttf2woff2 - Convert TTF files to WOFF2.
- ttf2woff - Convert TTF to WOFF, for Node.js.
- sfnt2woff - Convert TTF or OTF to WOFF, support Node.js and Browsers.
- ttf2eot - Convert TTF to EOT for Node.js.
- cubic2quad - Aproximates cubic bezier curves with quadratic ones.
- SVG font creator - Create SVG font from separate images.
- node-sfnt - SFNT parser and generator for Node.js.
- node-unicode-data - JavaScript-compatible Unicode data generator.
- fontwr - Font manager for web projects.
- Open Type playground - Playground for Open Type experiments with CSS.
- ChromaCheck - Feature test for color font support in browsers.
- Font Face Observer - Font load events, simple, small and efficient fontfaceobserver.com.
- Web Font Loader - Web Font Loader gives you added control when using linked fonts via @font-face.
- localFont - Implement localStorage web font caching in seconds.
- Fontello - This tool lets you combine icon webfonts for your own project.
- GitHub Font Preview - Adds a preview for fonts & glyphs on GitHub with OpenType.js.
- unidata - Unicode Character Database for JavaScript.
- UCD - Unicode Character Database for JavaScript.
- Character Set Inspector - Unicode Character Database for JavaScript.
- OpenType - OpenType font parser in JavaScript.
- opentype-geometry - Convert Text from OpenType font to three.js 3D.
- Plumin.js - Create and manipulate fonts in the browser.
- Typr.js - Process fonts in JavaScript.
- fonteditor-core - Read, write, transform fonts in JavaScript.
- fontmin - Minify font seamlessly.
- fontfacegen - Browser font-face generator for creating browser usable fonts from TTF's or OTF's.
- NType - 4D Type Extruder.
- node-emoji -
😏 simple emoji support for Node.js projects. - custom-fonts-in-emails - Extremely easy way to use custom fonts in emails without having to use art software.
- Google Fonts Infos - Extract info out of the Google Fonts archive.
- Hyphenopoly.js - JavaScript polyfill for client-side hyphenation.
- Hyphenator.js - JavaScript that implements client-side hyphenation of HTML-Documents.
- Hypher - Fast and small JavaScript hyphenation engine.
- Typeset.js - HTML pre-processor for web typography (hanging punctuation, soft hyphen insertion, optical margin outdents, small-caps conversion and punctuation substitution).
- Typeset - TeX line breaking algorithm in JavaScript.
- otfcc-cubic2quad - Losslessly turn CFF OTF to TTF using otfcc.
- caryll / shapeops - Boolean operations and overlap removal for curves.
- OpenType-SVG Workshop - OpenType-SVG Workshop Web application.
- A-binary-parser-generator - This project aims to create a tool that can turn a spec file into a parser skeleton for binary data files such as OpenType fonts, PNG images, etc.
- font-spider - Smart webfont compression and format conversion tool.
- Brotli.js A JavaScript port of the Brotli compression algorithm, as used in WOFF2.
- ideohint - Optimized hinter for Ideographs.
- subfont - Command line tool to inject Google font subsets used glyphs into your page.
- webfont - Awesome generator of webfont, WOFF2, WOFF, EOT, TTF and SVG.
- grapheme-splitter - JavaScipt library that breaks strings into their individual user-perceived characters.
- unicode-properties - Provides fast access to unicode character properties.
- unicode-tr51-emoji - Emoji data extracted from Unicode Technical Report #51 v1.0 – v5.0.
- fontblast - Give me an icon-font, and I'll create individual SVG/PNG files for all icons in it.
- fontplop - Fast, Simple, & Free Open Source Webfont Converter.
- svgfont2svgicons - Extract SVG icons from an SVG font.
- glyphhanger - Your web font utility belt. It shows what unicode-ranges are used on a web site (optionally for a font-family or for each font-family). It can also subset web fonts.
- Punycode.js - Robust Punycode converter that fully complies to RFC 3492 and RFC 5891.
- code-point-at - ES2015 String#codePointAt() ponyfill.
- Typefont - First open-source library that detects the font of a text in a image.
- node-fonttools - Native bindings to fonttools to decompile and compile fonts.
- font-toolkit - Font file manipulating in TypeScript.
- variableFont.js - Handles variable fonts through OpenType.js
Python
- fontTools - Library for manipulating fonts, written in Python.
- fontmake - Compile fonts from sources (UFO, Glyphs) to binary (OpenType, TrueType).
- FontReport - Tool to create PDF files containing glyph images and information about a font.
- fontdiff - Tool for finding visual differences between two font versions.
- kern-dump - Scripts for working with and analyzing kerning information (ATypI 2013).
- cu2qu - Cubic-to-quadratic bezier curve conversion.
- Font Bakery - Tools to prepare font families for inclusion in github.com/google/fonts.
- glyphNameFormatter - Generate list of glyphnames from unicode names.
- woffTools - Library for working with WOFF files.
- pyftfeatfreeze - With pyftfeatfreeze, you can “freeze” some OpenType features into a font.
- RoboFab - Library with objects that deal with data usually associated with fonts and type design.
- pyfontaine - Python tool to check font files for language/character set support.
- Glyph Nanny - Live report about potential drawing issues in your glyph.
- Kernagic - Semi-automatic font spacing tool.
- Huerta Tipográfica Letterspacer - HT Letterspacer is a tool for spacing fonts.
- OpenType-SVG Tools - Tools and sample files for making OpenType-SVG fonts.
- boxDrawing.py - Python script to draw all the box drawing characters and block elements based on parameters.
- scfbuild - Create OpenType-SVG color fonts from a set of SVG source files.
- color-emoji - Tool to build color fonts using Google color-font format (CBDT/CBLC).
- monospacifier.py - Convert variable-pitch fonts to monospace (useful for unicode and indentation-friendly programming).
- edf825/SVG-OpenType-Utils - SVG in OpenType Utils (!Old: 2013).
- Icon Font to PNG - Python script (and library) for exporting icons from icon fonts (e.g. Font Awesome, Octicons) as PNG images.
- Compositor - Basic OpenType GSUB and GPOS layout engine.
- UFO Extractor - Tools for extracting data from font binaries into UFO objects.
- Noto Tools - Noto fonts support tools and scripts.
- compreffor - CFF table subroutinizer for FontTools.
- font-line - OpenType vertical metrics reporting and font line spacing adjustment tool.
- Flat - Library for creating and manipulating digital forms of fine arts.
- PageBot - Scripted page layout program, as application inside Drawbot generating high quality typographic documents that support high quality fonts.
C
- otfcc - Parses & writes SFNT structures.
- AFDKO - Adobe Font Development Kit for OpenType. See AFDKO Overview.
- stb_truetype - Parse, decode, and rasterize characters for TrueType fonts. Single header file.
- FreeType - Freely available software library to render fonts.
- Raqm - Library for complex text layout.
- SheenFigure - Implementation of advanced typographic tables of OpenType specification.
- SheenBidi - SheenBidi is the world's most sophisticated implementation of latest unicode bidirectional algorithm.
- freetype-gl - OpenGL text using one vertex buffer, one texture and FreeType.
- WOFF - WOFF conversion reference code.
C++
- font to svg - Render characters from font files into an SVG path.
- LCDF Typetools - Utilities for manipulating OpenType, PostScript Type 1, and Multiple Master fonts.
- HarfBuzz - HarfBuzz OpenType text shaping engine.
- FontView - Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm.
- Text rendering tests - Test suite for text rendering.
- FTGLES - TrueType font rendering library for OpenGL ES on iOS devices (iPad and iPhone).
- TTFPatch - Mirror of TTFPATCH by Wolfram Esser, modified to support fonts conforming to newer OTF specifications, built for modern versions of Windows.
- stb-truetype-opengl-examples - Examples of TrueType font rendering in C++11 using stb_truetype library and OpenGL 3+.
- WOFF2
C#
- NRasterizer - Simple and clean TrueType font renderer written purely in c#.
- Typography - C# Font Reader (TrueType / OpenType / OpenFont), Glyphs Layout and Rendering.
- SixLabors.Fonts - Font loading and drawing library.
- SharpFont - Pure managed TTF / OTF reader and renderer.
Java
- sfntly - Library for Using, Editing, and Creating SFNT-based Fonts.
- Emoji-Tools - Multiple useful tools to help Android and iOS/OSX developers with creating and modifying Emoji Font files.
- Tehreer-Android - Library that gives full control over text related technologies such as bidirectional algorithm, open type shaping engine, text typesetting and text rendering.
Ruby
- emoji-extractor - Extracts high-resolution emoji pngs from Apple Color Emoji.ttf.
- font - Command-line font manager.
Go
Rust
- font-rs - The fastest font renderer in the world.
- font-kit - A cross-platform font loading library.
- RustType - Pure Rust alternative to libraries like FreeType.
- Pathfinder - Fast, practical GPU rasterizer for OpenType fonts.
- Font toolbox
- Parser for OpenType fonts
- Parser for PostScript fonts
- Parser for TrueType fonts
- freetype-rs - Rust bindings for FreeType library.
- freetype-sys - Low level bindings for the FreeType font library.
- truetype - Library for reading fonts from the TrueType format.
PHP
- PHP Font Lib - Library to read, parse, export and make subsets of different types of font files.
- JoliTypo - Microtypography fixer for the web.
- PHP SmartyPants - SmartyPants is a free web typography prettifyier tool for web writers. It easily translates plain ASCII punctuation characters into "smart" typographic punctuation HTML entities.
Perl
- Font::TTFMetrics - Fast & easy-to-use parser for true-type font (TTF) file.
Processing
- Fontastic - Processing library to create TrueType font files.
Clojure
- opentype.clj - A simple API over OpenType.js for Clojure. Runs on the JVM.
UFO
- ufo-spec - The official Unified Font Object specification source files.
- ufoLib - Low-level UFO reader and writer.
- ufoNormalizer - Tool that will normalize the XML and other data inside of a UFO.
- ufo2ft - UFO to FontTools.
- ufoJS - JavaScript API for the Unified Font Object.
Tools with GUI
Non-Free
- Fontself Adobe Illustrator & Photoshop extensions for creating vector and bitmap fonts by Drag&Drop. Make fonts the easy way!
- Robofont - UFO based (Mac only).
- Glyphs - Font editor (Mac only).
- Prototypo - Web based font generator with a parametric approach.
- FontLab Studio - Font editor for font professionals. Version 5 for Mac and Windows.
- DTL OTMaster - Highly sophisticated application for reviewing, editing and altering tables and contours of fonts with a snft file structure, as there are CFF and TTF flavored OpenType fonts, TrueType fonts and TrueType Collection fonts.
- 010 Editor - Professional text and hex editing with Binary Templates technology. OpenType template.
- Synalyze It! - Reverse Engineering and Binary File Analysis made easy. OpenType template.
- TransType 4 - Universal font converter.
Free
- FontForge - Free (libre) font editor for Windows, Mac OS X and GNU+Linux.
- TruFont - UFO3 font editor. À l’ancienne.
- Metapolator - Web-based GUI for creating UFO and Metafont fonts.
- Birdfont - Font editor which can generate fonts in TTF, EOT, SVG and BF format.
- Glyphr Studio - Free, web-based font editor, focusing on font design hobbyists.
- DTL OTMaster Light - In the Light editions of dtl OTMaster only the saving of files is disabled. Checking fonts and exporting OpenType Layout features files, be and ik formats, and Character Layout (.cha) files is possible though.
- fonteditor - Web-based TTF font editor, live at fontstore.baidu.com.
- FontArk FontArk is an innovative browser-based font editor, font creator (BETA), featuring the most versatile real-time multiple glyph editing system.
- TTFEdit - TrueType fonts editor. Allows for editing vector-based glyphs.
- OpenType-SVG-Font-Editor.
- SdfFontDesigner - A generator of bitmap font, based on ttf & otf, rendered with custom shaders in glsl
Font Validator
- Font Validator - Font Validator is a tool for testing fonts prior to release. See Install post for Mac.
- OpenType Sanitiser - The OpenType Sanitiser (OTS) parses and serialises OpenType files (OTF, TTF) and WOFF and WOFF2 font files, validating them and sanitising them as it goes.
- WOFF Validator - Online WOFF Validator.
Font Testing Websites
- Axis-Praxis - Axis-Praxis is a website for playing with OpenType variable fonts in modern browsers.
- Bulletproof Font Tester - Test your local or remote fonts with the proofing tool developed by a type designer, for type designers. Check out kerning, OpenType features, and language coverage. Explore and animate variation axes in variable fonts.
- Cyreal.org Font Testing Page - The Font Testing Page is a tool primarily intended for type designers to 'Drag and Drop' and quickly test their fonts into a browser (active fork of Impallari's testing page).
- Font Gauntlet - The Dinamo Font Gauntlet is a tool for proofing, generating and animating fonts.
- Wakamai Fondue - The tool that answers the question “what can my font do?”
- TypeNetwork TypeTools - Layout tools for exerimenting with variable fonts in various ways.
Miscellaneous
- TypeDrawers - Discussion forum for professionals and enthusiasts in the fields of typeface design, lettering, and typography.
- Font Squirrel Webfont Generator - Upload OTF or TTF fonts, receive webfonts.
- The State of Web Type - "Can I Use" for typography.
- UseModify - Open Source typefaces.
- ofont - Web interface for font collections (used by usemodify.com)
- Git for Type Designers
- designwithfontforge.com - Book about how to design new typefaces with FontForge. See designwithfontforge.com.
- FontTesting Page - Webpage for testing typefaces.
- CSS Utility OpenType - Simple, CSS utility classes for advanced typographic features. See it here.
- Alfred Special Characters - Typefacts Special Characters Workflow for Alfred 3.
- Typomanie.fr Ressources
- Drawing good paths Tutorial - Badly drawn outlines can cause headache. Your letters may look mangled or not appear at all. You can avoid these difficulties if you keep a few basic rules in mind.
- Deep Into OpenType Features - What are OpenType features?
- The A-Z of typographic terms - Typography terms in images.
- Emoj - Find relevant emoji from text on the command-line
😮 ✨ 🙌 🐴 💥 🙈 . - Emoji Wrap Monthly Newsletter - Bite-sized summary of what's happening in the world of emoji and Unicode.
- Crypto Puzzles - Functions for encryption and stegonagraphy as puzzles or brain teasers. Online demo.
- FDBP - Font Development Best Practice documentation.
- UnicodeChecker - Explore and convert Unicode.
- unicodes - Browse all of the unicodes.
- Method of Action - Method of Action is a collection of tools, games and articles to help you learn design.
- Encodings and character sets for Programmers - What every programmer absolutely, positively needs to know about encodings and character sets to work with text.
- Kernall - Kerning and letterspacing research.
- Type Facet - Collection of Python scripts for working with fonts. See TypeFacet Autokern
- OpenType feature reference - Documentation and other info about advanced font features
- Typography Supply An inventory of typographic tools.
- OpenType Feature Bundle - Syntax highlighting and snippets for OpenType feature development in TextMate/Sublime Text.
- Type Tools dotfiles - Setup for type tools.
- AGL & AGLFN - AGL / AGLFN (Adobe Glyph List / For New Fonts) simply provides mappings from glyph names to Unicode scalar values. See specification.
- The Terrible Secret of OpenType Glyph Substitution
- I Can Variable Font - Tips for making variable fonts.
- You, Me And The Emoji: Character Sets, Encoding And Emoji
- Emoji Rolodex - Resourceful links to emoji-related sites, plug-ins, and apps.
- OpenType_Table_Source - Documentation for Monotype's OpenType Layout Source File Format.
- jenskutilek/TypoLabs2016 - Code examples from Jens Kutilek's TypoLabs workshop.
- W3C - Fonts on the Web - Fonts on the Web.
- W3C - WebFonts Working Group
- Twitter Emoji (Twemoji) - The Twemoji library offers support for +2k emojis, including skin tone and gender modifiers.
- EmojiOne - EmojiOne™ is the open emoji standard.
- No @font-face Syntax will ever be Bulletproof, Nor Should It Be
- Typography is impossible - The practical guide to why laying out type never quite does what you want.
- JavaScript has a Unicode problem - The way JavaScript handles Unicode is… surprising, to say the least.
- homebrew-webfonttools - Homebrew formulae for font tools.
- Font Falsehoods - Falsehoods programmers believe about fonts.
- Letterpress Digest - The new podcast about letterpress.
- fontspeed - Newsletter on font loading by @zachleat.
- Font-Awesome-SVG-PNG - Font Awesome split to individual SVG and PNG files of different sizes along with Node.js based generator.
Fonts
- The Gilbert Font - OpenType-SVG font named after Gilbert Baker, the creator of the rainbow flag.
- Nanofont - Nano font for testing font format support (TrueType, WOFF, WOFF2).
- FiraSystemFontReplacement - Modified version of the Fira Sans fonts to replace the default system font on Mac OS X 10.10 and 10.11.
- SansBullshitSans Font - Every buzzword will be replaced by a Comic Sans-styled censorship bar.
- Blackout - One font to blackout them all.
- Compyx - 8-bit Multicolor OpenType font.
- LapisLegit - OpenType-SVG testfont.
- AIFont - The fist Chinese font that generated artificial intelligent.
- Noto Fonts - Noto’s goal is to provide a beautiful reading experience for all languages.
- Noto Emoji - Color and Black-and-White Noto emoji fonts, and tools for working with them.
- EmojiOne COLR/CPAL - EmojiOne font in COLR/CPAL layered format.
- EmojiOne OpenType-SVG - Color emoji OpenType-SVG font using EmojiOne Unicode 9.0 emoji with diversity and country flags.
- Twitter Color Emoji Font - Color emoji OpenType-SVG font using Twitter Unicode 9.0 emoji with diversity and country flags.
- Bixa Color - Building Bixa Color, a color font for the web pixelambacht.nl/2016/building-bixa-color/.
- fontwr-fonts - Fonts repository for fontwr.
- Bungee - Chromatic signage typeface for vertical and horizontal setting.
- Aerial Bold Aerial Bold is the first map and typeface of the earth.
- wavefont Typeface for rendering data: waveforms, spectrums, diagrams, bars etc.
- Adobe Variable Font Prototype - Variable font example in OpenType-CFF2 & TrueType formats.
- Microsoft open source fonts - Central location to share Microsoft's open source fonts.
- Reinebow - OpenType-SVG color font.
- Freizer - OpenType-SVG color font.
- Multicoloure - OpenType-SVG color font based on Multicolore Vector Typeface.
- null-ttf - This font is null. It's the smallest possible TrueType binary still valid on OS X and with most of its bytes wiped out.
- Monotype Variable Font Demo
- CFF opcode test fonts - OTF fonts for testing CFF opcode support.
- TestFont - Font family for testing OpenType implementations.
- BuffaloGals - Buffalo Gals is one of the very first “Variable Fonts”, originally made in 1992 for an Apple TrueType GX developer CD.
- Adobe Fonts / Source Emoji - Source Emoji is an emoji font project that began development in order to provide monochrome representative glyphs to the Unicode Consortium for emoji candidates that have been accepted by the UTC (Unicode Technical Committee) but have not yet been fully ratified to become a part of the official standard.
- Hasklig - Code font with monospaced ligatures.
- Firefox OS Emojis - Emoji set from Mozilla available as SVGs and TTF font.
- Iosevka - Slender typeface for code, from code.
- Raleway - Elegant sans-serif, designed in a single thin weight.
- Adobe NotDef - Maps 1,111,998 Unicode code points to 2,048 .notdef glyphs.
- Adobe Blank - Maps 1,111,998 Unicode code points to 2,048 non-spacing and non-marking glyphs.
- Adobe Blank 2 - Based on Adobe Blank, and differs mainly in that the number of glyphs has been reduced to only two, thanks to the Format 13 'cmap' subtable.
- Width Test - For testing width-related GSUB features, specifically 'fwid' (Full Widths), 'hwid' (Half Widths), 'twid' (Third Widths), and 'qwid' (Quarter Widths).
- Source Han Sans - Set of OpenType/CFF Pan-CJK fonts.
- Source Han Serif - Set of OpenType/CFF Pan-CJK fonts.
- Open Emoji - Will provide open and free access to visual communications technology, namely emoji, for the entire universe.
- Overpass - Open source font family inspired by Highway Gothic.
For more, check awesome-fonts!
TrueType
- Truetype font software - List (Big!) with descriptions here.
Books
- Fonts & Encodings - From Advanced Typography to Unicode and Everything in Between Google Books Preview.
- Unicode Explained - There are hundreds of different encoding systems for mapping characters to numbers, but Unicode promises a single mapping. Google Books Preview.
Videos
- Talks from TYPO conferences
- Tales of ⌧! Can You Tell Your Story When Your Character Is Undefined?! by Persa Zula
Contribute
License
To the extent possible under law, Joël Galeran has waived all copyright and related or neighboring rights to this work.