RWF

Twenty-six material libraries

26 kits

01 · The catalogue — 5 originals + 9 game kits + 4 poster variants (◐) + 8 from your pages (◈)

← → swap · hold to scrub · 1–9 jump · esc exit · arrows work from here

02 · Side by side — the same screens, every skin

Live components — the countdowns tick, the log sheet converts, the DZ banner cycles. Scroll the strip sideways; each frame is a real page (demo.html?t=…) wearing one theme.

03 · On the app — the V2 board game (/v2) in every material kit

Twenty-one kits are full design languages now, not palette swaps — each rebuilds the app's real components (the table, lanes, the pot, runner tokens, the fanned card hand, buttons, boards) with its own type, structure and motion. These are the app's actual screens wearing each skin: home + battle, per theme.

Live bd-* markup from apps/board (the real /v2 stylesheet) — appdemo.html?t=… wearing one theme at a time. The same skins switch live in the app: /v2 → theme row on the home screen.

05 · Checks — computed styles + WCAG, live in this page

not run yet

Reads each frame's computed tokens (same-origin), then recomputes WCAG ratios in-browser. The offline source of truth is scripts/styles_contrast.py; the headless walk is apps/styles/e2e.mjs.