Three registers
Nav, form labels and hints, table cells, card metadata, lane headers,
empty states. Set at --lh-ui; rows at --lh-ui-tight.
Documentation body, and anywhere the text is something you could type: code, flags, paths, ids, model names, cron. Plus every eyebrow label.
The mono body is a documentation setting, not a universal one. At
--lh-normal (1.62) it is warm and readable down a column of prose. Applied to a
dense application — a five-lane board, a budget table, a form of twenty fields — it costs
real horizontal density and reads as a terminal, which is the opposite of the intended
register. So the interface gets its own family and its own leading, and mono keeps the job
it is best at: signalling that a string is a literal value. Note the right-hand panel
above — the labels gain nothing from mono, while the values lose nothing without it.
Both panels use the same size ramp; only family and line-height differ, so the two registers
stay in step. Display serif is untouched by this and stays where it was: mastheads, epigraphs,
large numerals, one poetic line per page.