cmux NEXT: use plain icons in the chat header

Merged
TE
11d ago
+119-7

The chat header’s tools are now plain icons. Open panels use the text tint and filled glyph; hover and open menus change the tint without drawing a box.

Leo, 2026-10-25: "why do the icons have their own background border situation instead of just being, you know, good"

The agent chat's top-right tools (the Session Info toggle, Terminal, Browser, Chat actions "…", and every other .acpmux-header-tool) drew a rounded tinted box. The fill was 11% while a panel was open, 8% on hover or with the menu open, and 14% when hovered while pressed. The tools are now plain glyphs:

  • At rest they use --agent-muted. On hover, while their menu is open and while their panel is open they take --agent-text. No state draws a fill, border or shadow.
  • The open Session Info toggle still draws its filled (Solid) glyph. aria-pressed, the :focus-visible ring and the 24px hit square haven't changed.
  • Disabled tools use --agent-soft so they stay apart from the muted rest. The Needs you count keeps the text ink.
  • The rules are scoped to the chat header's row (.acpmux-header-tools). Start Agent's floating chat borrows the same button class and keeps its old tint and ink in rules scoped to its header and bar.

The owner is the webview header (webviews/src/agent-session/acpmux/header/header.css), not the native pane chrome from #25126, which this PR doesn't touch. No native code changed.

Evidence

  • 8f85dc7198d adds the failing regression first:
    • webviews/test/chat-header-plain-icons.test.ts: no header-tool rule sets a fill, border or shadow; the pressed ink is the text over a muted rest; focus keeps its ring.
    • Gallery agent-pane.header-tools#plain-icons: in Chromium, with the panel and Terminal's split open, Terminal hovered and the chat menu open, it checks every tool's computed background, border and shadow, and that the open toggle's ink differs from Browser's at rest.
  • cd7ee20c838 is the CSS fix.
  • Red/green runs and gallery captures: .

Before / after

<gallery-compare stills for agent-pane.header-tools#panel-open and #panels-open, light and dark>

Risk: normal. CSS only, in one header stylesheet and one badge rule.

Independent review: Codex gpt-6-astra at xhigh in acpmux nx-pane-toolbar-icons-astra-review: SHIP at cd7ee20c8380e360577c65ad1cbc2c68abf36775. Managed validation and gallery captures are pending.

Gallery: agent-pane.header-tools/panel-open, agent-pane.header-tools/panels-open, agent-pane.header-tools/plain-icons

Changelog

Fixed: Chat-header tools use plain icons with selected tint instead of boxed backgrounds.

Agent session: big-red


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