Open Source and Libre Fonts We Can Recommend

[Implementers’ doc] [WIP]

While we recommend using system fonts to get the best performance whenever possible, implementers might want to use Open Source Fonts to offer more choice to users. On the Android platform, for instance, system fonts are limited to one typeface per generic family (serif, sans-serif, fantasy, monospace, and cursive), which means implementers don’t get a lot of options out of the box.

Consequently, amongst the thousands of fonts available online, a pre-selection of 27 typefaces have been reviewed extensively. Those typefaces were selected based on multiple factors:

  1. they have enough styles (at least the 4 “core styles” i.e. regular, italic, bold, bold italic) so that implementers don’t break authors’ expectations;
  2. they can be used in body copy;
  3. they are designed with quality screen rendering in mind;
  4. they can be free alternatives to system fonts available on other platforms;
  5. they offer good-enough support for at least latin-based languages.

Here’s the complete list of those 27 fonts:

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), and in different reading modes (day, sepia, night).

Then each font was:

  1. compared to its closest reference (system font);
  2. tested against the latin, cyrillic and greek alphabets and languages;
  3. tested against the small capitals and numeric OpenType features.

Note: For some reason, a lot of Google Fonts don’t have the “™” character. Font stacks should consequently be fine-tuned so that this character doesn’t disrupt the reading experience.

Results

It is important to state that implementers can’t really go wrong with those 27 fonts.

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.

The 12 recommended fonts are simply providing the best rendering in the worst situations 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 which are not recommended.

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 (but supports latin + cyrillic + greek)
  • Lora
  • Spectral (using weight +100 might help e.g. medium as regular and extrabold as bold)

Average

  • DejaVu Sans
  • Faustina (Average+)
  • Gentium Book Basic
  • Heuristica
  • Volkhov

Good

Excellent

  • Clear Sans
  • Fira Sans
  • Gandhi Sans
  • IBM Plex Serif
  • Merriweather Sans
  • Merriweather Serif
  • Proza Libre
  • Rosario