This is a draft for a future implementersā doc. Please feel free to review the recommendations.
While we recommend using system fonts to get the best performance whenever possible, implementers might want to use Open Source Fonts in order to provide users with more choice. On the Android platform, for instance, system fonts are limited to one typeface per family, which means you donāt get a lot of options out of the box.
Consequently, amongst the thousands of fonts available online, a pre-selection of 26 have been reviewed in details. Those typefaces were selected based on multiple factors:
- they have enough styles (4: regular, italic, bold, bold italic) and donāt break authorsā expectations;
- they can be used in body copy;
- they are of good quality and were designed with screen rendering in mind;
- they can be free alternatives to system fonts available on other platforms;
- they offer good-enough support for at least latin languages.
Hereās the complete list of those 27 fonts:
- IBM Plex Sans
- IBM Plex Serif
- Crimson Text
- Spectral
- Vollkorn
- Lora
- Gandhi Sans
- Gandhi Serif
- Gentium Book Basic
- PT Sans
- PT Serif
- Merriweather Sans
- Merriweather Serif
- Alegreya
- Heuristica
- Bitter
- Charis SIL
- Faustina
- Volkhov
- Libre Franklin
- DejaVu Sans
- Rubik
- Source Sans Pro
- Fira Sans
- Proza Libre
- Rosario
- Clear Sans
How were those fonts reviewed
Each of the 27 fonts has been undergoing tests in real rendering situations.
They were rendered on the Android, iOS, MacOS, and Windows platforms, using SD and HD displays when possible, in multiple browsers (IE11, Edge, Safari, Chrome, Firefox).
Then each font was:
- compared to its closest reference (system font);
- tested against the latin, cyrillic and greek languages;
- tested against the small capitals and numeric OpenType features.
Note: For some reason, a lot of Google Fonts donāt have the āā¢ā character so youād better fine-tune your font-stacks.
Results
It is important to state that you canāt really go wrong with those fonts. We simply decided to go with fonts providing the best rendering in the worst situation possible (Windows ClearType on a mediocre screen), and the best language support as well. If you donāt have to support Windows, for instance, then you can try fonts we donāt recommend.
We sometimes forget that users canāt necessarily afford bleeding-edge technology, which is why it was important to review those fonts in various conditions.
For your information, here are the results for Windows ClearType rendering at 1em
(or 100%
).
Buggy
- IBM Plex Sans (will become excellent once hinting issues are fixed)
Mediocre
- Alegreya
- Crimson Text (supports latin + cyrillic + greek though)
- Lora
- Spectral (maybe try using medium instead of regular on Windows)
Average
- Gentium Book Basic
- Heuristica
- Volkhov
- DejaVu Sans
- Faustina (Average+)
Good
Excellent
- IMB Plex Serif
- Merriweather Sans
- Merriweather
- Gandhi Sans
- Fira Sans
- Proza Libre
- Rosario
- Clear Sans
Recommended Typefaces
Twelve typefaces are recommended so that implementers can pick a few among this extended selection.
Note: Supported Languages focus on diacritics. Support for latin languages like English, which are not using diacritics, is implied.
Serif fonts
Charis SIL
- Reference: Charter
- Classification: Slab
- Styles: 4
- Metrics:
- Contrast: TBD
- x-height: TBD
- weight: TBD
- width: TBD
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic.
OpenType Features: none
Faustina
- Reference: Charter, Bookerly
- Classification: Slab
- Styles: 8
- Metrics:
- Contrast: 0.39
- x-height: 0.76
- weight: 0.06
- width: 0.45
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish.
OpenType Features: none
IBM Plex Serif
- Reference: Georgia, Droid Serif
- Classification: Modern
- Styles: 6
- Metrics:
- Contrast: TBD
- x-height: TBD
- weight: TBD
- width: TBD
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish.
OpenType Features: none
Merriweather
- Reference: Iowan Old Style
- Classification: Modern
- Styles: 8
- Metrics:
- Contrast: 0.51
- x-height: 0.75
- weight: 0.08
- width: 0.52
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic.
OpenType Features: none
PT Serif
- Reference: Charter
- Classification: Slab
- Styles: 4 (+ 2 for captions)
- Metrics:
- Contrast: 0.55
- x-height: 0.71
- weight: 0.06
- width: 0.47
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic.
OpenType Features: none
Vollkorn
- Reference: Athelas, Bembo
- Classification: Modern
- Styles: 8
- Metrics:
- Contrast: 0.53
- x-height: 0.68
- weight: 0.06
- width: 0.45
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic
OpenType Features: small caps, numeric figure values, numeric spacing values (and more)
Sans-serif fonts
Clear Sans
- Reference: Trebuchet MS
- Classification: Sans
- Styles: 8
- Metrics:
- Contrast: TBD
- x-height: TBD
- weight: TBD
- width: TBD
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic, Greek.
OpenType Features: none
Fira Sans
- Reference: Seravek
- Classification: Humanist
- Styles: 18
- Metrics:
- Contrast: 0.25
- x-height: 0.76
- weight: 0.07
- width: 0.42
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic, Greek.
OpenType Features: none
Libre Franklin
- Reference: Arial, Helvetica, San Fransisco, Franklin Gothic
- Classification: Sans
- Styles: 18
- Metrics:
- Contrast: 0.28
- x-height: 0.71
- weight: 0.07
- width: 0.44
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish.
OpenType Features: none
Merriweather Sans
- Reference: Arial, Helvetica, San Fransisco
- Classification: Sans
- Styles: 8
- Metrics:
- Contrast: 0.30
- x-height: 0.75
- weight: 0.08
- width: 0.45
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish.
OpenType Features: none
PT Sans
- Reference: Seravek
- Classification: Humanist
- Styles: 4 (+ 2 for captions + 2 for narrow)
- Metrics:
- Contrast: 0.16
- x-height: 0.71
- weight: 0.06
- width: 0.39
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish, Cyrillic.
OpenType Features: none
Source Sans Pro
- Reference: Seravek
- Classification: Humanist
- Styles: 12
- Metrics:
- Contrast: 0.20
- x-height: 0.74
- weight: 0.06
- width: 0.39
Supported Languages: Albanian, Bosnian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Hungarian, Italian, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish, Turkish.
OpenType Features: numeric figure values
Windows
We recommend picking system fonts if you donāt find any in this list of recommendations. Indeed, Microsoft has been investing a lot of resources to design fonts that render perfectly on this platform, especially with ClearType. Typefaces like Cambria, Constantia, Arial Nova, Georgia Pro, Sitka, Verdana Pro, and more, offer a large amount of styles, excellent language support and perfect rendering, even on mediocre screens.
Thereās really no need to use an alternative if you can use those typefaces.