Brand to token.
The last step is generated — a build script emits the CSS, the Figma variables, the fonts. But a script only resolves decisions already made, and the deciding is the work: judgment earned across twenty-plus years of practice, weighed against the accumulated canon of thousands of works, and pressure-tested by more than two dozen specialist agents working in concert. The pipeline doesn't conjure Lumos — it remembers the thinking, and makes it reproducible.
The brand, named.
Three colors and two faces — small on the page, dense behind them. Each is a judgment call, drawn from decades of craft and the whole design canon before it earned its place.
Ten ramps, ten steps.
Each brand decision is expanded into a 10-step ramp. 100 primitives plus a five-stop chart series and five status anchors.
The shared promise.
Lumos binds the same scheme-agnostic contract every theme implements. Components read these names — never raw hex — so a scheme stays swappable.
SEMANTIC_TOKENS — --bg-canvas, --fg-primary, --accent …--intent-* — 6 tones × 5 roles, derived onceSTATUS_ANCHORS — moss · amber · rust · stone · neutralOne script emits all.
build-themes.mjs validates the palette against the contract, then writes deterministic, byte-stable artifacts — code and design from one source.
tokens.generated.css — light + dark scopeslumos-….figma.json — Figma variables, 1:1fonts.self-hosted.css + manifest entryThis book.
The generated tokens drive @tarva/ui components — and these very slides. What you are reading is Lumos, resolved all the way through.
@tarva/ui — 494 components, re-skinnedThe generator is the cheap part. What it can't do is decide — and the deciding is where the years went: domain knowledge, the weight of every work that came before, dozens of agents in concert, compressed into a palette and a contract. So the swap stays cheap: change the ramps at stage 2, keep the contract and the components, and build-themes.mjs re-emits everything — new tokens, new Figma variables, new fonts, no component touched. The expensive thinking happened once; the system just remembers it.
