Design maintenance

Governance notes moved off the reference page (#182) · ← token reference

Rhythm audit — exceptions (amber), no third snap

Original audit checked every padding/margin/gap/size in main.css against the 2px grid; snap I landed in d3526f4, snap II resolved chip paddings and light-theme contrast. Odd steps on the ladder stay amber: they are optical/target exceptions, not leftover bugs. A 2026-10-14 recount of padding/margin/gap is ~89.5% even. Do not snap the rows below.

FindingWhereStatus / suggestion
chip/badge paddings 0 5px → 0 4px, 3px 9px → 3px 8pxgo-down badge, pin-tray count, toast chips, lc-queue chipresolved — snap II
msg media margins ±5pxmsg-image, msg-video, msg-audioexception — half of the bubble's 10px padding, geometric half-bleed
bubble 7px 10px 6px · composer-input 13px · btn-primary 11px verticalbubble, composer, primary buttonsexception — optical centering / 48px target; keep
1 / 3 / 13 / 15px micro-valuesbot-chip 1.5px 4px, toast-close, meta gaps 3px, service-msg 3px, composer 13, one 15pxexception — micro-typography below the grid
svg icon heights 13/14/16/17/20/22/26all icon rulesresolved — --ico-1..5 tokens (14/16/20/22/26): 13→14, 17→16, 18→20, 12→14. Global svg fallback stays 24; display graphics (30/56/168/280) and controls (checkboxes, count badge) deliberately not tokenized
radii: pin-tray-count 9px18px-tall count bubbleexception — half-height circle (renders as 50%)
light theme contrast passhtml[data-theme="light"]resolved — --text-dim #656a76→#5d626d (5.04 AA), --green #3d9146→#2a7032 (5.51 AA), --danger →#bf2a2a (5.33 AA); --accent-2 stays 3.40 UI-grade; raw --accent 3.01 accepted UI-only — accent text uses --accent-text. Numbers now computed in the pair table above.

The token cards and the contrast pair table are generated — see the stamp on the reference page; regenerate with node tools/gen-design-tokens.mjs in the app repo, where a test fails on stale output.