Wren Halloway

Reference

Design system

Every ratio was computed with tools/a11y/contrast.py against all three grounds. This page is noindex: it documents the template for whoever builds with it.

Twelve disclosures, closed

The summary of each date carries the four facts a listing normally omits — room, format, when the headline is on, and whether it is gone — and the body carries the sentence about what the night is actually like. Closed by default, because twelve open dates is a wall nobody reads, and a page whose whole argument is that listings withhold information cannot then bury it.

Sold out stays on the list

Two dates are gone and both remain, marked in a word with a glyph before any colour is applied. Deleting them would make the run look smaller than it is and tell the person who missed one nothing. The structured data does the opposite, deliberately: only on-sale dates are emitted as MusicEvent, because publishing a sold-out show as an available event is the kind of markup that makes a rich result actively wrong.

Schema.org, sixth shape in five days

MusicGroup, which covers a solo artist as well as a band and is the only type reached for so far with first-class album and event properties. Days 109–112 were VideoGame, Organization, Person + occupation and Person + offers. The type is chosen from what the page is, every time, rather than inherited from the scaffold.

Photographs of things, not of a person

The artist is fictional, so there is no portrait — the same objection day 110 made about headshots. A seated room and a guitar case are real places and real objects standing in for the user's own, which is what days 101 and 111 did with frames and a desk. The guitar-case photograph was cropped to remove a framed drawing of a face: somebody else's artwork, and a portrait, on a page that deliberately has none.

Type

Lustria — display

Source Serif 4 carries the body, and the body is most of this page.

The only template in this sprint with no custom mono: the figures here are prices and times inside prose, not columns that have to align, so a system monospace is enough. Neither face appears in days 1–112.

Tokens

Colour tokens with measured contrast ratios
SwatchTokenValueMeasured
--color-bg #141613 Warm green-black
--color-bg-alt #1B1E19 Banding
--color-surface #252924 Cards
--color-text #EEF1EB 15.96 / 14.78 / 12.96:1 · AAA
--color-text-muted #83937B 5.57 / 5.15 / 4.52:1 · AA
--color-border #687561 3.73 / 3.45 / 3.03 — non-text only
--color-accent #5BA343 Hue 105, 42% sat — 5.86 / 5.43 / 4.76:1 · AA
--ticket-gone #DB714D Sold out — 5.62 / 5.20 / 4.56:1
--color-band #EEF1EB The band inverts: light on a dark site
--color-on-band #141613 15.96:1 on band · AAA
--color-on-band-muted #515D4C 6.10:1 on band · AA
--color-accent-on-band #437932 4.58:1 on band · AA

The border token clears 3:1 against all three grounds, which is what WCAG 1.4.11 asks of a non-text boundary. It is never used for text.