Repository navigation
Description
Score: 6.5/10 (target 8), after round 4 (PR #3597; the hook merged in #3540; earlier rounds 7, 7.5 and 7, each from a fresh judge). Moved up from #3570: its round 4 comment has the shots and the Next list. Per-game skins are #3598.
The owner's brief (2026-11-04): every game should be able to inject its own style into the eqosys menus. Today the shared sign-in client (packages/util/src/eqosys.ts) renders nothing, but the pieces games mount from it do, each in its own way: the report button (packages/util/src/report.ts) carries hard-coded inline cssText (grey border, white background, system font) that looks the same in a space-marine war room and a druid's tome; the spaces panel (spaces.ts) and lobby (lobby.ts) leave skinning to the page, so each game has its own account box (apps/*/src/account.ts, Two Fronts's account box in main.ts). The house kit (packages/ui) already re-themes by CSS custom properties (applyTheme, TOKENS), and packages/game-controls/src/skins.ts has classic / house skins with installStyles.
Goalpost
One way for a game to say "here is my skin" once, and every eqosys-rendered surface in that game wears it: sign-in / account chip, achievement toast, report button and form, party and spaces panels, lobby. Scored out of 10 by an agent judge against:
- One injection point.
eqosys({ app, url, from, prefix, skin })(or a siblingskinEqosys(...)) takes aThemeof--ui-*tokens plus optional extra CSS, and every shared surface reads tokens frompackages/uiinstead of hard-coded colours. No per-surface styling API. - No hard-coded colours or fonts left in
report.ts,spaces.ts,lobby.ts, and the achievement toast: every colour, radius, border and font is a--ui-*token with a house default. - Three games wear it. Two Fronts (distressed metal:
--imperialfonts, brass on dark steel, square corners), Mythic Masters (tome: parchment, ink, Covered By Your Grace for the Book's hand; look atapps/mythic-masters/src/tome.css), Skate Tech Park (stay minimal: the house skin). Each injects its skin in itseqosys.tsand deletes any duplicate styling of those surfaces from its own CSS. - Cut before you add. The per-game account boxes that do the same thing (
apps/*/src/account.ts) share oneaccountChip(...)inpackages/utilthat the skin styles; copies die in the same PR. - One journey test per touched game still passes (
eqosys.test.ts), plus one test that a skin's tokens land on the mounted surfaces (eval the computed style, don't assert on source text).
The loop
Each round is one PR against main that says "Part of #N". Score it with bun run probe <app> --shot on each game's sign-in chip, report form and achievement toast, side by side. End the round with a comment here starting Score: x/10 (target 8) and ending Next: ..., then open the "rounds N+" issue and close this one with "Moved up to #new".
Why first: the per-game artwork climbs (Two Fronts distressed metal, Mythic Masters tome) hang their menu skins on this hook.
Round 5 starts here
- A test that the eqosys badge's computed look is identical in all three skins.
- Mythic's settings-pane account row on
accountChip(also in eqosys skin: each game injects or updates its skin through the merged hook (three lines per game) #3598). - On a phone, a bottom-sheet report form that doesn't cover the menu, and a toast clear of the top bar.
- Real-game skin journeys for Mythic and Skate.
Activity
QuinnsCode commentedon Nov 5, 2026
Score: 3.25/10 (target 8)
Reset by the owner (2026-11-05): every hill climb's agent-judged "where am I at" score is halved to match what they expect; this one was 6.5. Judges keep scoring before against now the same way, and each round reports half the judge's number from here on.
QuinnsCode commentedon Nov 9, 2026
Score: 3.5/10 (target 8)
Round 5 is PR #4146. A fresh judge scored BEFORE 7 and NOW 7.5. Half of that 0.5 gain gives 3.25 + 0.25.
What it changes: on a phone the Report form is a bottom sheet with Close, and the flag steps aside while it is open. Toasts drop in under a game's top bar (the new
--ui-toptoken; Mythic uses 52px). Mythic's Settings > Account tab is the sharedaccountChip. A test checks that the eqosys badge computes the same under Two Fronts', Mythic's and Skate's real skins.Next: give each real game a test that its own tokens (background, font) land on every mounted surface, the lobby and spaces panels included, not just that the badge is unchanged.
--ui-top: 52pxstill sits close to the colour-wheel button. Add a test that the toast's box doesn't touch the top-bar buttons.QuinnsCode commentedon Nov 9, 2026
Moved up to #4148
playground: rebuild public/ui.js for the --ui-top token (Part of #3600)
eqosys skin round 5: a phone report sheet, toasts under the top bar, …