Testing

System-UI Font: Browser Support, Stack, Limitations

system-ui works in Chrome 56+, Edge 79+, Firefox 92+, Opera 43+, Samsung Internet 6.2+, Safari 11+, and Android Browser 147+. Learn the stack, OS map, and quirks.

Author

Prince Dewani

May 8, 2026

system-ui is a CSS generic font family that renders text in the operating system's default user interface font. It works in Chrome 56+, Edge 79+, Firefox 92+, Opera 43+, Samsung Internet 6.2+, Safari 11+ on macOS and iOS, and Android Browser 147+, while Internet Explorer never added support.

This guide covers what system-ui is, the browsers that support it, what it resolves to on each operating system, how to use it in CSS, and the known issues.

What is system-ui font?

system-ui is a generic font family value defined by the W3C CSS Fonts Module Level 4. It tells the browser to render text in the platform's default user interface font, such as San Francisco on macOS, Segoe UI on Windows, and Roboto on Android. The keyword resolves at render time and needs no font download.

Which browsers does system-ui font support?

system-ui works in every modern browser, with Chrome, Edge, Firefox, Opera, Safari, Samsung Internet, and Android Browser all parsing the keyword and resolving it to the operating system's default UI typeface.

Loading browser compatibility data...

system-ui compatibility in Chrome

Chrome supports system-ui from Chrome 56 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 53 to 55 had a partial implementation that resolved the keyword to BlinkMacSystemFont only on macOS. Versions before 53 did not parse system-ui and skipped to the next font in your stack.

system-ui compatibility in Edge

Edge supports system-ui from Edge 79 on Windows, macOS, and Linux, which is the first Chromium-based Edge release. Legacy Edge 12 to 18, built on EdgeHTML, did not recognize the keyword and fell through to the next font in the family list.

system-ui compatibility in Firefox

Firefox supports system-ui from Firefox 92 on Windows, macOS, Linux, and Android. Firefox 43 to 91 had partial support that resolved the keyword to the user-configured sans-serif font rather than the true OS UI font, and Firefox versions before 43 did not parse the keyword.

system-ui compatibility in Safari

Safari supports system-ui from Safari 11 on macOS and iOS. Safari 9.1 to 10.1 on macOS and Safari 9 to 10.3 on iOS only supported the older -apple-system alias, and earlier Safari versions did not recognize either value.

system-ui compatibility in Opera

Opera supports system-ui from Opera 43 on desktop, matching the Chromium switch that powered the change. Opera Mini does not render system-ui because the proxy server rasterizes pages on the server and substitutes its own font stack.

system-ui compatibility in Samsung Internet

Samsung Internet supports system-ui from Samsung Internet 6.2 on Android. The keyword resolves to Roboto on stock Android and to Samsung One UI Sans on Galaxy devices running One UI.

system-ui compatibility in Android Browser

Android Browser supports system-ui from version 147. Older Android Browser builds on Android 4.x do not parse the keyword, so add a Roboto fallback in your stack when targeting legacy Android devices.

system-ui compatibility in Internet Explorer

Internet Explorer never added support for system-ui. IE 11 and earlier ignore the value and move to the next font in the family list, so always declare an explicit Segoe UI fallback when you still need to ship to IE.

Note

Note: system-ui resolves to a different typeface on every OS, so the same page can look broken on Windows even when it renders cleanly on macOS. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What does system-ui resolve to on each operating system?

The browser does not download a font when it sees system-ui. It looks up the operating system's default UI font and uses it directly, so the typeface depends entirely on the device the page renders on.

  • macOS and iOS: Resolves to San Francisco, the default Apple system typeface from macOS El Capitan and iOS 9 onward.
  • Windows 7, 8, 8.1, 10: Resolves to Segoe UI, the default Windows shell font.
  • Windows 11: Resolves to Segoe UI Variable, the variable font that ships with the Fluent design system.
  • Stock Android: Resolves to Roboto, the default Android system font.
  • Samsung One UI: Resolves to Samsung One UI Sans on Galaxy phones and tablets.
  • ChromeOS: Resolves to Roboto, matching the Android default.
  • Ubuntu Linux: Resolves to the Ubuntu typeface that ships with the OS.
  • GNOME Linux distros: Resolves to Cantarell, the GNOME Project default.
  • Asian-language Windows: Resolves to Yu Gothic UI on Japanese Windows, Microsoft JhengHei UI on Traditional Chinese, and Malgun Gothic on Korean.
...

How do you use system-ui in CSS?

Add system-ui as the first value in your font-family declaration and follow it with a sans-serif fallback. The browser tries system-ui first and falls back to sans-serif on platforms or browsers that do not support the keyword.

  • Open your stylesheet: Edit the global CSS file or the body / :root selector that controls page typography.
  • Set system-ui first in the font-family stack: Use font-family: system-ui, sans-serif so the browser picks the OS UI font when supported and falls back to its own sans-serif otherwise.
  • Add an extended fallback for older browsers: Write font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif. Older Safari resolves -apple-system, legacy Edge resolves Segoe UI, and older Android resolves Roboto.
  • Test the result on each OS: Open the page on macOS, Windows, and Android, and confirm the typeface matches the native UI on every platform.
  • Avoid system-ui for body copy: Limit the keyword to UI labels, headings, and chrome. For long paragraphs, switch to a serif or a webfont because system-ui can render Latin text poorly when the OS UI font is a CJK glyph set.

If a browser still renders Times New Roman or the wrong font after the change, the system-ui keyword did not parse, so check that the value is unquoted and that no earlier rule overrides the body font-family.

What are the known issues with system-ui?

system-ui ships with three real-world quirks that hit production sites: poor Latin glyphs on Asian-language Windows, inconsistent metrics across operating systems, and no way to override the keyword with @font-face.

  • CJK font fallback breaks Latin text: On Windows with Chinese, Japanese, or Korean as the system language, system-ui resolves to Yu Gothic UI, Microsoft JhengHei UI, or Malgun Gothic. These fonts have weak Latin glyphs and render English text with awkward spacing and weight.
  • Metrics differ across operating systems: The cap height, x-height, and line-height of San Francisco, Segoe UI, and Roboto are all different. A button styled to fit "Sign in" on macOS may overflow on Windows. Pad layouts with extra room or set a fixed line-height.
  • No @font-face override: You cannot map system-ui to a custom font with @font-face. The keyword always points to the OS choice. Use a font-family alias and a CSS variable when you need a single switch point.
  • Older Firefox treats it as sans-serif: Firefox 43 to 91 resolved system-ui to the user-configured sans-serif font instead of the true OS UI font. The result looked correct but did not match the native UI.
  • Opera Mini ignores the keyword: Opera Mini renders pages on Opera's proxy servers and substitutes its own typography. system-ui has no effect there, so always include a webfont or generic fallback.

In my experience, the CJK quirk on Windows is the most common bug report on a system-ui rollout. Latin titles look awkward on Japanese Windows even when every other OS renders them cleanly, and the simplest fix is to put an explicit Segoe UI before system-ui in the stack so Latin text gets the right font.

...

Citations

All system-ui version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests