claude-code - 💡(How to fix) Fix [BUG] /config Theme picker renders with overlapping text — option labels interleaved with syntax preview and prior transcript [2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#54801Fetched 2026-04-30 06:35:36
View on GitHub
Comments
2
Participants
3
Timeline
5
Reactions
0
Author
Timeline (top)
labeled ×3commented ×2

Opening /config and navigating to the Theme picker renders the picker with corrupted/overlapping text — option labels collide with the live syntax-highlighting preview pane and with previous transcript lines, making the picker hard to read and use.

Root Cause

  • #49848 — User-prompt turn background doesn't adapt to light terminal themes. Same general class of issue (light-mode rendering) but distinct from this picker-corruption bug.
  • #2990 — Automatic light/dark theme selection. Discovered "Auto (match terminal)" option exists in the picker, which addresses #2990; flagging here in case the documentation hasn't been updated.
  • #45084 — Respect terminal color palette in diff output instead of hardcoded truecolor codes. Possibly the same underlying root cause (hard-coded ANSI background colors) for related light-mode bands seen elsewhere.
RAW_BUFFERClick to expand / collapse

Summary

Opening /config and navigating to the Theme picker renders the picker with corrupted/overlapping text — option labels collide with the live syntax-highlighting preview pane and with previous transcript lines, making the picker hard to read and use.

Steps to reproduce

  1. Run claude in any project (TTY).
  2. Type /config.
  3. Arrow down to Theme and press Enter.

Actual behavior

The Theme picker renders with multiple visual defects:

  • Option labels are interleaved with the syntax-preview's function greet() / console.log("Hello, World!") example. For example, lines render as 21. Auto (match terminal)World!"); and 22. Dark modelog("Hello, Claude!"); — the option text and the preview text are overlapping on the same row.
  • The numbered list shows duplicated entries (1, 2, 3, ...5, 6, 7) with item 4 replaced by a horizontal-rule line, and "Light mode (ANSI colors only) ✓" appears as both option 7 and as the "Theme" header confirmation row.
  • An accept edits on mode-banner string appears mid-picker rather than docked to its usual location.
  • A > /config prompt-echo line appears between the option list and the preview pane, suggesting the picker isn't fully clearing the prior transcript region before painting.

(Screenshot to be attached — please drag the image from the bug-report submitter into the issue.)

Expected behavior

The picker should clear/reserve its own region and render the option list and the syntax-preview pane cleanly, without overlap with prior transcript content or with each other.

Environment

  • Claude Code: 2.1.123
  • OS: macOS 15.6.1 (24G90), arm64
  • Terminal: Ghostty 1.3.1
  • TERM=xterm-ghostty, COLORTERM=truecolor

Related issues

  • #49848 — User-prompt turn background doesn't adapt to light terminal themes. Same general class of issue (light-mode rendering) but distinct from this picker-corruption bug.
  • #2990 — Automatic light/dark theme selection. Discovered "Auto (match terminal)" option exists in the picker, which addresses #2990; flagging here in case the documentation hasn't been updated.
  • #45084 — Respect terminal color palette in diff output instead of hardcoded truecolor codes. Possibly the same underlying root cause (hard-coded ANSI background colors) for related light-mode bands seen elsewhere.

Notes

The dark "bands" visible across the transcript (status line, mode banner, divider lines) on light themes appear to use hard-coded background colors that don't invert when the user picks a Light theme. Switching to "Auto (match terminal)" with a light Ghostty theme partially mitigates, but the picker corruption itself is independent of theme choice — it reproduces on Auto, on built-in Light, and on "Light mode (ANSI colors only)".

extent analysis

TL;DR

The Theme picker corruption issue in Claude 2.1.123 can be addressed by refining the rendering logic to properly clear and reserve the picker region, preventing overlap with prior transcript content and the syntax-preview pane.

Guidance

  • Review the rendering logic for the Theme picker to ensure it correctly clears the prior transcript region before painting the picker options and syntax-preview pane.
  • Investigate the use of hard-coded ANSI background colors in the picker and consider adapting to the terminal's color palette to prevent rendering issues.
  • Verify that the COLORTERM=truecolor environment variable is correctly handled in the rendering logic to prevent color-related rendering defects.
  • Consider updating the documentation to reflect the existence of the "Auto (match terminal)" option, which may help mitigate related issues.

Example

No specific code snippet can be provided without further information on the rendering logic, but ensuring proper region clearing and adapting to the terminal's color palette may involve modifying the rendering functions to account for these factors.

Notes

The issue may be related to the hard-coded background colors used in the picker, which do not invert when the user picks a Light theme. The "Auto (match terminal)" option may partially mitigate this issue, but the picker corruption itself is independent of theme choice.

Recommendation

Apply a workaround by using the "Auto (match terminal)" theme option, which may help reduce the occurrence of the corruption issue, while the underlying rendering logic is refined to properly handle region clearing and color adaptation.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The picker should clear/reserve its own region and render the option list and the syntax-preview pane cleanly, without overlap with prior transcript content or with each other.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [BUG] /config Theme picker renders with overlapping text — option labels interleaved with syntax preview and prior transcript [2 comments, 3 participants]