[FEATURE] Accessibility: dark theme's near-black/white pairing (#0b0b0b / #f0efec) causes visible saccadic artifacts — add a contrast preference
Preflight Checklist
- [x] I have searched existing requests and this hasn't been requested yet (closest is #53154, closed not-planned; this report adds an accessibility rationale and concrete measurements)
- [x] This is a single feature request
Problem Statement
The redesigned dark theme (1.30096.x design system) renders the chat surface at near-maximal contrast: background --cds-surface-0 → --cds-gray-900 = #0b0b0b with primary text --cds-gray-50 = #f0efec — roughly 17:1. The previous desktop dark theme used a #262624 background, a materially lighter ground.
This is an accessibility problem, not just an aesthetic one. For a subset of users, high-luminance text on a near-black field produces visible saccadic artifacts — bright glyph edges leave afterimage streaks strong enough to defeat saccadic masking, so users literally perceive their own eye movements while reading, plus shimmer/flicker in peripheral vision while text streams or scrolls. This is a well-known complaint class with maximum-contrast dark modes (it does not require astigmatism, though astigmatic halation makes it worse). WCAG sets contrast minimums because low contrast harms most users, but maximum contrast is not universally better: visual-stress-affected users specifically need moderated contrast. This is why virtually every developer-facing dark theme ecosystem (VS Code, JetBrains, terminal palettes) ships "soft dark" variants with dark-gray grounds and slightly dimmed foregrounds rather than white-on-black.
Today the app exposes exactly three appearance values (light / dark / system) and no way to moderate the pairing.
Proposed Solution
Any one of these would resolve it (in descending order of preference):
- An appearance preference for contrast level — e.g. a "soft dark" variant that keeps the new design system but maps the chat ground to a lighter dark (the previous
#262624-class charcoal) and/or primary text to an off-white a step or two down the ramp. - A user-adjustable palette override for the chat surface (even just background + primary text).
- Restoring the previous dark ground as the default.
Related (not the ask here, just context): appearance customization generally — e.g. font family/size selection for the chat surface — is similarly absent; a VS Code-style appearance settings section would cover both.
Environment
- Claude Code Desktop 1.30096.5, Windows 11
- Also reproduces conceptually on any platform running the 1.30096.x design system (values above read from the shipped stylesheet)