cmux NEXT composer: make the default surface glass

Merged
TE
13d ago
+90-9

Leo said: “i feel like the composer is too solid color by default.”

The Claude and Codex chat composers now use a 70% surface tint with a 24px blur on the default opaque window, so the window background reads through the card without changing layout or spacing. Reduce Transparency still gets the opaque fallback and the existing AA contrast checks remain in place.

Gallery comparison:

  • 78% tint / 16px blur: previous, too solid.
  • 70% tint / 24px blur: selected; the background remains present with AA contrast.
  • 64% tint / 28px blur: clearer, but too close to the bright-underlay contrast floor.

The gallery includes busy light and dark backdrop variants for Claude and Codex. The visual reference was Leo's private ours-model-pill-and-wheel.png capture, described here without publishing it.

Validation:

  • CMUX_BROWSER_TESTS=1 bun test test/composer-glass.test.ts (19 pass)
  • CMUX_BROWSER_TESTS=1 bun test test/queued-glass.test.ts (12 pass)
  • CMUX_BROWSER_TESTS=1 bun test test/composer-look-dots.test.ts (7 pass)
  • bun test test/glass-never-opaque.test.ts (8 pass)
  • python3 scripts/cmux-next/prepush-gate.py (no new violations)
  • scripts/web-lint.sh reaches only four existing TypeScript errors in test/new-tab-composer-layout.test.tsx and test/thread-minimap-stream.test.tsx; no changed file is involved.

Observed / Not run

Observed the selected glass level in local Chromium gallery captures for light and dark Claude and Codex looks over a busy gradient backdrop. No native app build was run; this is a webview-only change and native builds are fleet-only.

No capture: this slice changes only the webview composer CSS and gallery; native cmux capture is not needed to exercise this webview surface, and native builds are fleet-only.

Agent session: cmux16