Foundations
Typography
Two families, five sizes, three weights and two line heights, and every one of them is stage 04's, inherited rather than re-derived. Small and short on purpose: design principle 5 says density is the feature, and six hours a day means no decorative whitespace.
Two families
Chosen on a rendered comparison of four candidates each rather than on the name drawn on the brandbook plate. Archivo carries display and body; IBM Plex Mono is reserved for anything counted, which is what makes a number legible as a number at a glance rather than as a word.
Clerk proposes compromised identity
--font-sans · 'Archivo', system-ui, sans-serif
34 of 36 accepted, 30 days
--font-mono · 'IBM Plex Mono', ui-monospace, monospace
@font-face, no stylesheet from a font host, on any of the 52 coloured pages. Both names resolve from the reader's own machine. On a machine that has them the product looks as designed; everywhere else it falls back to system-ui and ui-monospace, and the character both families were chosen for is gone. Open at the step 3 gate.
The scale
rem since stage 10, and two of its five sizes grow with the window. It was in px from stage 04 to stage 09: at a 16px root those are the same numbers, and for a reader who set a larger font a px scale simply ignores the setting, which is how a layout fails WCAG 1.4.4 quietly. The numbers below are what they resolve to at this window's width, measured, and the two fluid ones move if you drag the edge.
measuring
The two ends of each clamp are this product's own two widths, 1280 and 1920, so the type grows across exactly the band the analyst sits in and is stage 04's value everywhere below it. The three small sizes do not grow at all: density is the feature, and on a wider monitor this analyst wants more rows rather than larger ones. What makes dense text readable is the measure, and that is capped at 66ch. A font-size is never switched at a point, and the middle term of each clamp carries a rem addend rather than pure vw, because pure vw takes the page out of the reader's zoom. Full reasoning on Width.
Five sizes, live, in real product strings from voice/docs/microcopy.md and the coloured screens rather than in filler. The token is on the left and the class that carries it, where there is one, beside it.
--size-xl ·
the one heading a page is allowed
fluid
--size-lg ·
screen title, pane title
fluid
--size-md · 14px
body, controls, the verdict in a row
--size-sm · 12px
dense data: rows, tables, the narrative
--size-xs · 11px
column heads, chips, meta, keys, hints
Nothing in the product is smaller than 11px except two places that are, and they are named under Tracking below.
Weights and line heights
Three weights, and the product uses no 500 anywhere. Attribute A3 gained a ceiling at stage 06: 600 is the working emphasis, and 700 is allowed on a counted value only. Halation makes this structural rather than stylistic: body text on a dark ground never drops below 400.
400 · regular
everything that is read
600 · the working emphasis
the client, the verdict, a heading
700 · a counted value only
and nothing else
--leading · 1.45
anything read in a paragraph
--leading-tight · 1.25
every heading
Tracking, and this is the open row of the whole foundation
Three tracking tokens were measured on the brandbook plate. No product rule reads any of them: all ten of their uses are on documentation pages. Meanwhile the product writes eight literal tracking values of its own, and they were never reconciled.
This page shows all of them together because that is the only way the question is answerable, and step 2 did not rule on it. Nothing was collapsed silently: the tokens are carried unchanged and the eight values are below.
| Value | Where it is written | Sample | Reading |
|---|---|---|---|
| .04em | chip--state, 194 uses |
unrecorded | the tightest of the six |
| .06em | claim .tag, written as a literal |
identity | this is exactly --track-mono, written past the token that holds it |
| .08em | column heads, the field label, 5 rules | tenant | the most used of the six |
| .09em | rail, 1 rule |
record | one rule, and one hundredth off its neighbour |
| .1em | the block headings, 3 rules | evidence | |
| .14em | anote::before, toast .role |
why | and both are 11px, which is below the 11px floor of the scale |
| -.01em | wordmark, doormark |
Harrier | against --track-display at -.038em |
| -.02em | the stand's own headings | Harrier | documentation, not product |
The three tokens, for comparison
--track-mono · .06em
measured on plate J · 0 product uses
--track-display · -.038em
rendered test · 0 product uses
--track-wordmark · .16em
measured on plate J · 0 uses anywhere
The product's own tracking already meets what the dark ground needs, which is why forcing the token onto it would be the wrong way round. CLAUDE.md requires slightly open tracking on small monospace because of halation, and stage 04's spread of .04 to .14em is open throughout. Making the six into one to make a token look used would change stage 04's typography for the sake of the token. The question this page asks is the other one: should six values be six, and if not, which one survives.