Skip to content

Release 0.4.0: the Luminous Instrument redesign - #3

Merged
ASHR12 merged 3 commits into
mainfrom
redesign/luminous-instrument
Jul 25, 2026
Merged

Release 0.4.0: the Luminous Instrument redesign#3
ASHR12 merged 3 commits into
mainfrom
redesign/luminous-instrument

Conversation

@ASHR12

@ASHR12 ASHR12 commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Rebuilds the interface on flat surfaces and a real token system, which also eliminates the colour banding that dark UIs normally suffer from.

The banding fix

The faint contour lines across large dark areas were 8-bit quantization, not a rendering bug. sRGB spends very few code levels near black, so a soft gradient stretched across ~900px has fewer levels available than pixels to cross — it cannot render as a gradient at all, and becomes a few wide plateaus with a hard 1-level edge between each.

It only showed in the dim states because the aurora and glow were dimmed there, leaving the undimmed near-flat base ramp as the only structure on screen. The deck background's --bg-1 → --bg-0 ramp spanned 2 levels of green over 860px.

Two changes fix it:

  • Lift the palette off near-black (#030509#0b111c). Below the sRGB toe, brightness is proportional to code value, so one step at value 7 is a ~14% jump while at value 21 it is ~5% and stops reading as a line.
  • Replace every window-sized wash with a flat fill — the six-wash drifting aurora, the full-window vignette, and the deck and boot gradients.

Also in this release

  • Depth from tone, not outlines. Nested 1px borders are gone from panels, bubbles, and cards; surfaces nest by fill tone plus spacing. Edges are kept only for floating menus.
  • Tokens retuned into type, space, radius, and elevation scales, with the reactive accent now tracking orb state.
  • Light only exists while the reactor runs. The canvas halo had a fixed alpha floor, so a sleeping orb emitted a glow disc wider than its drawn ring that the asleep filter turned into a grey smudge. Now gated on energy above rest, with stops rebalanced so the awake look is unchanged.
  • Dropped the radial scrim and orb plinths — soft washes standing in for depth that read as shadow on a flat surface.
  • View → Toggle Full Screen → Toggle Glass HUD. The old item was a no-op on this frameless window; the HUD now has a menu-bar exit.

Documentation

The banding analysis is written up in full in the README under "Dark UI without colour banding" — the problem is general to dark interfaces, so the five rules transfer to any project. A Cursor rule scoped to src/styles enforces them going forward.

Test plan

  • npm run verify exits 0 — 49/49 tests, tsc --noEmit clean, Vite build clean
  • Version badge auto-derives from package.json, bundle confirmed emitting build 0.4.0
  • Lockfile synced, no dependency churn
  • CI green on this PR
  • Tag v0.4.0 after merge

Made with Cursor

ASHR12 and others added 3 commits July 25, 2026 12:19
Redesigns the deck, HUD and overlays on a proper token system, and removes the
stacked gradient washes that made large dark areas show contour lines.

The banding was 8-bit quantization, not a rendering bug: sRGB keeps very few
code levels near black, so a soft gradient spread across ~900px has nothing to
put between its steps and renders as wide flat plateaus with hard 1-level edges.
It only showed in the dim states because the aurora and glow were dimmed there,
leaving the undimmed near-flat base ramp as the only structure on screen.

- Lift the palette off near-black (#030509 -> #0b111c). One code step at value 7
  is a ~14% brightness jump; at value 21 it is ~5% and stops reading as a line.
- Replace the six-wash drifting aurora, the full-window vignette and the
  window-sized deck and boot gradients with flat fills. A gradient that crosses
  more pixels than it has code levels is not a gradient, it is plateaus.
- Drop the nested 1px borders on panels, bubbles and cards. Depth now comes from
  one step of fill tone plus spacing; edges are kept only for floating menus.
- Retune tokens into type, space, radius and elevation scales, and fix the
  reactive accent so ambient light tracks the orb state.

Also replaces the dead View > Toggle Full Screen menu item (a no-op on this
frameless window) with Toggle Glass HUD, so the HUD has a menu-bar way out.

Records the approach in the README and enforces it for future work via a Cursor
rule scoped to src/styles.

Co-authored-by: Cursor <cursoragent@cursor.com>
Light around the orb now only exists while the reactor is actually
running. The canvas halo carried a fixed alpha floor, so a sleeping orb
still emitted a glow disc wider than its drawn ring; the asleep filter
desaturated it into a grey smudge. It is now gated on how far energy sits
above rest, keyed off a single shared constant, and the stops are
rebalanced so the awake look is unchanged.

Also drops the dark radial scrim behind the HUD orb and the plinth under
every orb stage. Both were soft washes standing in for depth, and on a
flat dark surface they read as shadow rather than as light.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cut 0.4.0 for the Luminous Instrument redesign. The banding fix changes
the base palette and removes every window-sized gradient, so this is a
visible enough shift to warrant a minor bump rather than a patch.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ASHR12
ASHR12 merged commit b506100 into main Jul 25, 2026
2 checks passed
@ASHR12
ASHR12 deleted the redesign/luminous-instrument branch July 25, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant