feat(web): adopt TRM design-system tokens (tokens only)

Linked Claude Design project "TRM — Tracking & Race Management" is a
race-timing kit, not a parking design. Adopted its TOKENS only — no TRM
components. Aligned the existing term-* accents onto TRM's exact night/
semantic values (surfaces → night scale; amber→#f2a516, green→#2e8c4a,
red→#e8412b flag, cyan→#2563c8 blue) so the whole booth UI shifts palette
with zero component edits. Exposed TRM's full vocabulary (night/ink/paper
scales, flag/amber/green/blue, viz-1..8, 4px spacing, type scale, square
radii, sharp offset shadows) as Tailwind v4 utilities for new work.

Offline appliance: dropped TRM's Google-Fonts @import (no runtime network);
Goldplay display face not self-hosted yet — falls back to a sans stack.

Web build green; login renders on the new palette.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-06-18 19:46:56 +02:00
parent dfa76346d6
commit 91cc79b14e
3 changed files with 170 additions and 17 deletions
+6 -1
View File
@@ -24,7 +24,12 @@ The operator UI outgrew "plain React + useState" once it needed live updates and
the latest pushed occupancy. Anything durable is re-fetched via Query.
- **Tailwind v4** with a **"Bloomberg-terminal" theme** (`apps/web/src/index.css`, `@theme`):
near-black surfaces, amber/green/red/cyan status accents, monospace, dense/keyboard-first. **Radix**
primitives (Dialog, etc.) for accessible unstyled components.
primitives (Dialog, etc.) for accessible unstyled components. The token VALUES are adopted from the
**"TRM" design system** (Claude Design project; race-timing kit) — **tokens only**, no TRM
components: the `term-*` accents are aligned onto TRM's `night`/semantic colours and TRM's full
vocabulary (night/ink/paper scales, flag/amber/green/blue, the spacing/type/shadow scales) is
exposed as utilities for new work. Offline appliance ⇒ no webfont `@import`; Goldplay (TRM's display
face) not self-hosted yet — display text falls back to a sans stack.
- **react-i18next** for [[i18n]] (Albanian default).
> This SUPERSEDES the original "plain React, no framework" note on [[react-vite-spa]] — that held