The scale that is not a scale
5 systems · 62 stepsThe type scales of five design systems, read out of the files they ship, with the ratio between every pair of steps computed.
The finding. None of the five is geometric. A type scale in the classical sense multiplies by one constant; across sixty-two steps the ratio between consecutive sizes wanders in every system — Tailwind from 1.111 to 1.333, Material from 1.0 to 1.375. Bootstrap’s top four headings have no fixed size at all, being viewport expressions, so four of its seven steps cannot be written into a specification. Only IBM’s Carbon publishes a formula, and it is additive rather than a ratio: the increment grows by 2px every four steps.
What “geometric” means here. A type scale in the classical sense multiplies by one constant — 1.25, or 1.333, or the golden ratio — so every step stands in the same relation to the one below it. Not one of these does that. The ratio between consecutive steps is computed below for every system, and in every case it wanders.
Tailwind CSS
Thirteen fixed steps, each with its own line height.
Ratio between steps: 1.1671.1431.1251.1111.2001.2501.2001.3331.2501.2001.3331.333spread 0.222
GOV.UK Design System
Every step has two sizes. The mobile value is the first number, the desktop value the second.
Ratio between steps: 1.1251.3331.333spread 0.208
Bootstrap 5
h1 to h4 have no fixed size: they are viewport expressions that grow continuously. Only h5, h6 and body are a number.
Ratio between steps: 1.0001.250spread 0.250
4 of 7 steps have no fixed
size. They are viewport expressions — calc(1.375rem + 1.5vw) —
so the size depends on the window and there is no number to put in a specification.
Carbon Design System
The only system here that publishes a formula. It is additive, not a ratio: the increment grows by 2px every four steps, so the ratio between steps falls as the sizes rise.
Published formula. Yn = Yn-1 + {INT[(n-2)/4] + 1} × 2, from 12px
Ratio between steps: 1.1671.1431.1251.1111.2001.1671.1431.1251.1671.1431.1251.1111.1331.1181.1051.0951.1091.0981.0891.0821.0911.083spread 0.118
Material Design 3
Fifteen named roles in five families of three. Named by job, not by size.
Ratio between steps: 1.0911.0001.1671.0001.0001.1431.0001.3751.0911.1671.1431.1251.2501.267spread 0.375
Why this matters for a specification
A type scale is one of the few parts of a design that can be written down as numbers and checked. But “I used a 1.25 scale” is a claim these systems would not survive — the ones everybody copies from do not work that way. Their sizes were chosen, one at a time, for jobs.
Which makes the honest version of the claim easier, not harder: name your sizes, name what each one is for, and name the measure they are set at. That is three facts you can evidence, instead of one ratio you cannot.
Source. each publisher’s published token file, at the version named per row · open-source design systems · MIT, Apache-2.0 and OGL as published · retrieved 2026-09-03. This collection is derived · publishers’ own token files.
The documents. Tailwind — font size · GOV.UK — type scale · Carbon — type sets · Material 3 — type scale tokens