Task 1.4 · token specimen
Candidate
Scaffold only. Nothing is built yet — this page exists so the design tokens can be checked against DESIGN.md in a browser.
Type scale
Display — Archivo 700
Title — Archivo 700
Heading — Archivo 600
Body — Source Serif 4 at 17px, the size lesson prose and coach commentary are read at. It stays 17px on desktop, and the measure is capped at 62 characters, because reading is the core activity here.
Small — Archivo 400
Notation — IBM Plex Mono 400
Notation
- 11.e4+0.30
- 11…d5-0.20
- 12.Nf3+1.40
- 12…Bxf3-2.85
- 13.Qxd5++11.06
- 13…O-O-O+9.72
Tabular figures: the decimal points align down the column.
Annotation glyphs
- !!brilliant
- !good
- !?interesting
- ?!dubious
- ?mistake
- ??blunder
Color
- pinedark squares; chrome, headers, buttons
- bufflight squares; cards, raised surfaces
- pine-deepbody text on light, deepest ink
- pine-softhover state, borders on dark
- bonepage background
- chalkannotations, candidates, links, focus
- oxbloodblunders, destructive actions, errors
- mutedsecondary text
- hairline1px rules on light surfaces
Surface
A raised surface
Buff card on the bone page, carrying the one shadow the design system allows.
Focus ring: tab to this link to see the 2px chalk outline.
Board
Arrow keys move around the board. Enter picks a piece up and puts it down. Escape puts it back.
Drag a piece, or tab to the board and use the arrow keys and Enter. a1 stays dark from both sides.
Play
Task 2.3 · the first real screen. Play a game against an opponent that knows the rules and nothing else.
Backend
Convex is connected.
Task 1.2 · rendered on the server from health.status, then held open as a live subscription. Edit the message in convex/health.ts and this line changes without a reload.
Identity
signing in…
Task 1.3 · the anonymous userId, read back from sessions.current. Blank on the server render and filled in after hydration, because the token lives in localStorage. Clear site data and this becomes a different id — progress is per-device, by design.