System fonts

Last update: 02 November, 2020
Table of contents

I wanted to compile a list with the pre-installed typefaces that come with the most popular operating systems, also known as system fonts. I focus, for now, on typefaces that can be used for setting body text—meaning that they have font files for regular, italic, bold, and bold italic—and not so much on display typefaces.

An advantage of system fonts over a web font is that they improve the loading performance of a web page because you don’t download extra font files. Additionally, they don’t cause a layout shift when they load as the web fonts do. You can also use system fonts that are similar to your web font to reduce that layout shift or to cover languages that your web font doesn’t cover. Finally, they give you access to some quality typefaces that would otherwise cost a lot to license for web use.

The main disadvantage of system fonts is consistency. You can’t be sure that a font will be available on all operating systems for all users. Even if you find similar alternatives, the fonts will probably have different metrics that may break a design. You can go around that if you use a web font for the critical pieces of your UI (e.g. buttons, menus, or large headlines) and use a system font for body text or a contrasting system font for captions.

Before web fonts, system fonts were the only option for webpages. As a result, there are a ton of resources about them, but most of them are outdated, and I didn’t want to go through them to discover the one that suited me. Additionally, Microsoft and Apple have some nice lists with the pre-installed fonts, so I decided to scrap that data and put them in a table with some filters.

Because system fonts were the only option for designing a website in the past, there are a lot of strong opinions against them. Nowadays, I can argue that popular Google Fonts or some commercial fonts are overused too.

I can’t say that I learned something exciting to share, but maybe I can offer you some alternative font stacks you haven’t consider, organized by typeface classification. You can also use the table to find a better combination by yourself.

Before I give you the table with the system fonts, I want to point out some things first:

  • I didn’t include Android fonts because Android comes with only 3 versatile typefaces (with at least the 4 font files I mentioned above) pre-installed: Roboto (Grotesque sans-serif), Noto Serif (contemporary serif that’s based on Droid Serif), and Droid Sans Mono (monospace). You can’t set any of them by name, only with keywords like sans-serif, serif, etc. I have more details on the disclaimers.
  • Windows offers some nice extra fonts with the pan-European supplemental fonts feature. It also has fonts that you can use with office applications, and some of them can be used inside the browser.

See the complete list of disclaimers / future improvements.

System fonts table

Skip controls

Filters

  • No filters selected.

55 fonts match the filters.

