cmux-next: overlays are themed Liquid Glass, and tooltips let more through

Merged
TE
17d ago
+69-32

Overlays that carry text were pinned to the solid popup surface by Leo's 2026-10-12 call: the palette, hover cards, popovers, find and prompt bars, and natively hosted web popups. On 2026-10-18 Leo said tooltips are too opaque, menus warrant themed glass, and he loves Liquid Glass's edge distortion. This PR reverses the 10-12 call.

  • Glass.makeOverlayPanel now follows this Mac's material (OverlayMaterial.select):
    • macOS 26 and later: Liquid Glass (NSGlassEffectView), tinted with the theme's glassTint. Its rim refracts what is under it.
    • Before macOS 26: the frosted vibrancy material.
    • Under Reduce Transparency: the solid popup surface, as before.
  • Overlay tint strength (glass.overlayTintStrength) defaults to 1.25Ɨ the chrome glass tint: dark themes get 0.40 → 0.50, light themes 0.30 → 0.375. Overlays sit over text and need a bit more body than the tab strip.
  • Tooltips: TooltipSurface.minimumTintAlpha goes from 0.86 to 0.6.
    • The existing rule still decides above it: primary text keeps 4.5:1 over the tint laid on pure black and on pure white. That comes to about 0.70 in dark themes and 0.60 in light.
    • desktop.css gets the same fallback; tooltip-surface.test.ts checks the two stay in step.
  • Unchanged: CmuxToastView and ShareCmuxView, which pin .opaque themselves.
  • Not in this PR: in-page web popups such as the composer's model picker paint --surface-popup in CSS. A WKWebView can't blur the native art behind it, so those need the native-glass bridge from the composer work.
  • Tests: PopupSurfaceTests now checks that overlay panels follow this Mac's material, and that Reduce Transparency still gives the solid popup surface.
  • Tour: the glass tour now opens the command palette over the art.

šŸ¤– Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Reverses the 2026-10-12 call that pinned text-carrying overlays to the solid popup surface: they now follow this Mac's material, so macOS 26 gets themed Liquid Glass with its refracting rim, earlier macOS gets the frosted vibrancy material, and Reduce Transparency keeps the solid surface.

  • The overlay tint defaults to 1.25Ɨ the chrome glass tint since overlays sit over text.
  • Tooltips' least tint alpha drops from 0.86 to 0.6; the existing 4.5:1 contrast rule decides above it.
  • Rebuilding the material on a Reduce Transparency switch keeps caller-added views on top and restores a focused field it had dropped.
  • Dialog contrast tests pin Reduce Transparency since they check the solid card; pages get the same fallback in desktop.css, and tests keep the native and web tooltip surfaces in step.
  • Toasts and share sheets stay pinned to the opaque surface, and in-page web popups still need the native-glass bridge.
  • The glass tour now opens the command palette over the art.