Roboto

Replaces: Neue Haas Grotesk (88%) | Apache-2.0 | Updated: Feb 2026

About Roboto

Classification
sans-serif
Weights
Variable (100-900)
Features
Variable, Italics
Apache License 2.0

Free to use, modify, and distribute. Permits commercial use with attribution.

What's allowed?
  • Client work
  • SaaS / Web apps
  • YouTube / Video
  • Sell products
  • Print materials
Full license guide →
Get Roboto Free ↗

Roboto is a neo-grotesque sans-serif typeface designed by Christian Robertson and released by Google in 2011 as the system font for Android. It has become one of the most widely used typefaces on the web and mobile platforms.

History and Design

Christian Robertson designed Roboto for Google's Android 4.0 (Ice Cream Sandwich) release. The initial version drew criticism for inconsistency between letterforms, leading to a significant redesign in 2014 that created the harmonious typeface used today. The redesigned Roboto features a more natural, rounded character while maintaining the mechanical precision expected of a neo-grotesque.

Roboto occupies an interesting position in type classification—Robertson described it as having a "dual nature" with geometric forms and open curves typically associated with humanist typefaces.

Why Roboto is Popular

As Android's system font and a cornerstone of Google's Material Design, Roboto has achieved unprecedented distribution. Its neutral character, extensive language support, and free availability have made it a go-to choice for digital products worldwide. The Roboto family has expanded to include condensed widths, a slab serif variant (Roboto Slab), and a monospace version (Roboto Mono).

Technical Features

  • Variable font: Weight axis from Thin (100) to Black (900)
  • Comprehensive family: Regular, Condensed, Slab, and Mono variants
  • Extensive language support: Latin, Cyrillic, Greek, Vietnamese
  • OpenType features: Tabular figures, fractions, superscripts, subscripts

Best Use Cases

Roboto excels in:

  • Android applications: Native look consistent with system UI
  • Material Design projects: Official pairing with Material components
  • Web applications: Excellent screen rendering at all sizes
  • Cross-platform products: Familiar and neutral across devices

Usage Tips

For body text, use Roboto Regular (400) with weight 500 for emphasis. Enable tabular figures for data tables and financial information. Consider Roboto Flex for more granular control over weight and width. Pairs well with Roboto Slab for headings or Roboto Mono for code blocks in technical documentation.

Is Roboto on Google Fonts?

Yes, Roboto is available for free on Google Fonts. Get Roboto on Google Fonts ↗

Alternative For (19)

Roboto is a free alternative to the following premium fonts:

[Adobe] · sans-serif

Comparable professional sans-serif

View all alternatives
[Dalton Maag] · sans-serif

Similar versatile grotesque for all applications

View all alternatives
[Berthold] · sans-serif

Similar industrial character with contemporary refinements

View all alternatives
#4 Archivo 80%
[Omnibus-Type] · sans-serif

Comparable wide range

View all alternatives
[Terminal Design] · sans-serif

Similar readable character optimized for distance

View all alternatives
[Grilli Type] · sans-serif

Similar versatile sans

View all alternatives
[Monotype] · sans-serif

Similar neutral character

View all alternatives
[Linotype] · sans-serif

Similar neutral character, designed for Android

View all alternatives
[Monotype] · sans-serif

Similar versatile sans

View all alternatives
[Linotype] · sans-serif

Similar neutral character for UI and corporate use

View all alternatives
[Monotype] · sans-serif

Comparable versatile sans

View all alternatives
[Linotype] · sans-serif

Similar neutral grotesque character

View all alternatives
[Apple] · sans-serif

Comparable system font designed for screens

View all alternatives
#14 Segoe UI 85%
[Microsoft] · sans-serif

Comparable system font aesthetic designed for screens

View all alternatives
[Microsoft] · sans-serif

Comparable screen-optimized sans-serif

View all alternatives
#16 TT Commons 85%
[TypeType] · sans-serif

Similar versatile character

View all alternatives
#17 Univers 78%
[Linotype] · sans-serif

Similar functional design philosophy optimized for digital interfaces

View all alternatives
[Monotype] · sans-serif

Neutral sans with display-quality rendering at large sizes

View all alternatives
[Google] · sans-serif

Google's open-source sans optimized for digital

View all alternatives

Compare Roboto

See how Roboto compares to other fonts side by side.

Variable Font Axes

Roboto is a variable font with 2 axes you can fine-tune.

Axis Min Default Max
wght 100 400 900
wdth 75 100 100

Font Pairings

Fonts that pair well with Roboto based on contrast and complementary design characteristics.

Fira Code + Roboto
92/100
mono + sans-serif
Healthcare Enterprise Accessibility
Fira Mono + Roboto
92/100
mono + sans-serif
Healthcare Enterprise Accessibility
Merriweather + Roboto
88/100
serif + sans-serif
Best for: Classic, Professional
Legal Education Enterprise
Roboto + Roboto Slab
88/100
sans-serif + serif
Best for: Clean, Professional
Healthcare Enterprise Accessibility
Oswald + Roboto
81/100
display + sans-serif
Best for: Bold, Hero Section
Healthcare Enterprise

Performance

Key metrics for evaluating Roboto in production.

Score
59 /100 Average
File Size
551.9 KB Heavy
Weights
9 (variable) + Italics
Languages
7 groups CDN delivery

Font Metrics

x-Height Ratio
0.528
Cap Height Ratio
0.711
Ascender
1536
Descender
-512

Fallback CSS Overrides

Apply these overrides to Arial to minimize layout shift when loading Roboto.

@font-face {
  font-family: 'Roboto Fallback';
  src: local('Arial');
  ascent-override: 75%;
  descent-override: 25%;
  line-gap-override: 4.98%;
  size-adjust: 101.88%;
}
woff2 Measured via Google Fonts API Metrics extracted from WOFF2

How to Use Roboto

Copy these code snippets to quickly add Roboto to your project.

Quick Start

CSS code for Roboto

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100..900&display=swap');