- Shipped
- September 8, 2026 at 3:44 AM UTC
- Author
- Kamo
- Commit
- 2c5e0d0
You chose a game in a dark room of board lacquer and brass, pressed start, and landed on a white MUI form with a board floating on it — `var(--surface)`, `divider`, `text.secondary`, every default. They were two different products. chessSurface.ts is the one palette both read from, so they cannot drift again. The colours are the object's own: a tournament roll-up board is dark green and buff rather than black and white, and a chess clock has brass trim on a felt base. None of it is brand-derived — the BOARD carries the member's chosen scheme; the room around it stays the room. A rail per player, opponent above the board and you below, which is where the two players actually sit. Each carries a disc in that player's piece colour, so "which side am I" needs no words; the name; the head-to-head in brass; the captured pieces and the material lead. The border and the disc light brass when the board is waiting on that player, with a pip that pulses — a window sitting behind three others is read at a glance or not at all. Three things that are not styling: - The brass hairline and shadow are on the BOARD, via a `framed` prop, not on its container. Built as a frame around the area first, and since the area is never square the frame floated away from the board it was the edge of. - A finished game is a card over the final position — the result, how it ended, and Play again — rather than a status line quietly changing. The board stays visible underneath, because the final position is the thing you want to look at. - Captured pieces are ivory silhouettes. They were drawn in the BOARD's piece colours, so the classic scheme's near-black captures sat on a near-black rail and the trays looked empty in exactly the games where somebody was winning. A tray only ever holds one side's pieces, so the fill has no colour to encode.