Icon.loop is a
process-cycle motif, so the circular return arrow moved into the Extension block with
that reasoning recorded.
prefers-color-scheme — that is a screen-level behaviour.
doc-page, with a running
header and footer on every printed page. CHANGELOG.md remains the
plain-text record the project rules point at; this document is the readable artifact
built from it, and the two are updated together.
templates/ slot in the contents, declared but not yet drawn.
Screen-level layouts belong there rather than in Components — a template is an
arrangement, not a part.
foundations/,
elements/, components/, report-design/ — each
carrying the same header, sticky nav and numbered-section chrome. Nothing was redrawn;
the sections moved intact.
#B3122F as supplied, #4CAF50 →
#38813B, #E8B400 → #8E6E00).
details disclosure with findings collapsed by default, a regressed
finding with its ticket key, and the size budget in the footer.
#E3DED5 hairline showing through the 1px gap rather than
over white, dropping its label to 4.04:1. Given an opaque white base — 5.28:1,
matching the audited pairing.
open="" attribute cannot express a boolean DOM property through template
compilation, so all four sections rendered collapsed — hiding the what-changed
narrative, the regressed finding, and the ticket-link treatment the section exists to
demonstrate, while the summary still read "OPEN".
Icon and rebuilt: 105 glyphs are now 1.5px line drawings
inheriting text colour, zero Unicode marks carry state, zero filled forms.
Icon is mounted directly for check, loop,
govern and gate — the four places the sanctioned set has an
equivalent.
1em) rather than a fixed 12px. A 12px
glyph in a 10px metadata line was driving the line box taller than its text and
pushing 1c's rows past their labelled height.
◼ replacement had leaked the govern padlock onto
the snapshot mode indicator, so one glyph carried two meanings. The mode indicator has
its own snapshot mark now.
#B26E24 became a text background for the first time in the focus map.
Paper on it is 3.85:1, so those labels take ink instead — 4.53:1, the system's lowest
text pairing.
#8F5617 while the trap marks were #B26E24.
box-sizing: border-box reset. Every explicit height was
content-box and inflating by its padding and border — 1a's "28px rows" were rendering
at 37px and chips at 26px.
nowrap and their rows wrap instead. The sample-freeze declaration was
breaking its own timestamp across two lines.
text / secondary — #6B7075 → #62676C. The old
value read 4.32:1 on the recessed surface.
text / signal → #8F5617. Signal Amber is a 3.28:1 text
colour; it remains the fill and the token swatch.
border / chip added as a distinct token, #8E8577 light /
#666E76 dark. Solid-versus-dashed identifies whether a chip is
authoritative or advisory, so that border is a required state and needs 3:1. Grid Line
#E3DED5 stays the decorative hairline and is exempt.
border / signal — #C77D2E → #B26E24, which
reads 2.84:1 as a border on the recessed surface.
This record is updated at the end of every session that changes a design file. Any session that introduces, changes, or re-roles a colour re-runs the rendered contrast sweep and records the result here — a border token used as a fill is a new pairing, and a tint whose parent is not white is a new pairing too.