Roboto

by Christian Robertson (Google) ★★★★★ Sans-serif Variable Font
Optimize Now

Quick Answer

Roboto is a variable sans-serif font with 3 adjustable axes (Weight, Width, Italic). Google's signature typeface. Mechanical skeleton with friendly curves, perfect for Android and Material Design.

Performance Impact

90%
Size Reduction
150 KB → 15 KB
-320ms
LCP Improvement
Core Web Vitals boost
12ms
4G Transfer Time
After optimization
100ms
Max Render Block
With font-display: swap

Download Time by Network

Slow 3G (400 Kbps) 300ms
vs ~3000ms unoptimized
Fast 3G (1.5 Mbps) 80ms
vs ~800ms unoptimized
4G LTE (10 Mbps) 12ms
vs ~120ms unoptimized

Optimization reduces Roboto from 150 KB to 15 KB — making your site faster on every device.

Try Roboto

Live Preview

Variable Axes
400
100 900
100%
75 100
0 1
Loading Roboto...
Quick samples:

Variable Axes

Roboto includes 3 variable axes, giving you fine-grained control over the font's appearance.

wght

Weight

Controls weight from Thin (100) to Black (900)

Range: 100 – 900 (default: 400)
wdth

Width

Controls width from Condensed (75) to Normal (100)

Range: 75 – 100 (default: 100)
ital

Italic

Toggles between upright and italic styles

Range: 0 – 1 (default: 0)

How to Optimize Roboto

1

Subset to Latin

Roboto supports 300+ languages. Remove unused scripts like Cyrillic, Greek, and Vietnamese.

Savings: 60-70%

2

Convert to WOFF2

Essential compression step. All modern browsers support WOFF2.

Savings: 25-35%

3

Limit to needed weights

Most designs only need 2-3 weights. Skip Thin, Light, and Black if unused.

Savings: 50-70%

4

Use font-display: swap

Show fallback text immediately while Roboto loads.

Savings: Performance

File Size Comparison

Roboto Variable (full)
~150 KB
All weights, all scripts
Roboto Variable (Latin)
~45 KB
Latin subset only
Roboto Regular WOFF2
~20 KB
Single weight, Latin
Optimized with Sift
~15 KB
Subset + WOFF2 + optimized

Sift optimizes your fonts for maximum performance with 90%+ size reduction

CSS Implementation

CSS
@font-face {
  font-family: 'Roboto';
  src: url('/roboto.woff2') format('woff2');
  font-display: swap;
  font-weight: 100 900;
}

body {
  font-family: 'Roboto', sans-serif;
}

For variable fonts, you can use font-variation-settings to control axes:

.custom-weight {
  font-variation-settings: "wght" 400, "wdth" 100, "ital" 0;
}

Pro Tips for Roboto

💡

Match Android system font

Use Roboto for web apps that complement Android apps for visual consistency.

💡

Enable antialiasing

Add -webkit-font-smoothing: antialiased for smoother rendering on macOS.

💡

Consider Roboto Flex

The newer Roboto Flex variable font offers more axes including optical size.

💡

Fallback to system-ui

system-ui provides similar metrics on most platforms.

Frequently Asked Questions

What is Roboto?
Roboto is a neo-grotesque sans-serif developed by Google as the system font for Android. It features a mechanical skeleton with mostly geometric forms, softened by friendly and open curves. The letterforms are designed to be optimally legible across all screen sizes and resolutions.
Is Roboto a variable font?
Yes, Roboto is a variable font with 3 axes: Weight, Width, Italic. This means you can continuously adjust properties for precise control.
How do I optimize Roboto for web?
To optimize Roboto: 1) Convert to WOFF2 format for smaller files, 2) Subset to only the characters you need, 3) Use font-display: swap to prevent invisible text, 4) Preload critical font files. Sift can automate this entire process.
What license does Roboto use?
Roboto uses the Apache License 2.0 license.

Optimize Roboto Now

Convert to WOFF2, subset to Latin, and add font-display: swap in seconds.

Optimize Roboto