Sidebar: hover card tab paths read in dark themes

Merged
TE
5d ago
+175-1

Summary

In a dark theme, the path under each tab in the workspace hover card's tab list (landed in #28897, carrying #28139) drew in the tertiary text token (#808080) and read as washed-out grey on the glass. The review of #24785's dark capture said: "the dark inner-tab hover card's titles and paths are washed-out grey on the glass". The paths now use the theme's secondary text token, the same token the card's facts already use. Tab names stay primary (they already matched the card's title). This is a one-line color change in WorkspaceTabHoverCardRow.applyColors.

Spec: design/sidebar.md (hover card); plans/cmux-next/sidebar-owner.md has a new entry. Risk: low; it changes only the path label's color, and in light themes the paths get slightly darker.

Testing

WorkspaceTabHoverCardContrastTests (new) pins the tokens and the rendered ink in a dark theme. Command: cmux-ci run --class light --script scripts/ci/package-test-lane.sh --arg=suite --arg=Packages/macOS/CmuxNext --arg=WorkspaceTabHoverCardContrastTests --env CMUX_TEST_REQUIRE_GUI=1 --label gui-session-v1.

  • Red on base content at dbbd7d39f7 (test only, fleet step bee3e163): the path token is #808080 instead of #A1A1A1, and the path's brightest pixel is 0.289 against a floor of 0.323 (0.45× the card title's 0.717).
  • Green with the fix at a3b9317526: WorkspaceTabHoverCardContrastTests, WorkspaceTabHoverCardTests, HoverCardSharedRowsTests and SidebarTabMappingTests all pass (fleet step aae4bb75).

Observed / Not run

Observed: the red and green fleet runs above on a display worker, plus real hover captures at both commits. Not run: the full CmuxNext suite.

Changelog

Fixed: Tab paths in the workspace hover card are readable in dark themes.

Proof

Real hover captures via cmux-ci capture --display-scale 2 (fleet build, capture mini, tour workspace-hover-tabs-card): a workspace with three shells in /tmp, the pointer on its sidebar row, and the card shown beside it. The data is synthetic; each tab title repeats its path because they are plain shells. Cropped to the card with the hovered row.

LightDark
Before (dbbd7d39f7)before lightbefore dark
After (a3b9317526)after lightafter dark

Viewed after image: yes
Visual verdict: Ship, because in the dark after still the tab paths now read clearly in secondary grey under bright tab names on the glass while the light card is unchanged in character, with no repeated per-row controls and a card that fits beside the sidebar, so it sits fine next to ChatGPT or Claude.

Agent session: agent session