Custom themes: userMessageBackground is a shared token (also paints the conversation selector and Plugin/Skill/MCP badges) — please add dedicated tokens

Status Closed — not planned
Reported on v2.1.187
Maintainer reply None cached
Activity 1 comment · opened Jul 13, 2026 · closed Sep 2, 2026

Version: 2.1.187

What I'm trying to do: Use a custom theme (~/.claude/themes/*.json) to give my own messages a distinct background color so they're easy to find while scrolling.

Problem: The userMessageBackground token isn't specific to user messages. Tracing the rendering, the same token is used for at least three things:

  1. User message boxes in the transcript.
  2. The Plugin / Skill / MCP badges.
  3. Selectable/hovered rows in list views — including the conversation/session selector (the component toggles userMessageBackgroundHover ↔ userMessageBackground).

So overriding userMessageBackground to make my messages stand out unavoidably recolors the conversation selector and those badges too. There's no way to decouple them from a theme file.

Requests:

  1. Split these into separate tokens (e.g. keep userMessageBackground only for the message box; add a dedicated token like selectedRowBackground for list selection/hover, and one for the badges), so they can be themed independently.
  2. Related: there's no user-message text color token — message text uses the global text token. A userMessageText token would allow readable contrast against custom backgrounds (e.g. black text on a light/yellow message background), which currently isn't possible without recoloring all UI text.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