The board you play on now lives in the same room as the pane that started it

Featurekamo-internal
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.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing