cmux-next: unfocused panes dim subtly (a theme token) and ease over 150 ms

Merged
TE
16d ago
+64-12

Leo: the opacity drop on unfocused panes is mildly jarring. Keep the effect, much subtler (about 1.0 to 0.9), with a short ease (~150 ms), as a theme token.

Change

  • The veil over an unfocused pane is a theme token, ThemeTokens.inactivePaneDim (0.10, was a hardcoded 0.14 in LayoutStyle), read through Palette.inactivePaneDim. The Debug Settings tunable panes.inactiveDimming still overrides it.
  • The veil eases over its own fade token, MotionFade.paneDim (0.15 s at the default speed, through the feedback motion gate), instead of riding the focus ring's 0.1 s focus fade. The ring keeps its timing.
  • A Ghostty unfocused-split-opacity the person set still replaces the token, as before. Glass is untouched: over a see-through window Palette.paneFill is clear, so the veil adds nothing there.

Changelog

Changed: Unfocused panes in cmux NEXT dim more subtly and ease in and out when focus moves.

Observed / Not run

  • Red then green: SubtlePaneDimTests (commit 1 only adds the test; on base the veil is 0.14 and there is no paneDim fade). Fleet steps pd-red-7698e99f2b and pd-green-24f729a18b were still running at merge; results go in a comment.
  • Observed: fleet compile-check --app passed on the head 30cec505; independent review subagent found the code correct (its blocking findings were stale docs in plans/cmux-next/motion.md and design-tokens.json/.md, fixed in the last commit).
  • Not run: no capture of the new look.
  • The theme token is a fixed value on ThemeTokens (0.10 for every theme), so it is tuned in code or with the Debug Settings tunable panes.inactiveDimming, not by a theme file or user setting.

Agent session: huge-blue

🤖 Generated with Claude Code