Skip to content

Delayed Reaction: menus in the dub radio's own look (tape labels, dials, phone first), hill climb to 8/10, rounds 1+ #3556

Closed

Description

@QuinnsCode

Score: 0/10 (target 8)

Part of the owner's 2026-11-04 round of hill climbs on every game's UI: once the eqosys skin hook (#3549) lands, each game's menus get real, stylised artwork in the game's own look. This climb is Delayed Reaction, the dub rhythm game: the direction is in apps/delayed-reaction/VISION.md (the reference radio is pinned there) and IDEAS.md.

Goalpost: 8/10 from the owner on the menus

  1. In the game's own look. Title, level select, settings and the results screen read as the same world as the run: the VISION's material, type and colour, phone first.
  2. Artwork, not only CSS. Backplates, dials, tape labels, frames as small SVG, procedural canvas or headless-Blender tiles; say what each weighs.
  3. Still readable, every screen size. Contrast at or above today, the four pads untouched, checked with bun run probe delayed-reaction --shot from phone to desktop.
  4. eqosys menus wear it. The sign-in chip, report form and achievement toast come through the skin hook from eqosys menus: a game injects its skin once and every shared surface wears it, hill climb to 8/10, rounds 3+ (from #3541) #3549, never a second stylesheet.
  5. House kit underneath. Components from packages/ui and packages/game-controls re-themed by tokens; a forked copy of one is a gap.

The loop

Each round is one PR against main that says "Part of #N" and commits before/after shots to apps/delayed-reaction/docs/shots-<date>/. A fresh judge scores BEFORE vs NOW (judges run about two points above the owner). End with a comment starting Score: x/10 (target 8) and ending Next: ..., open the "rounds N+" issue and close this one with "Moved up to #new". At the target, a MANUAL RUN: for the owner's own score.

Activity

  1. QuinnsCode commented on Nov 5, 2026

    @QuinnsCode
    OwnerAuthor

    Score: 6/10 (target 8)

    Round 1, PR #3566 (in CI). A fresh judge scored BEFORE (main) 1.5/10 and NOW 6/10. Judges run about two points above the owner.

    The menu is now the front of a dub radio, drawn as SVG in src/fascia.ts (about 8 KB): screws, a station display with a bpm tuning scale and needle, Tempo and Delay knobs that turn to what you point at, preset keys with lane-colour LEDs and tape labels, the 24 tracks as torn tape over a speaker grille, and a VU-meter readout for results. The title is no longer cut off. "bar -1" is fixed. The Controls dialog is re-themed through its tokens only. The pads are untouched.

    Phone 390x844 On its side 844x390 Desktop 1280x720
    Title, before shot shot shot
    Title, now shot shot shot
    Levels, now shot shot shot
    Settings, now shot shot shot
    Results, now shot shot shot

    Retake them with bun apps/delayed-reaction/scripts/menu-shots.ts <dir> --url <dev server>.

    Next: (1) Settings at all sizes: the Controls dialog is still a flat sheet. Give packages/game-controls a backplate token (panel background and frame) so it can wear the fascia without a fork, and fix "Toggle instead of hold" wrapping onto three lines. (2) Cold, not warm: cooler, near-white tape, a faint neon glow and a grid echo of the tunnel, and lane colour that carries further than the tiny LEDs. (3) Phone on its side: a compact station header so the presets show above the fold, the needle no longer covering the "120" label, preset tapes on one line ("120 · 1 bar"), and the results readout slimmer on phone. (4) Once #3549 / PR #3540 merges, inject this game's skin into the sign-in chip, report form and toast through the hook.

  2. QuinnsCode commented on Nov 5, 2026

    @QuinnsCode
    OwnerAuthor

    Moved up to #3567

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions