Font Design & Development
Font development involves both graphic design and technical engineering. Here are some useful resources.
General resources
Font Development Best Practice (FDBP) provides detailed technical guidance on font development. We plan to eventually migrate the contents of FDBP to this site. The information below is only a small portion of that available in FDBP.
Fonts and Layout for Global Scripts has some excellent foundational material on font concepts and a detailed introduction to the complexities of OpenType.
The Google Fonts Guide contains information for font developers wishing to submit their fonts to the Google Fonts service. Although some of the guidance is unique to Google Fonts, much of it is generally good practice.
The documentation for font design tools, such as Glyphs and FontLab is also a rich source of information.
Formats
The most common format for fonts used on desktop computers is OpenType. There are two primary flavors of OpenType fonts, TrueType (.ttf) and CFF (.otf). The primary difference between them is how glyph outlines are defined. Both offer the same advanced typograpic features. Font design tools happily read, write, and convert between them. The older TrueType (only) format, which confusingly shares the same file extension (.ttf), did not offer advanced features.
Web fonts have also had a variety of flavors (WOFF, SVG, EOT, and others), however the growing standard is WOFF/WOFF2, which repackages OpenType fonts into a highly compressed and efficient file. All font design tools and current web browsers support WOFF.
Font sources are stored in a variety of formats. These are not installable fonts:
- Glyphs (.glyphs, .glyphspackage)
- FontLab (.vfb, .vfc, .vfj)
- FontForge (.sfd)
- Unified Font Object (UFO) (.ufo)
We recommend that font projects use UFO (version 3) and avoid proprietary formats. UFO is a public, platform-neutral, human-readable, text-based source format for storing font source data. It is used by many foundries, including Adobe, as their primary source format. See the FDBP for more information on using UFO.
Another common source format, Glyphs, is well-supported but tends to constantly change and does not have an well-maintained public standard. The glyphsLib project provides a bridge between the Glyphs and UFO formats.
Font naming, versioning, metrics, and metadata
See the FDBP sections on metadata
Design and development tools
In addition to the font tools mentioned earlier (Glyphs, FontLab, FontForge, and glyphsLib) there are a few other notable tools for design and engineering:
- Robofont - Powerful and flexible design tool for UFO sources
- fonttools - Python-based library for manipulating fonts
- FontParts - Python-based API for creating and editing parts of fonts
- pysilfont - Python-based utilities, mainly for working with UFO sources
- Font Bakery - Automated font testing tool
Production and distribution tools
Font design tools can export fonts in common formats (.ttf, .otf, .woff) but the process can be complex and time consuming for a large font family or portfolio of font families. Foundries often develop their own automated internal font build systems and workflows to produce fonts from Glyphs or UFO sources. These connect a variety of tools to compile and build fonts. Two of the publicly-available systems are:
- fontmake - This is the most widely used build system, developed by Google, although it’s only one part of their overall workflow.
- Smith - Framework for building, testing, and maintaining fonts and other writing system components.
Modifying and building SIL fonts
See the SIL Font Development Guide for detailed guidance on how to build, modify, and contribute to SIL font projects.