Type something to search...
What are web-safe fonts and are they still relevant?

What are web-safe fonts and are they still relevant?

Web-safe fonts are typefaces that come preinstalled on most computers and phones, so a website can use them without downloading anything. The classic list includes Arial, Helvetica, Times New Roman, Georgia, Verdana, Tahoma, Trebuchet MS and Courier New, most of which date from Microsoft's Core Fonts for the Web project in the 1990s. Today the term is only partly accurate: these fonts are reliably present on Windows, macOS and iOS, but most Android phones and Linux systems don't include them and substitute similar fonts instead. They're still relevant, though no longer as the main way to style a website. Their job now is to be good fallbacks behind web fonts, the default choice in email, and a zero-cost option when speed matters more than a distinctive look.

When web fonts weren't an option, choosing a web-safe font was the only way to be sure visitors saw what you designed. Web fonts changed that, and system font stacks changed it again. In this article you'll learn where web-safe fonts came from, which ones are genuinely safe today on which platforms, how the generic CSS font families fit in, where web-safe fonts still earn their place, and how to write font stacks that fail gracefully.

Where Web-Safe Fonts Came From

In the early web, CSS could only name fonts that were installed on the visitor's machine. Designers needed fonts that were nearly everywhere. In 1996 Microsoft launched Core Fonts for the Web, a free package that included:

  • Andale Mono
  • Arial and Arial Black
  • Comic Sans MS
  • Courier New
  • Georgia
  • Impact
  • Times New Roman
  • Trebuchet MS
  • Verdana
  • Webdings

Georgia and Verdana, both designed by Matthew Carter, were drawn specifically for low-resolution screens, with large x-heights and generous spacing. Because these fonts shipped with Windows and were bundled on Macs for years, they became the de facto web-safe set. Microsoft ended free distribution of the package in 2002, but the fonts remain installed on Windows and macOS.

Which Fonts Are Actually Safe Today

"Web-safe" was always a probability rather than a guarantee, and the device landscape has shifted towards phones. Here's roughly where the classic fonts stand on current systems:

FontWindowsmacOSiOS and iPadOSAndroidTypical Linux desktop
ArialYesYesYesSubstitutedUsually substituted
HelveticaNoYesYesSubstitutedUsually substituted
Times New RomanYesYesYesSubstitutedUsually substituted
GeorgiaYesYesYesSubstitutedUsually substituted
VerdanaYesYesYesSubstitutedUsually substituted
Trebuchet MSYesYesYesSubstitutedUsually substituted
TahomaYesYesVariesSubstitutedUsually substituted
Courier NewYesYesYesSubstitutedUsually substituted

"Substituted" means the browser uses a different installed font, usually one the system has mapped to that name or to the generic family. Android maps common names such as Arial to its own default sans-serif and Times New Roman to its default serif. Many Linux distributions provide metric-compatible replacements such as Liberation Sans for Arial, so layouts stay similar even though the letterforms differ. Windows doesn't include Helvetica at all, so browsers there move on to the next font in your stack.

The practical lesson: on a large share of mobile traffic, a web-safe font isn't the font you named. It's whatever the platform considers closest.

Generic Font Families

CSS defines generic family keywords that always resolve to something on every device. They're the final safety net at the end of every stack:

  • serif: A serifed text font, such as Times New Roman, Georgia or Noto Serif, depending on the system.
  • sans-serif: A sans text font, such as Arial, Helvetica or Roboto.
  • monospace: A fixed-width font, such as Courier New, Menlo or DejaVu Sans Mono.
  • cursive and fantasy: Decorative fonts whose results vary so much they're rarely useful.
  • system-ui: The operating system's interface font, such as San Francisco, Segoe UI or Roboto. Widely supported.
  • ui-serif, ui-sans-serif, ui-monospace and ui-rounded: Platform UI variants. At the time of writing these are mainly supported in Safari, so always follow them with other options.
  • emoji and math: Families for emoji and mathematical notation, with varying support.

