Lead sentence & second line

Two surfaces, one question: how does a primary line separate from what follows it — by weight, by tint, or both? Every variant below is built from tokens that already exist. Nothing here invents a value.

artefact — real pixels, real tokens commentary — not the product
Every specimen re-renders live.

0 · What we have to work with

The whole budget. There is exactly one tint that is safe for prose — every other colour token fails contrast as body text.

THE LADDERtokens-typography.css · palette-default.css
tokenwebdesktopspecimenused in the navigator for
--bn-text-micro9.6px10pxDon Normanthumb glyph, badge — never prose
--bn-text-badge11.5px11pxDon Normanpanel subtitle
--bn-text-caption12px12pxDon Normanrow second line
--bn-text-label13px13pxDon Normanrow title, section heading
--bn-text-body15px15pxDon Norman
weightvaluespecimencurrently means
--bn-weight-light370The Design of Everyday Thingsnav row titles
--bn-weight-normal420The Design of Everyday Thingsbody, descriptions
--bn-weight-emphasis490The Design of Everyday Thingsheadings, labels
--bn-weight-starred520The Design of Everyday Thingsstarred quotes (+ signal elaboration, borrowed)
--bn-weight-strong700The Design of Everyday Thingspage title, destructive glyphs
colourlightdarkcontrast on bgusable as prose?
--bn-colour-text#1a1a1a#e5e7eb17.4 : 1  /  15.3 : 1yes — the primary
--bn-colour-muted#6b7280#9ca3af4.83 : 1  /  7.44 : 1yes — passes AA
--bn-colour-icon-idle#c9ccd1#5959591.6 : 1no — fails badly
--bn-colour-starred#999#ccc2.8 : 1no — fails AA

The tint axis is binary. --bn-colour-muted is the only non-primary text colour that clears 4.5:1 in both schemes, so "a tint" can only ever mean muted. There is no lighter-still option to reach for, and inventing one would need a new contract token in every palette.

The weight axis has three usable stops between light and strong — but emphasis and starred are both already spoken for (headings/labels, and starred quotes). Anything you pick here is a fourth meaning riding on an existing value.

Settled 31 Aug 2026 — A for the paragraph, 6 for the navigator. Shipped as atoms/lead-paragraph.css (.bn-lead-para, consumed by .pg-desc and .signal-elaboration) and .v2-nav-provenance. Both link back here. Change a value there, but decide it here.

1 · Description paragraph — lead sentence vs the rest

Same text in every cell — the Norman description that reads "good but too long". The question is which treatment gives it a rank without shortening it.

A · pure tint is Apple's own treatment on apple.com/os/macos. B · pure weight is what our signal cards ship today (.signal-elaboration strong--bn-weight-starred, same colour throughout).

Watch what happens at a glance rather than up close: with pure weight the two ranks read as one paragraph containing an emphasised phrase; with tint they read as a claim and its supporting detail. Weight says "this word matters"; colour says "this part is subordinate".

2 · Navigator second line — "Don Norman"

The same construct one level down. The row title is the claim; the author is what follows it.

The system already answered this once. The Sessions navigator has the identical two-line row — .session-entry-name over .session-entry-date — and sets the second line at --bn-text-caption (12px), --bn-colour-muted, with no weight change and a 1px stack gap. That is variant 2.

Codebook v2 currently ships variant 1: --bn-text-micro (9.6px), --bn-weight-emphasis, full-strength ink, gap 0. That is two stops below the system's second-line size, at a stop the navigator otherwise uses only for a thumbnail glyph and a badge — never for words. The heavier weight was deliberate (a person's name is the point), but it is doing the work at a size that fights it.

3 · Pick one, see both together

Drive the paragraph and the nav row from the same controls, so a decision can be judged on both surfaces at once.

LIVE — PARAGRAPH

LIVE — NAVIGATOR