Craft
Type systems that survive the handoff
A type scale is not a list of sizes. It is a set of rules a developer can apply without asking you anything.
By Noor Haddad
8 min read

Written by
Noor Haddad
A type scale that only exists in a design file is a suggestion. Six months after handover, half of it will be gone, replaced by whatever the nearest developer needed at the time. This is not a discipline problem. It is a specification problem.
Sizes are not rules
Handing over a list of eight font sizes tells a developer what exists, not when to use each one. The first time they hit a case you did not anticipate — a table cell, an empty state, a toast — they invent a ninth size, and the system has started to leak.
Name by role, not by size
We name every style after its job: Display, Heading 2, Body Large, Mono Label. Never Text-24 or Large. A name that encodes the size becomes a lie the moment the responsive scale kicks in.
Each style carries its own breakpoint behaviour. A developer applies Heading 2 and gets the correct size at every viewport without a media query, because the responsiveness lives inside the style rather than in the layout that uses it.
Line height in ems, always
Pixel line heights break the moment the font size changes. Every line height in our systems is unitless or in ems, so the ratio survives every scale change.
The handoff test
Before we deliver, we take the type system to an engineer who has not seen the design and ask them to build three screens from a wireframe. Every question they have to ask us is a gap in the specification. We fix those before shipping, not after.