Go to filters
NameTypeClassificationOperating SystemWeights & StylesNotes
Arialsans-serifneo-grotesqueWindows 10, iOS 13, macOS Catalina.400, 400i, 700, 700i, 900900 not available on iOS 13, macOS also has Arial narrow.
Athelasserifhumanist (old-style)iOS 13 (document font), macOS Catalina (document font).400, 400i, 700, 700i“Inspired by Britain’s classic literature, Athelas is an elegant book font family for screen and print.” From: https://www.type-together.com/athelas-font
Avenirsans-serifgeometriciOS 13, macOS Catalina.300, 300i, 400, 400i, 500, 500i, 800, 800i, 900, 900i
Avenir Booksans-serifgeometriciOS 13, macOS Catalina.400, 400i
Avenir Nextsans-serifgeometriciOS 13, macOS Catalina.200, 200i, 400, 400i, 500, 500i, 600, 600i, 700, 700i, 800, 800iIt also has the same weights/styles for condensed (Avenir Next Condensed). “The Avenir® Next font family was designed by Adrian Frutiger in collaboration with Monotype Type Director Akira Kobayashi. It was an expanded reworking of the original font family (released as an OpenType font with both oldstyle and lining figures) and received considerable acclaim upon its publication by Linotype in 2004.” From: https://www.fonts.com/font/linotype/avenir-next/story
BaskervilleseriftransitionalmacOS Catalina, iOS 13.400, 400i, 600, 600i, 700, 700i
Bodoni 72, Bodoni 72 Oldstyle, and Bodoni 72 Smallcaps serifrationalmacOS Catalina, iOS 13.400, 400i, 700
Book Antiquaserifneo-humanistmacOS Catalina (document font).400, 400i, 700, 700i
Bookman Old StyleseriftransitionalmacOS Catalina (document font).400, 400i, 700, 700ihttps://www.typewolf.com/site-of-the-day/fonts/bookman
Calibrisans-serifhumanistWindows 10.300, 300i, 400, 400i, 700, 700i
CambriaseriftransitionalWindows 10.400, 400i, 700, 700i, math
Candarasans-serifhumanistWindows 10.300, 300i, 400, 400i, 700, 700i
Carlitosans-serifhumanistiOS 13 (document font), macOS Catalina (document font).400, 400i, 700, 700iIt is based on Lato
Century Gothicsans-serifgeometricmacOS Catalina (document font).400, 400i, 700, 700i
Century SchoolbookserifrationalmacOS Catalina (document font).400, 400i, 700, 700i
Charterserifcontemporary, transitionaliOS 13, macOS Catalina.400, 400i, 700, 700i, 900, 900i
Chochinserifhumanist (old-style)iOS 13, macOS Catalina.400, 400i, 700, 700i
Comic SanscursivecursiveWindows 10.400, 400i, 700, 700i
ConsolasmonospacemonospaceWindows 10.400, 400i, 700, 700i
Constantiaserifcontemporary, transitionalWindows 10.400, 400i, 700, 700i
Corbelsans-serifhumanistWindows 10.300, 300i, 400, 400i, 700, 700i
Courierslab serifmonospacemacOS Catalina, iOS 13.400, 400i, 700, 700i
Courier Newslab serifmonospaceWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i
DidotserifrationalmacOS Catalina, iOS 13.400, 400i, 700
Forgotten Futuristsans-serifdisplay futuristmacOS Catalina (document font).400, 400i, 700, 700ihttps://typodermicfonts.com/forgotten-futurist/
Futurasans-serifgeometricmacOS Catalina, iOS 13.500, 500i, 700It also has condensed for 500 and 800? (extrabold).
GalvjiunknownunknownmacOS Catalina.400, 400i, 700, 700iThe iOS doesn't have the oblique.
Garamondserifhumanist (old-style)macOS Catalina (document font).400, 400i, 700, 700i
GeorgiaseriftransitionalWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i
Gill Sanssans-serifhumanist, geometricmacOS Catalina, iOS 13.300, 300i, 400, 400i, 600, 600i, 700, 700i, 900900? ultrabold
Helveticasans-serifneo-grotesquemacOS Catalina, iOS 13.300, 300i, 400, 400i, 700, 700i
Helvetica Neuesans-serifneo-grotesquemacOS Catalina, iOS 13.100, 100i, 200, 200i, 300, 300i, 400, 400i, 500, 500i, 700, 700iIt also has 700 and 900 for condensed.
Helvetica CYsans-serifneo-grotesquemacOS Catalina (document font).400, 400i, 700, 700i
Hoefler Textserifhumanist (old-style)macOS Catalina, iOS 13.400, 400i, 700, 700i
Iowan Old Styleserifhumanist (old-style)iOS 13 (document font), macOS Catalina (document font).400, 400i, 700, 700i, 900, 900i900, 900i are available only on macOS.
MenlomonospacemonospacemacOS Catalina, iOS 13.400, 400i, 700, 700i
MshtakanunknownunknownmacOS Catalina.400, 400i, 700, 700i
New Peninim MTunknownunknownmacOS Catalina.400, 400i, 700, 700i
Optimasans-serifhumanist, inscriptionalmacOS Catalina, iOS 13.400, 400i, 700, 700i, 900900? ultrablack
PT Sanssans-serifhumanistmacOS Catalina.400, 400i, 700, 700iAlso 400, 700 for small optical size (PT Sans Caption), and 400, 700 for narrow width (PT Sans Narrow).
PT SerifseriftransitionalmacOS Catalina.400, 400i, 700, 700iAlso 400, 700 for small optical size (PT Serif Caption).
Palatino Linotype, Palatino on macserifneo-humanistWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i
Rockwellslab serifgeometricmacOS Catalina, iOS 13.400, 400i, 700, 700i
Segoe UIsans-serifhumanistWindows 10.200, 200i, 300, 300i, 400, 400i, 600, 600i, 700, 700i, 900, 900i
Sitka Text, Sitka Small, Sitka Subheading, Sitka Heading, Sitka Display, Sitka BannerserifcontemporaryWindows 10.400, 400i, 700, 700i
STIXGeneralseriftransitionalmacOS Catalina, iOS 13 (document font).400, 400i, 700, 700ihttps://www.stixfonts.org/
STIXNonUnicodeseriftransitionalmacOS Catalina, iOS 13 (document font).400, 400i, 700, 700ihttps://www.stixfonts.org/
Shree Devanagari 714unknownunknownmacOS Catalina.400, 400i, 700, 700i
Seraveksans-serifhumanistmacOS Catalina (document font), iOS 13 (document font).200, 200i, 300, 300i, 400, 400i, 500, 500i, 700, 700i
Superclarendonslab serifgrotesquemacOS Catalina (document font), iOS 13 (document font).300, 300i, 400, 400i, 700, 700i, 900, 900i
TimesseriftransitionalmacOS Catalina.400, 400i, 700, 700i
Times New RomanseriftransitionalWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i
Trebuchet MSsans-serifhumanistWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i
Tw Cen MT or Twentieth Centurysans-serifgeometricmacOS Catalina (document font).400, 400i, 700, 700i
Verdanasans-serifhumanistWindows 10, macOS Catalina, iOS 13.400, 400i, 700, 700i