Generic families must not be quoted. Writing "sans-serif" in quotes makes the browser look for a font literally named sans-serif, which doesn't exist:

/* Correct */
body {
  font-family: Georgia, serif;
}

/* Wrong: the quoted name is treated as a specific font */
body {
  font-family: Georgia, "serif";
}

Are Web-Safe Fonts Still Relevant?

Yes, but their role has changed. Here's where they're still the right choice.

As Fallbacks Behind Web Fonts

Every web font can fail to load or load late. During that time visitors see your fallback, and with font-display: swap many of them see it for a noticeable moment on every first visit. A fallback with similar proportions keeps the layout stable and the page readable. Classic web-safe fonts are still the best-known options for this.

In Email

Many email clients, including Gmail and Outlook on Windows, don't load web fonts. Installed fonts such as Arial, Helvetica, Verdana and Georgia are what most subscribers actually see. See how to choose fonts for email newsletters for a full setup.

For Speed-Critical or Low-Bandwidth Sites

Using installed fonts means zero font requests, no invisible text and no swap-related layout shift. For government services, internal tools, sites aimed at slow networks and pages where performance budgets are tight, that trade-off can be worth more than a custom typeface.

Where They're Less Useful

As a design choice for a modern brand, the classic set is limited. Arial and Times New Roman can feel generic, and on Android you don't get them anyway. If you want a native look with no downloads, a system font stack using system-ui generally gives a more contemporary result than the 1990s web-safe list.

Writing Reliable Font Stacks

A good font stack lists fonts from most to least preferred, choosing each fallback for similar proportions, and ends with a generic family.

:root {
  /* Humanist sans: wide and very legible */
  --stack-verdana: Verdana, "DejaVu Sans", "Bitstream Vera Sans", Geneva, sans-serif;

  /* Neo-grotesque sans */
  --stack-helvetica: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", Arimo, sans-serif;

  /* Screen-friendly serif */
  --stack-georgia: Georgia, Cambria, "Noto Serif", "DejaVu Serif", serif;

  /* Traditional serif with metric-compatible fallbacks */
  --stack-times: "Times New Roman", Times, "Liberation Serif", Tinos, serif;

  /* Monospace */
  --stack-courier: "Courier New", Courier, "Liberation Mono", Cousine, monospace;
}

body {
  font-family: var(--stack-georgia);
}

A few rules to follow:

  • Quote names with spaces: "Times New Roman" needs quotes; Georgia doesn't. Quoting single-word names is harmless.
  • Put Helvetica before Arial if you prefer it on Apple devices; Windows doesn't have Helvetica, so it falls through to Arial.
  • Include metric-compatible fonts: Liberation Sans and Arimo match Arial's widths, Liberation Serif and Tinos match Times New Roman, and Liberation Mono and Cousine match Courier New. They keep line breaks consistent on Linux and ChromeOS.
  • Always end with a generic family so something reasonable appears in every case.

Web Font First, Web-Safe Behind

The most common modern pattern is a web font with a carefully chosen web-safe fallback:

@font-face {
  font-family: "Merriweather";
  src: url("/fonts/merriweather-variable.woff2") format("woff2");
  font-weight: 300 900;
  font-display: swap;
}

body {
  font-family: "Merriweather", Georgia, "Times New Roman", serif;
}

Georgia is the natural partner here: both are screen-oriented serifs with large x-heights.

Matching the Fallback's Size

Even close fallbacks differ slightly in width and height, which causes a jump when the web font swaps in. You can build an adjusted fallback face from an installed font with local() and override its metrics:

@font-face {
  font-family: "Merriweather Fallback";
  src: local("Georgia");
  size-adjust: 112%;
  ascent-override: 88%;
  descent-override: 24%;
  line-gap-override: 0%;
}

body {
  font-family: "Merriweather", "Merriweather Fallback", Georgia, serif;
}

These percentages are illustrative. The right values depend on the exact fonts, so calculate them from both fonts' metrics or adjust by comparing rendered text.

Checking Which Font Is Actually Used

