Skip to contentWolf-Rayet

Decision records

ADR-0103 Caps for eyebrows only

Accepted2026-09-17Phase 7

Amends: ADR-0099, ADR-0100, ADR-0101

#Context

ADR-0099 set the display role in caps, ADR-0100 put the page header, shell header and modal titles in caps, and ADR-0101 set field section headings in display caps. The docs site followed with caps titles, headings, tabs, table heads and specimen labels. The maintainer rejected this: text in capitals is harder to read, because words lose their shape, and a screen reader user gains nothing from it. Caps have a place, but a narrow one.

#Decision

Uppercase is for eyebrows only. An eyebrow is a short mono label that sits above or beside the text it names: the docs site's .label and .headerKey, and the annotation labels in fixtures and stories. It is set with 0.06em tracking so its letters stay apart. Nothing else is set in caps.

  • Components. The page header title, the shell header name and the modal

lead lose text-transform: uppercase. They keep the display role.

  • The heading voice. Field themes keep the display face and the lead

size, now in sentence case at weight 700 instead of caps at 800. The voice keeps case as a property, so a future voice can still declare it.

  • The docs site. Titles, section headings, card and rail titles, the

hero, tabs, table heads, captions and specimen labels are sentence case. Display text is tracked slightly tighter and given taller line heights, which lowercase descenders need. Component titles and tab labels, which were slugs hidden by caps, now read as words: "SLA countdown", "Guidelines".

#Consequences

  • No scene value moves, in either set. The metric font derives each glyph

from the low bits of its codepoint, and a capital and its lowercase letter differ only in bit 5, so case is invisible to the engine. On darwin-arm64, all 214 base values, all 513 themed values and every verdict are identical before and after.

  • The design canvas in design/direction-pass-1/ still shows caps. It is a

record of the direction pass, not a specification.

#Rejected

  • Caps with wide tracking for titles. Tracking helps short labels, not

headlines or section headings.

  • Keeping caps in the field themes as signage. Legibility is the reason

the field themes exist.