Skip to content

font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif #665

@DoronBrayer

Description

@DoronBrayer

It's time to add:
font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif

This solution is harmless and very useful.
It is used by GitHub, Wordpress, Bootstrap, Medium, Ghost, etc.

The main reason for using "system" fonts is performance. Fonts are typically one of the largest/heaviest resources loaded on a website. If we can use a font already available on the user’s machine, we can completely eliminate the need to fetch this resource, making load times noticeably faster.
The beauty of system fonts is that it matches what the current OS uses, so it can be a comfortable look.

  • -apple-system targets San Francisco in Safari (on Mac OS X and iOS), and it targets Neue Helvetica and Lucida Grande on older versions of Mac OS X. It properly selects between San Francisco Text and San Francisco Display depending on the text’s size.
  • system-ui represents the default UI font on a given platform.
  • BlinkMacSystemFont is the equivalent for Chrome on Mac OS X.
  • Segoe UI targets Windows and Windows Phone.
  • Roboto targets Android and newer Chrome OS. It is deliberately listed after Segoe UI so that if you’re an Android developer on Windows and have Roboto installed, Segoe UI will be used instead.

The bottom line: It's truly the ultimate solution for any website/webapp in any OS.

More info

Activity

kevinvanrijn

kevinvanrijn commented on Apr 3, 2017

@kevinvanrijn

Didn't normalize.css just get rid of opinionated defaults? I don't see how this would be less opinionated then the old font-family: sans-serif; rule.

russmaxdesign

russmaxdesign commented on Apr 3, 2017

@russmaxdesign

This is opinionated. See this thread #664

DoronBrayer

DoronBrayer commented on Apr 3, 2017

@DoronBrayer
Author

Using system fonts is not "opinionated".
System fonts are just system fonts.
If you insist, use:
font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto [Removing the "Helvetica Neue",Arial,sans-serif part]
This is normalization, not reset.
Again- this solution is used by GitHub, Wordpress, Bootstrap, Medium, Ghost, etc.

miquelfire

miquelfire commented on Apr 3, 2017

@miquelfire

What browser is using ANY of these fonts by default?

DoronBrayer

DoronBrayer commented on Apr 3, 2017

@DoronBrayer
Author
thierryk

thierryk commented on Apr 3, 2017

@thierryk

@DoronBrayer that does not answer @miquelfire's question:

What browser is using ANY of these fonts by default?

Normalize relates to default styling and—as far as I know—browsers do not use system fonts out-of-the-box.

DoronBrayer

DoronBrayer commented on Apr 4, 2017

@DoronBrayer
Author

If 99% of the websites uses sans-serif as default, why go with the other 1%?! - Go with the majority, go with the 99%!
In addition - sans-serif is used by any framework out there, and there's a reason for that.
Not setting a font-family (in body or html) is so 2007.
It's time to move on, really.

jonathantneal

jonathantneal commented on Apr 11, 2017

@jonathantneal
Contributor

@DoronBrayer, I get what you are saying, but what you are describing is less the use case for bugs and common browser inconsistencies and more the use case for common developer expectations and preferences, like box-sizing: border-box, etc..

At least one project needs to hold the fort so to speak so that there may be a reliable base for your own projects, or bootstrap, or sanitize.css, etc.

bardiharborow

bardiharborow commented on May 14, 2017

@bardiharborow

Noting for further reference, that we've had to back out system-ui over at Bootstrap due to a number of issues with faulty Chinese fonts on Windows.

mvasilkov

mvasilkov commented on Oct 15, 2017

@mvasilkov

Since this feature isn't going to be added here, a shameless plug: https://github.com/mvasilkov/systematize
It's basically normalize.css with some improvements to typography, coming from this repo's pull requests mostly. WIP.

26 remaining items

jeffatoptics

jeffatoptics commented on May 3, 2022

@jeffatoptics

put "Segoe UI Emoji" before "Segoe UI Symbol". otherwise, chrome/edge in windows will only display the emoji in white/black color.

tedw

tedw commented on May 3, 2022

@tedw

FWIW here’s the current CSS I’m using to normalize emojis:

// Custom emoji font-family to standardize appearance across platforms
// https://www.client9.com/css-color-emoji-stack/
// https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/
@font-face {
  font-family: "color-emoji";
  src: local("Apple Color Emoji"),
       local("Twemoji Mozilla"),
       local("Segoe UI Emoji"),
       local("Segoe UI Symbol"),
       local("Noto Color Emoji"),
       local("EmojiOne Color"),
       local("Android Emoji");
}

Then you can append color-emoji to the end of your font stack:

body {
  font-family: system-ui, Segoe UI, sans-serif, color-emoji;
}
HNazmul-IV

HNazmul-IV commented on Jul 30, 2023

@HNazmul-IV

But My question is How a font become heaviest , largest, painful resource for a website ? ?

ticoeteco23gb

ticoeteco23gb commented on Jul 26, 2024

@ticoeteco23gb

But My question is How a font become heaviest , largest, painful resource for a website ? ?

There are many glyphs in a font for each character, those glyphs are basically vector graphics united together. A typeface has multiple styles of glyphs... Yeah, it depends on how complex the font is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @mvasilkov@thierryk@jonathantneal@miquelfire@russmaxdesign

        Issue actions

          font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif · Issue #665 · necolas/normalize.css