Design
A Type Scale Is a Promise
Every design system audit we run starts the same way. Before we look at components, tokens, or documentation coverage, we pull every text style actually used in production and line them up on one page. The result is usually carnage: forty-plus sizes, a dozen weights, line heights chosen by vibes, and a documented scale that the real product abandoned around the third sprint after launch.
The team is always a little embarrassed, and they should not be. Type scales drift in every organization because most organizations misunderstand what a type scale is. It is not a menu. It is a promise about hierarchy, and promises take enforcement.
Hierarchy is the product
Here is the reframe we push on every client. Users do not read interfaces. They triage them. Every screen is a rapid negotiation about what matters most, what is actionable, and what can be ignored. Typography is the primary instrument of that negotiation, ahead of color and well ahead of layout.
A disciplined scale, five or six sizes with unambiguous roles, means every screen answers the triage question the same way. The user learns the system once and trusts it everywhere. Add a seventh size "just for this banner" and you have not added flexibility. You have added a small lie, and small lies compound into interfaces that feel noisy for reasons nobody can articulate.
When we rebuilt Aperture's product typography last year, we cut their working set from thirty-one text styles to eight. Not a single screen got worse. Support tickets mentioning "cluttered" and "hard to scan" dropped measurably within two releases. Nobody misses the other twenty-three.
Why scales drift, and what actually stops it
Scales do not drift because designers are undisciplined. They drift because the scale failed someone under deadline. The heading was too big for the modal, the label too faint for the data table, and the designer did the sensible local thing at the cost of the global system.
So the fix is not policing. It is designing the scale against the hardest real screens, not the marketing page.
- Build the scale in the densest surface you have: the data table, the settings panel, the mobile checkout. If it survives there, the homepage is easy.
- Give every step a named role, not just a size. "Section heading" and "card heading" can share a pixel value today and diverge safely later. Naming by role is what makes that possible.
- Define the exceptions process in the system itself. A pressure valve that is visible and reviewed beats forty invisible overrides.
- Ship the scale as tokens with lint rules, so a rogue font-size fails a build instead of passing a review.
That last point matters more every month. When generative tools are drafting first-pass screens, the system is no longer just guidance for designers. It is training data and guardrails for machines that will happily invent a forty-first text style if nothing stops them.
The taste layer
None of this is mechanical. The ratios that make a scale feel composed rather than merely consistent are a judgment call, and they depend on the typeface, the density of the product, and the temperature of the brand. A modular scale calculator will give you math. It will not tell you that your chosen face runs large on the body sizes and needs a half-step pulled out of the middle. That is looking, not computing.
This is where I get opinionated. The industry spent the last two years automating execution, and the result is that everyone's defaults got competent. Competent is now free. What is scarce is the willingness to look at a settings page for an hour and notice that the hierarchy whispers when it should speak plainly.
A type scale is a promise: this is how we will tell you what matters, every time, everywhere. Keep the promise small enough to keep. Then keep it.
Building something this could apply to?
We take on a small number of flagship projects each quarter.
Start a project