Leading must move with size and measure together
Aliases: line-height · line spacing · interlinear space
What it is
The usual interface habit is to freeze a unitless multiplier — 1.5 everywhere — and hope it serves a 12-pixel caption as well as a 32-pixel title. Leading is not a fixture of the typeface. It is a function of size and measure: as type grows or the line lengthens, the gap the lines need changes. Lock either end and the leading sits wrong as soon as the other end moves.
Leading here is the vertical rhythm of the line boxes, not a vague wish for more air. It has to do two jobs at once: keep the faces of one line in a stable horizontal band, and give the eye a landing strip when it returns from the end of the line to the start of the next — not back onto the same line, not two lines down.
Why it happens
A return sweep needs a next line it can aim at. The longer the line, the farther start and end sit in the field, the larger the aiming error, and the wider the empty band must be so two lines read as two catchable tracks. On a short measure that band can shrink; too much of it turns a paragraph into a stack of isolated phrases.
Size pulls the other way. As type grows, the same multiplier already yields more absolute space; keep the 1.5 that was tuned for small body and titles fall apart into separate strips, and the paragraph loses its block. Small type is the inverse: absolute space is scarce, so the multiplier has to rise to carve out a band you can still aim at. One line-height for the product is arithmetically neat and optically always a compromise that favours one rung and starves another.
That is why leading has to move with size and measure: they are three knobs on the same reading track. Change size and leave leading, and the track spacing belongs to the old setting. Change column width and leave leading, and the return sweep aims at a gap that is no longer wide enough.
Studying it
Tinker’s print-legibility experiments treated leading, type size, and line length as a joint independent set, not three separate aesthetic choices. Dependent measures were typically speed, comprehension, and rated “crowded / sparse.” Later screen work (including Dyson on measure) keeps that joint logic: a single “best line-height” reported without size and characters-per-line cannot be reused.
A workable interface measurement: hold face and weight, vary size and column width systematically, and record whether the return lands on the correct next line (eye tracking of the line-start landing, or, as a cheap proxy, line skips and double-reads in oral reading). Independents: size, characters per line, leading multiplier. Dependents: skip rate, speed, rated crowding.
Where it stops holding
Single-line UI — buttons, field labels, navigation — has no return sweep. Leading collapses into vertical centering and hit height, and no longer tracks measure. Verse, code, and table cells have their own vertical habits; body multipliers do not transfer. After the user enlarges type, leading stored as a fixed pixel gap gets eaten by the glyphs; an oversized multiplier turns the paragraph into a sparse list. The coupling still holds under Dynamic Type; it just has to be done in relative units.
Applying it
- Write leading as a relation that moves with body size and column width, not as a global 1.5. Widen the column, add interlinear space; drop the multiplier on title rungs.
- At each breakpoint check three things together: size, approximate characters per line, leading. Changing width alone is an unfinished edit.
- Keep body leading relative. A pixel-fixed paragraph gap dies first when the user enlarges type.
- How to check: set the same passage in four combinations — narrow/wide × small/large. Line skips, doubled lines, or titles that “fall down the page” mean leading did not follow the other two knobs.