The font you name isn't necessarily the font that renders. In Chrome or Edge DevTools, select an element, open the Computed tab and scroll to Rendered Fonts to see the real font used. Firefox shows the same information in its Fonts panel.

To test from JavaScript whether a font is installed, you can compare text widths against a generic fallback. If the measurement differs from both the serif and sans-serif baselines, the named font is present:

function isFontInstalled(name) {
  const text = "mmmmmmmmmmlli1WQ";
  const ctx = document.createElement("canvas").getContext("2d");
  const width = (family) => {
    ctx.font = `72px ${family}`;
    return ctx.measureText(text).width;
  };

  return ["monospace", "serif", "sans-serif"].some(
    (generic) => width(`"${name}", ${generic}`) !== width(generic)
  );
}

for (const font of ["Arial", "Georgia", "Verdana", "Segoe UI", "Menlo"]) {
  console.log(font.padEnd(10), isFontInstalled(font));
}

Example output on a Windows machine:

Arial      true
Georgia    true
Verdana    true
Segoe UI   true
Menlo      false

Menlo is a macOS font, so it reports false on Windows. Some browsers also restrict which installed fonts pages can detect, to reduce fingerprinting, so treat results as a debugging aid rather than something to build features on.

Web-Safe Fonts vs System Font Stacks

The two ideas are related but not identical:

Classic web-safe fontsSystem font stack
ExampleArial, Georgia, Verdanasystem-ui, Segoe UI, Roboto
LookSame named font on desktop where availableNative UI font on each platform
ConsistencySimilar across Windows and Apple, substituted elsewhereDifferent on each platform by design
Best forFallbacks, email, documentsInterfaces, apps, fast sites

Both download nothing. Choose web-safe fonts when you want a particular, familiar typeface where possible, and a system stack when you want the interface to feel native.


FAQ: Web-Safe Fonts

Arial, Georgia, Verdana, Times New Roman and Courier New are the most widely installed on Windows, macOS and iOS, and Helvetica is present on Apple devices. On Android and Linux they're usually replaced by similar fonts, so always end your stack with a generic family.

Not as the original Arial. Android maps the name to its default sans-serif font, so text set in Arial appears in a similar but different typeface.

It depends on your priorities. Web-safe fonts load instantly and avoid layout shift, while web fonts give a consistent and distinctive look. Many sites use a web font with a web-safe fallback to get both.

Only on Apple devices. Windows doesn't include Helvetica, which is why stacks usually list Helvetica followed by Arial.

Web-safe fonts are specific typefaces that are widely installed, such as Arial or Georgia. A system font stack asks for each platform's own interface font, such as San Francisco or Segoe UI, so it looks different on each device.

No, not for naming them in CSS, because you aren't distributing the files. Uploading and serving the font files yourself is a different matter and is generally not permitted.


Conclusion

Web-safe fonts are the typefaces you can expect to find already installed, led by Arial, Helvetica, Georgia, Verdana, Times New Roman and Courier New. They're reliably present on Windows and Apple devices, but Android and Linux usually substitute their own fonts, so "safe" really means "safe to name, with something sensible appearing everywhere".

They remain relevant in specific roles: as fallbacks behind web fonts, as the backbone of email typography, and as a no-cost option for fast or low-bandwidth sites. Write stacks that move from your preferred font to close web-safe matches, include metric-compatible fonts for Linux, end with a generic family, and check the rendered font in DevTools to be sure visitors see what you intended.

Share :

Related Posts

How to make typography accessible?

How to make typography accessible?

You make typography accessible by choosing clear typefaces, setting text in relative units so it scales with user preferences, giving it enough colou

Dive Deeper
What are the parts of a letterform?

What are the parts of a letterform?

A letterform is the shape of a single letter, and typographers break it down into named parts. The main ones are the stem (the main vertical

Dive Deeper
What are ascenders, descenders and the baseline?

What are ascenders, descenders and the baseline?

The baseline is the invisible line that letters sit on. Ascenders are the parts of lowercase letters that rise above the x-height, such as th

Dive Deeper