Some system font stacks

7 typefaces are available on all three of Windows, macOS, and iOS:

  • Arial,
  • Courier New,
  • Georgia,
  • Palatino (Palatino Linotype on Windows),
  • Times New Roman,
  • Trebuchet MS,
  • and Verdana.

If you value consistency, you can go with one of them. I will mention them in the following sections where I organize the font stacks by classification.

Default OS font stack

The first option you have—and one of the best—is to use the default operating system fonts. You can do this with the system-ui value for the font-family in CSS:

html {
  font-family: system-ui, sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

If you want better support for the system-ui value, you can use the system-font-css package that creates a @font-face that references the fonts by file name (not by font family name). This system font stack uses San Francisco (neo-grotesque sans-serif) on macOS/iOS, Segoe UI (humanist sans-serif) on Windows, Roboto (grotesque sans-serif) on Android, and Ubuntu (humanist sans-serif) on Ubuntu.

I used to include the system-font-css package on this blog, but I noticed that it renders Tahoma on macOS Firefox for some reason. As a result, if you care about Firefox on mac, it’s better to explicitly state the family names in the stack. I copied this stack from the VS Code autocomplete feature, and I added the system-ui value in front:

html {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

If you want to get the system fonts in older operating systems (Windows XP, Mac before Yosemite), you can append their system fonts before the sans-serif keyword (I haven’t tested this). For example, if you take the system-font-css package’s readme and source code as an example:

html {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", "Lucida Grande",
    Tahoma, sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

It’s also worth mentioning that we now have keywords for standard font families such as ui-serif, ui-sans-serif, ui-monospace, and ui-rounded, but, at the time of writing, only newer versions of Safari support them. The keywords are still useful because it’s hard to reference the system fonts inside the browser in macOS/iOS (for example: San Francisco Mono or New York) due to the fact that they have obscure font family names. For example, you can’t say that you want font-family: "San Francisco" and get San Francisco.

In the picture below, you can see the typefaces I mentioned in this section. For this one and for the following specimens, I didn’t adjust the x-height so you can see the metric differences in the same font size. You can view the full-size image in a new window if you click on the image.

System fonts specimen
Top to bottom: Segoe UI, San Francisco, Roboto, Ubuntu.

Neo-grotesque stack

A popular stack, you probably have already seen, is an Arial/Helvetica stack:

html {
  font-family: "Arial Nova", Helvetica, Arial, sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

You get Roboto on Android, which is a bit less uniform than Helvetica, but it’s a pretty close match. You can alter the previous font stack by adding Helvetica Neue for macOS/iOS because it has more weights than Helvetica. You can also add Neue Haas Grotesk Text Pro (what a mouthful) or Arial Nova over Arial for Windows, in case a Windows user downloaded the pan-European supplemental fonts:

html {
  font-family: "Helvetica Neue", "Neue Haas Grotesk Text Pro",
    "Arial Nova", Helvetica, Arial, sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

You can also use San Francisco (via the -apple-system, BlinkMacSystemFont values) over Helvetica on macOS/iOS.

Neo-grotesque system fonts specimen
Top to bottom: Arial, Helvetica Neue, Neue Haas Grotesk Text Pro, Roboto.
The tricky part with those stacks is that macOS/iOS have Arial, so if you place it earlier than Helvetica, you’ll get Arial. In addition to that, Windows have Helvetica as an alias for Arial. In the previous stacks, I prefer Helvetica over Arial—that’s why the order may seem mixed-up or random.

Humanist sans-serif

You have a lot of options for a humanist sans-serif. You can take Trebuchet MS or Verdana if you want consistency because there are both available in Windows, macOS, and iOS:

html {
  font-family: "Trebuchet MS", sans-serif;
  /* or */
  font-family: "Verdana Pro", Verdana, sans-serif;
}
How your browser renders the stacks

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

You can’t say that either of them is a good match for Roboto, though.

The links above are from an app I made that compares typefaces. It will not work on Android because you’ll be comparing Roboto with Roboto.

Trebuchet MS is a bit dark, and because I’m not the biggest fan, Gill Sans would be a better alternative for macOS/iOS. On the other hand, Trebuchet is a lot larger than Gill Sans and may create inconsistencies between platforms.

html {
  font-family: "Gill Sans Nova", "Gill Sans", "Gill Sans MT",
    "Trebuchet MS", sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

Other options you have on Windows include Segoe UI, Corbel, and Candara. I like the last two because they have nice Greek. In the following stack, I put all of them by preference, but you can keep only the one you like. On macOS/iOS, you can use Optima. Optima has a stronger character than the 3 previous Windows fonts, but I can’t find a closer match.

html {
  font-family: Optima, Candara, Corbel, "Segoe UI", sans-serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

Roboto is not a close match on Android, but at least it has a lot of weights and OpenType features.

Humanist sans-serif typeface specimens
Top to bottom: Gill Sans MT, Trebuchet MS, Verdana, Optima, Candara, Corbel, Roboto.

Old-style (humanist) serif

Windows doesn’t offer an old-style typeface, but it offers Palatino Linotype which is pretty close. For Mac and iOS, you can go with Hoefler Text:

html {
  font-family: "Hoefler Text", "Palatino Linotype", Palatino, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

If you like Palatino and you want more consistency, you can drop Hoefler Text from the previous stack and use only Palatino because they are not similar in metrics (see the image below). The result in Android is not very good because you get Noto Serif which is a contemporary/transitional serif and doesn’t share many similarities with Palatino.

Old-style serif typeface specimens
Top to bottom: Garamond Monotype, Hoefler Text, Palatino Linotype, Noto Serif.
Although Windows doesn’t seem to offer many of the well-known typefaces that macOS/iOS are bundling, it offers some of them with the office applications. For example, I have installed on my computer (probably through an office 365 subscription) 4+ weights/styles for the following typefaces: Century Schoolbook, Century Gothic, Book Antiqua, Tw Cen MT, Rockwell, Perpetua, Franklin Gothic/Franklin Gothic Book, Garamond, and Bodoni MT. As a result, If you like one of the previous typefaces, you can put them in front of the stacks. A quick example that comes to mind is Book Antiqua over Palatino Linotype because they are similar, and the hinting of the former looks better on Windows.
Specimens for typefaces bundled with office applications.
Top to bottom: Century Schoolbook, Century Gothic, Book Antiqua, Rockwell, Perpetua, Franklin Gothic, Bodoni MT.

Transitional serif

For a transitional serif, you have a lot of options. First of all, you have a pretty close match for Android (Noto Serif) and two options for Windows: Times New Roman and Georgia that are both available in macOS and iOS. If I had to choose, I would go with Georgia over Times New Roman because the latter is overused.

html {
  font-family: "Georgia Pro", Georgia, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

On the other hand, Times New Roman has wide character support (something English focused typographers overlook) and some pretty cool swashes in italic—at least in the updated Windows version.

html {
  font-family: "Times New Roman", Times, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

On macOS/iOS you have more options. For example, you can throw in something like Baskerville:

html {
  font-family: Baskerville, "Georgia Pro", Georgia, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

An alternative is Charter:

html {
  font-family: Charter, "Georgia Pro", Georgia, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

If you are interested in math symbols, you can add Cambria as a fallback, further down in the stack, for Windows. You can also try Constantia on Windows.

Transitional serif typeface specimens
Top to bottom: Baskerville, Times New Roman, Georgia, (Bitstream) Charter, Constantia, Noto serif.

Contemporary serif

Windows 10 offers Sitka that comes in 6 optical sizes. If I read the Sitka description on the Microsoft Typography page correctly, the optical sizes are mainly for small sizes though—36px and below. You can choose Charter for macOS/iOS:

html {
  font-family: Charter, "Sitka Text", "Georgia Pro", Georgia, serif;
  /* Or even subheading for body text. */
  font-family: Charter, "Sitka Subheading", "Georgia Pro", Georgia, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

Add a different optical size for the headings:

h1,
h2,
h3 {
  font-family: Charter, "Sitka Banner", "Georgia Pro", Georgia, serif;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

In Android, you get Noto Serif which is a good match.

Contemporary serif typeface specimens
Top to bottom: Sitka Banner, (Bitstream) Charter, Noto Serif.

Monospace

You can go with Courier New for a consistent design because it’s available on Windows, macOS, and iOS:

html {
  font-family: "Courier New", Courier, monospace;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

On Android, you’ll get Cutive Mono due to the Courier aliases, which is similar in color to Courier New but not in proportions. I’d say that is a good match.

If you want to use the monospaced font for code, I suggest Consolas for Windows, San Francisco Mono/Monaco/Menlo for macOS/iOS, and Droid Sans Mono for Android:

html {
  font-family: Consolas, ui-monospace, Monaco, Menlo, monospace;
}
How your browser renders the stack

A peep at some distant orb has power to raise and purify our thoughts like a strain of sacred music, or a noble picture, or a passage from the grander poets. It always does one good.

Monospace typeface specimens
Top to bottom: Courier New, Cutive Mono, Consolas, San Francisco Mono, Droid Sans Mono.

Resources

Disclaimers/future improvements

  • Android comes with the following typefaces pre-installed:
    • Roboto via the keywords: sans-serif, arial, helvetica, tahoma, verdana, sans-serif-thin, sans-serif-light, sans-serif-medium, sans-serif-black, and sans-serif-condensed.
    • Noto Serif via the keywords: serif, times, times new roman, palatino, georgia, baskerville, goudy, fantasy, and ITC Stone Serif.
    • Droid Sans Mono via the keywords monospace, sans-serif-monospace, and monaco.
    • Cutive Mono via the keywords serif-monospace, courier, courier new.
    • Coming Soon via the casual keyword.
    • Dancing Script via the cursive keyword.
    • Carrois Gothic SC via the sans-serif-smallcaps keyword.
    • Noto Sans, Droid Sans, and Nanum Gothic as fallbacks (you can’t set them with a keyword or by name).
  • Linux has mainly open-source (libre) fonts. If I recall correctly, it offers free alternatives to popular typefaces and aliases for them, the same thing Android does. I can add in the future the fonts bundled with a popular distribution like Ubuntu. The market share for Linux doesn’t seem to be over 1%, though (take that data with a grain of salt). On my blog, the Linux users are 10%, but it’s a programming blog with a very small sample size.
  • In the table, I mention macOS and iOS document fonts. I initially thought (because I don’t use a Mac or an iPhone) that these fonts will be available if requested by name in the browser. After testing on Mac with a virtual machine, I saw that they are not available inside the browser and are more like the Microsoft office fonts, so they are not reliable to use.
  • macOS/iOS offer two of the best system fonts: Futura and Avenir. It’s a shame that I didn’t include them in a list, but Windows doesn’t offer a geometric sans-serif typeface to create a consistent stack. Maybe you can add them in the humanist stack, in Optima’s place, because the Macs do not offer a lot of humanist sans-serif options.
  • Older versions of Windows and macOS/iOS are not covered. The differences shouldn’t be large, though; most of the fonts should be available on older distributions too.
  • The unknown in the classifications is there because I couldn’t find reliable information about those typefaces.

Other things to read

Popular

Previous/Next