feat(desktop): add polished cmux theme - #49958
Conversation
3123642 to
79c671f
Compare
teknium1
left a comment
There was a problem hiding this comment.
Thanks for the focused desktop-theme contribution. The cmux preset is still absent from current main (apps/desktop/src/themes/presets.ts:280-289), so the feature remains relevant.
Problems
sidebarWorkspaceForegroundis defined and assigned by this PR, but workspace labels still inherit--ui-text-secondary: the sharedrowLabelis defined inapps/desktop/src/app/chat/sidebar/chrome.tsx:31, andapps/desktop/src/app/chat/sidebar/projects/overview-row.tsx:130-136does not override it. The requested blue workspace/profile names will therefore not render.- The new optional-token cleanup in
apps/desktop/src/themes/context.tsxhas no regression coverage.apps/desktop/src/themes/profile-theme.test.tsverifies preference persistence, not CSS-variable cleanup after a theme switch.
Suggested changes
- Route workspace/profile row labels through
--ui-sidebar-workspace-foreground, retaining the existing secondary-text fallback. - Add a jsdom test that verifies optional theme variables are removed when switching from cmux to a theme that omits them.
The PR is currently marked dirty and postdates a desktop TypeScript conversion (39d09453f), so salvaging it will require conflict-aware integration rather than a clean cherry-pick.
Automated hermes-sweeper review.
| // section headers, blue profile/workspace names, dim-white child rows. | ||
| sidebarBackground: '#0d170d', | ||
| sidebarBorder: '#1f2d1f', | ||
| sidebarHeadingForeground: '#ffffff', |
There was a problem hiding this comment.
sidebarWorkspaceForeground is not consumed by the workspace-row path: SidebarRowLink inherits rowLabel from sidebar/chrome.tsx, which remains text-(--ui-text-secondary). Please wire this token into that consumer (with the existing value as fallback), otherwise this cmux color has no visible effect.
Summary
cmuxdesktop theme with black chat surface, terminal-green prose, brighter green emphasis, lavender inline code, dark olive sidebars, and colored statusbar tonesValidation
cd apps/desktop && npx tsc -p . --noEmitcd apps/desktop && npx eslint src/components/chat/shiki-highlighter.tsx src/themes/context.tsx src/themes/presets.ts src/themes/types.ts src/app/chat/sidebar/index.tsx src/app/shell/sidebar-label.tsx src/components/assistant-ui/markdown-text.tsx src/app/chat/sidebar/session-row.tsx src/app/shell/hooks/use-statusbar-items.tsx src/app/shell/statusbar-controls.tsx src/components/Backdrop.tsx(passes; pre-existing warning atsrc/app/chat/sidebar/index.tsx:536)cd apps/desktop && npx vitest run --environment jsdom src/themes/hermes desktop --build-only --force-buildapp.asarand verified cmux/token markers are presentStack note: this is intentionally separate from #49902 (text size + chat width). This PR is only theme/chrome polish.