RWF · theme exploration
One design system, twenty-six material kits — the original five, the board-game nine, four readings of your Sports Poster brief (Field Day, Fan Zine, Wayfinding, Clubhouse — the original stays as baseline), and eight mined from your own pages (x10.au, doof.ing, qalarc.com, tradez.au, gmux.ai, volkus.net, endispute.com.au, and your steddi × qalarc page). Each is a full design language — components, type, motion and a contract-level describe it as label — and every pair is structurally distinct, not hue-adjacent.
← → swap themes (hold to scrub) · 1–9 jump · esc exit preview · 📱 Review mode — full-screen swipes on the phone, pick a shortlist for the client
★ Picked for review
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 here02 · 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.
04 · Full preview — theme
Every real fg-* component from
design/figma-components.css — same markup as /system, zero edits,
purely re-tokened.
Battle card
You're 2nd — 36 RUF behind Sam
Leaderboard — 400ms spring
Countdown — 3 DZ levels
Danger-zone banner — click to cycle
Quick-log sheet
20 push-ups = 20 RUF · takes you to 92%
Events
Dialogs
Your next 10 minutes of reps count 3×. One per day — make it count.
25 squats (25 RUF) will be removed from today's total.
Feed
Power-ups
Reps count 3× for the next 10 minutes
Take 10% of an opponent's total (SAMPLE cap)
Badges
States
Create your first battle or join a mate's.
Multiple battles need Reps Pro.
Reps Pro paywall
05 · Checks — computed styles + WCAG, live in this page
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.
—