Data · October 2026
97 width axes,
21 measured.
The numbers behind the paper and the talk. Method is in the paper. Everything here was measured on 7 October 2026 with Chromium 149, uharfbuzz 0.56.1, fonts from google/fonts at commit 7085eb8, and published fitWidth 1.2.0 from npm.
1. Reach of wdth 75–125 in 21 families
Width at wdth 75 and 125 (each clamped to the font’s own range) as a share of the width at wdth 100. Mean of five strings at 72 px, weight 400. Median narrowest 80.0%; median widest 113.1% (two separate medians). Among the 15 that can widen, the median widest is 119.1%. The last two columns are the reach over each font’s whole wdth range (HarfBuzz only). 6 can’t widen; 8 span less than 30 points; 5 less than 20.
| Family | Font’s wdth range | Optical size axis | Chromium: narrowest | Chromium: widest | HarfBuzz: narrowest | HarfBuzz: widest | Full range: narrowest | Full range: widest |
|---|---|---|---|---|---|---|---|---|
| IBM Plex Sans | 75–100 | no | 90.3% | 100.0% | 90.3% | 100.0% | 90.3% | 100.0% |
| Advent Pro | 100–200 | no | 100.0% | 110.1% | 100.0% | 110.1% | 100.0% | 140.3% |
| Roboto | 75–100 | no | 88.2% | 100.0% | 88.2% | 100.0% | 88.2% | 100.0% |
| Merriweather | 87–112 | yes | 90.1% | 104.7% | 90.0% | 104.7% | 90.0% | 104.7% |
| Noto Sans | 62.5–100 | no | 82.4% | 100.0% | 82.4% | 100.0% | 74.8% | 100.0% |
| Roboto Serif | 50–150 | yes | 87.8% | 108.4% | 87.8% | 108.4% | 75.6% | 116.8% |
| Open Sans | 75–100 | no | 74.2% | 100.0% | 74.2% | 100.0% | 74.2% | 100.0% |
| Encode Sans | 75–125 | no | 86.9% | 113.1% | 86.9% | 113.1% | 86.9% | 113.1% |
| Bricolage Grotesque | 75–100 | yes | 68.3% | 100.0% | 68.4% | 100.0% | 68.4% | 100.0% |
| League Gothic | 75–100 | no | 68.3% | 100.0% | 68.3% | 100.0% | 68.3% | 100.0% |
| Roboto Flex | 25–151 | yes | 83.1% | 119.5% | 83.1% | 119.5% | 49.2% | 139.9% |
| Asap | 75–125 | no | 81.9% | 119.1% | 81.9% | 119.1% | 81.9% | 119.1% |
| Science Gothic | 50–200 | no | 76.9% | 114.1% | 76.9% | 114.1% | 53.7% | 156.4% |
| Nunito Sans | 75–125 | yes | 83.7% | 123.2% | 83.8% | 123.2% | 83.8% | 123.2% |
| Inconsolata | 50–200 | no | 80.0% | 120.0% | 80.0% | 120.0% | 50.0% | 200.0% |
| Saira | 50–125 | no | 74.6% | 115.0% | 74.6% | 115.0% | 53.5% | 115.0% |
| Mona Sans | 75–125 | no | 63.4% | 107.2% | 63.4% | 107.2% | 63.4% | 107.2% |
| Archivo | 62–125 | no | 79.3% | 127.1% | 79.2% | 127.1% | 68.5% | 127.1% |
| Anybody | 50–150 | no | 68.4% | 131.6% | 68.4% | 131.6% | 36.9% | 163.2% |
| Georama | 62.5–150 | no | 66.7% | 133.3% | 66.7% | 133.3% | 55.6% | 166.5% |
| Anek Latin | 75–125 | no | 66.0% | 133.7% | 65.9% | 133.6% | 65.9% | 133.6% |
2. The library on those 21 fonts: 336 fits
“Headline fitting” at 72 px. Each cell is how many of the 21 fonts fitted the target (never wider, at most 0.5 px narrower). Totals: axis only 75, tracking only 267, axis then tracking 294, axis then size then tracking 336, each of 336. Without the 1.0× row the axis-only total is 54 of 315. The targets end at 2×, which is also the size option’s limit. The first three columns are the same in published 1.2.0 and 1.1.0 (1,008 fits, identical styles); the last uses the opt-in size option, new in 1.2.0. Of the default’s 294 fits, 171 added more than 0.05em of tracking and 107 more than 0.12em (median 0.077em). In the 219 default fits that added tracking, the last letter ended from 21.9 px short of the target to 12.7 px past it (median 8.5 px away); with trimTrailingSpace, 211 of them still fit, 0.01 to 0.5 px inside.
| Target ÷ natural width | Width axis only | Tracking only (±0.3em) | Axis, then tracking (default) | Axis, then size 0.5–2×, then ±0.05em |
|---|---|---|---|---|
| 0.5× | 0 | 21 | 21 | 21 |
| 0.6× | 0 | 21 | 21 | 21 |
| 0.7× | 5 | 21 | 21 | 21 |
| 0.8× | 11 | 21 | 21 | 21 |
| 0.9× | 18 | 21 | 21 | 21 |
| 1.0× | 21 | 21 | 21 | 21 |
| 1.1× | 11 | 21 | 20 | 21 |
| 1.2× | 6 | 21 | 21 | 21 |
| 1.3× | 3 | 21 | 21 | 21 |
| 1.4× | 0 | 21 | 21 | 21 |
| 1.5× | 0 | 21 | 21 | 21 |
| 1.6× | 0 | 20 | 21 | 21 |
| 1.7× | 0 | 10 | 18 | 21 |
| 1.8× | 0 | 3 | 12 | 21 |
| 1.9× | 0 | 2 | 8 | 21 |
| 2.0× | 0 | 1 | 5 | 21 |
| All 336 | 75 | 267 | 294 | 336 |
3. Roboto Flex by font size
Width at wdth 75 and 125 as a share of the width at wdth 100, with optical size following the font size. Mean of five strings, Chromium 149.
| Font size | wdth 75 | wdth 125 |
|---|---|---|
| 14 px | 96.4% | 106.2% |
| 24 px | 93.3% | 109.4% |
| 36 px | 89.1% | 113.5% |
| 48 px | 87.2% | 115.4% |
| 72 px | 83.1% | 119.5% |
| 96 px | 80.6% | 122.0% |
| 144 px | 79.7% | 122.9% |
4. Every Google Fonts family with a wdth axis
From fonts.google.com/metadata/fonts, fetched 7 October 2026, 10:44 UTC. 1,950 families; 561 variable; 97 with a wdth axis (37 of them Noto and 10 Anek, each one design released for many scripts). Of those 97: 49 stop at 100 (37 of them Noto), 8 start at 100, and 40 go both ways; 37 cover all of 75–125 and 24 are exactly 75–125. Median span 37.5 units. Sorted by span.
| Family | Min | Max | Span |
|---|---|---|---|
| BioRhyme | 100 | 125 | 25 |
| Bricolage Grotesque | 75 | 100 | 25 |
| Cabin | 75 | 100 | 25 |
| DynaPuff | 75 | 100 | 25 |
| IBM Plex Sans | 75 | 100 | 25 |
| Instrument Sans | 75 | 100 | 25 |
| Kalnia | 100 | 125 | 25 |
| Kalnia Glaze | 100 | 125 | 25 |
| League Gothic | 75 | 100 | 25 |
| M PLUS Code Latin | 100 | 125 | 25 |
| Merriweather | 87 | 112 | 25 |
| Open Sans | 75 | 100 | 25 |
| Pathway Extreme | 75 | 100 | 25 |
| Playfair | 87.5 | 112.5 | 25 |
| Pliant | 100 | 125 | 25 |
| Radio Canada | 75 | 100 | 25 |
| Roboto | 75 | 100 | 25 |
| Sour Gummy | 100 | 125 | 25 |
| Tektur | 75 | 100 | 25 |
| Ubuntu Sans | 75 | 100 | 25 |
| Martian Mono | 75 | 112.5 | 37.5 |
| Noto Sans | 62.5 | 100 | 37.5 |
| Noto Sans Arabic | 62.5 | 100 | 37.5 |
| Noto Sans Armenian | 62.5 | 100 | 37.5 |
| Noto Sans Bengali | 62.5 | 100 | 37.5 |
| Noto Sans Devanagari | 62.5 | 100 | 37.5 |
| Noto Sans Display | 62.5 | 100 | 37.5 |
| Noto Sans Ethiopic | 62.5 | 100 | 37.5 |
| Noto Sans Georgian | 62.5 | 100 | 37.5 |
| Noto Sans Gujarati | 62.5 | 100 | 37.5 |
| Noto Sans Gurmukhi | 62.5 | 100 | 37.5 |
| Noto Sans Hebrew | 62.5 | 100 | 37.5 |
| Noto Sans Kannada | 62.5 | 100 | 37.5 |
| Noto Sans Khmer | 62.5 | 100 | 37.5 |
| Noto Sans Lao | 62.5 | 100 | 37.5 |
| Noto Sans Lao Looped | 62.5 | 100 | 37.5 |
| Noto Sans Malayalam | 62.5 | 100 | 37.5 |
| Noto Sans Mono | 62.5 | 100 | 37.5 |
| Noto Sans Myanmar | 62.5 | 100 | 37.5 |
| Noto Sans Oriya | 62.5 | 100 | 37.5 |
| Noto Sans Sinhala | 62.5 | 100 | 37.5 |
| Noto Sans Tamil | 62.5 | 100 | 37.5 |
| Noto Sans Telugu | 62.5 | 100 | 37.5 |
| Noto Sans Thai | 62.5 | 100 | 37.5 |
| Noto Sans Thai Looped | 62.5 | 100 | 37.5 |
| Noto Serif | 62.5 | 100 | 37.5 |
| Noto Serif Armenian | 62.5 | 100 | 37.5 |
| Noto Serif Bengali | 62.5 | 100 | 37.5 |
| Noto Serif Devanagari | 62.5 | 100 | 37.5 |
| Noto Serif Display | 62.5 | 100 | 37.5 |
| Noto Serif Ethiopic | 62.5 | 100 | 37.5 |
| Noto Serif Georgian | 62.5 | 100 | 37.5 |
| Noto Serif Hebrew | 62.5 | 100 | 37.5 |
| Noto Serif Khmer | 62.5 | 100 | 37.5 |
| Noto Serif Lao | 62.5 | 100 | 37.5 |
| Noto Serif Sinhala | 62.5 | 100 | 37.5 |
| Noto Serif Tamil | 62.5 | 100 | 37.5 |
| Noto Serif Thai | 62.5 | 100 | 37.5 |
| Anek Bangla | 75 | 125 | 50 |
| Anek Devanagari | 75 | 125 | 50 |
| Anek Gujarati | 75 | 125 | 50 |
| Anek Gurmukhi | 75 | 125 | 50 |
| Anek Kannada | 75 | 125 | 50 |
| Anek Latin | 75 | 125 | 50 |
| Anek Malayalam | 75 | 125 | 50 |
| Anek Odia | 75 | 125 | 50 |
| Anek Tamil | 75 | 125 | 50 |
| Anek Telugu | 75 | 125 | 50 |
| Asap | 75 | 125 | 50 |
| Asap Sharp | 75 | 125 | 50 |
| Encode Sans | 75 | 125 | 50 |
| Encode Sans SC | 75 | 125 | 50 |
| Fredoka | 75 | 125 | 50 |
| Hubot Sans | 75 | 125 | 50 |
| Mona Sans | 75 | 125 | 50 |
| Mozilla Headline | 75 | 125 | 50 |
| Nunito Sans | 75 | 125 | 50 |
| Special Gothic | 75 | 125 | 50 |
| Tourney | 75 | 125 | 50 |
| Trispace | 75 | 125 | 50 |
| Truculenta | 75 | 125 | 50 |
| Zalando Sans | 75 | 125 | 50 |
| Archivo | 62 | 125 | 63 |
| Saira | 50 | 125 | 75 |
| Saira Stencil | 50 | 125 | 75 |
| TikTok Sans | 75 | 150 | 75 |
| Georama | 62.5 | 150 | 87.5 |
| Advent Pro | 100 | 200 | 100 |
| Anybody | 50 | 150 | 100 |
| Datatype | 50 | 150 | 100 |
| Roboto Serif | 50 | 150 | 100 |
| Strichpunkt Sans | 100 | 200 | 100 |
| Google Sans Flex | 25 | 151 | 126 |
| Roboto Flex | 25 | 151 | 126 |
| Inconsolata | 50 | 200 | 150 |
| Science Gothic | 50 | 200 | 150 |
| Linefont | 25 | 200 | 175 |