One shared look for every Steve Hinan Presents game. Synth, Polyrhythm, and Portal all use it. The dials, Record row and tap hint below are the real shared components the games load from /shared/ui/standard-game-ui/. Pick a Style to restyle the whole app at once, fine tune any section, then Export the look.
Every color in a game comes from these tokens. Red is for recording only and stays the same in every style.
The real SHPRecorderUI. Synth and Portal use seconds (15 or 30). Polyrhythm uses cycles (4 or 8). Press Record to run a 5 second simulation (nothing is captured), or preview each state.
Seconds (Synth, Portal)
Cycles (Polyrhythm)
The real SHPDial. Drag up or down, use the arrow keys, or double tap the readout to type a value. Classic is the shipped v1 knob; the other dial styles are proposals drawn on top of it. Parallel dials use letters: Osc A (orange), Osc B (green), Osc C (purple).
Parallel rhythms are Rhythm A (orange), Rhythm B (green), and Rhythm C (purple). The numbers in the steppers are counts.
Game popups close by themselves after 10 seconds. The green bar shows the time left and runs down toward the left.
Set Rhythm A to 1, Rhythm B to 2 and Rhythm C to 3, then tap the shapes to check.
Players start or check by tapping the art itself. The shared tap hint (a glow pulse plus a tap hand) shows what to tap. Portal: a big PLAY over the portal art. Polyrhythm: tap the shapes to check an objective.
Tap the portal to start.
Big titles in the title font. PORTAL runs nearly the full width.
Set Rhythm A to 1, Rhythm B to 2 and Rhythm C to 3, then tap the shapes to check.
The Standard Game UI ("UI Design Document" here; both are temporary names) is the shared, versioned UI standard every Steve Hinan Presents game follows: Synth, Polyrhythm, and Portal today, and every game after them.
The shipped files live at /shared/ui/standard-game-ui/: tokens.css (the palette and basics), dial.css and dial.js (SHPDial, the rotary knob), recorder.css and recorder.js (SHPRecorderUI, the Record button, length dropdown, and progress). Version 1.1 adds tap-hint.css and tap-hint.js (SHPTapHint, the tap the art hint). Version 1.2 adds the encoding mute to recorder.js. Version 1.3 adds the A/B/C labels rule (docs only).
/shared/ui/standard-game-ui/ and do not restyle them.?v= plus the first 8 hex characters of its sha256.The standard is versioned and will keep improving. Each release has a VERSION file, a version line at the top of every file, and a changelog. v1 (Nov 10, 2026) is the first release. v1.1 adds the tap hint without changing any v1 file. v1.2 adds the encoding mute to the recorder; every other file is unchanged. v1.3 adds the A/B/C labels rule; no code file changes.
Every new build of every game is reviewed against the current version of the standard before it goes live. When the standard changes, the next build of each game is checked against the new version.
Style 1 (Standard v1) is the shipped look. The other 19 styles and every per-section control are explorations. An exported look is a proposal until Steve adopts it into a new version of the standard.
v1.3 is the current version. Synth, Polyrhythm, and Portal all use it. The name is temporary until Steve picks one.