Composer: Send, Stop and steer are plain glyphs, no discs
Leo saw Send, Stop and the queue's Send drawn as filled circles in the composer ("WHAT IS THIS STYLING? WHY ARE THERE CIRCLES. Use plain glyphs like the mic ... Match Claude Code desktop. A hover state is fine, but no solid discs.").
Now every one of them is a plain glyph, as the mic is:
- Send (chat composer, shell mode, the queue's Send while a turn runs, the New Tab page): the up arrow alone in the text color, dimmed to 45% of the text while there is nothing to send or Send is off. Same 1.25 stroke as the mic; on New Tab, the mic's 18 px size.
- ↵ (steer now) mid-turn: the return glyph alone, in the text color.
- Stop: an outline square, in the text color, with no disc. The Esc-armed state (first Esc of the double press) keeps the glyph and its 28 px footprint and turns the theme's accent; it no longer widens into an "Esc" pill. Its name and the placeholder still say "Press Esc again to stop".
- Hover and keyboard focus show the mic's soft pill (
--acpmux-row-hover); a press adds nothing. No ring is added here (the focus-ring lane owns:focus-visibleoutlines). --acpmux-send-fill,--acpmux-send-inkand--acpmux-send-off-bgare removed; nothing else read them.
Not in this PR (follow-up): Leo's second note, that a one-line prompt's text sits lower than + and the mic/Send. The regression for it is written and is red on base (New Tab: mic and Send 40 px off the text's line in the Cards layout); it goes into the follow-up with its fix.
Surfaces checked: chat composer (Composer.tsx), New Tab (newtab/NewTabScreen.tsx, and the classic NewTabPage.tsx which shares .acpmux-send), Quick Composer and Home/Chief dock (both render Composer). ComposerQueue.tsx draws no disc (its row actions are 22 px plain icons), so it is untouched. Home channels' own hc-send (pages/home-channels) is a separate composer with a filled ready square; not changed here.
Changelog
- Fixed: the composer's Send, Stop and steer buttons are plain glyphs like the mic, with a soft hover pill, instead of filled circles.
Regression
bun test src/agent-session/acpmux/sendOffLook.test.ts and CMUX_BROWSER_TESTS=1 bun test test/composer-plain-glyphs.test.ts (huge-blue, Chromium and WebKit):
- base (66edfc5, test commit): sendOffLook 0 pass / 3 fail (".acpmux-send.acpmux-send-ready:active" fills, "--acpmux-send-fill" defined, ...); composer-plain-glyphs fails in both engines ("the armed Stop is filled rgb(205, 214, 244)", "widens 28 -> 36.7", "New Tab Send is filled rgb(205, 214, 244)", "glyph is 16x16, the mic's 18").
- head: see the comment below once the run finishes.
Observed / Not run
- Observed: the red run above on huge-blue at the test commit.
- Updated
test/composer-row-layout.test.ts: Stop's check now asserts no fill and the text color (was "solid, theme-inverted disc"). - Not run locally: no browser or vitest runs on cosmic-gray (load);
bun run checkruns on huge-blue.
No capture: webview-only change; gallery compare URL in a comment below (new state agent-pane.composer / working-escape-armed).
Agent session: cosmic-gray
🤖 Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Replaces the composer's filled-circle controls — Send, Stop, and the mid-turn ↵ — with plain outline glyphs in the secondary text color (--agent-muted, the mic's token), matching the mic's stroke and size.
- Send dims to 45% of the text color while there is nothing to send and takes the secondary color with a draft; hover and keyboard focus show the mic's soft pill, and a press adds nothing.
- The Esc-armed Stop keeps its glyph and 28 px footprint and takes the theme's accent instead of widening into an "Esc" pill; the unused
composer.escapeKeylabel and its catalog entry are gone. - Removed
--acpmux-send-fill,--acpmux-send-ink, and--acpmux-send-off-bg.
Tests
- Unit tests assert no rule fills the controls and their color is the secondary token, the off dim, or the armed Stop's accent; the row-layout test asserts Stop's ink matches the mic's secondary token.
- Browser tests measure the glyph across the chat, New Tab, queue, and mid-turn states in Chromium and WebKit.
Follow-up: a one-line prompt's text sitting lower than +, the mic, and Send is not in this PR; the regression for it lands with its fix.