Most of my Claude Code screen is English. Tool output, reasoning traces, permission prompts — I'm reading paragraphs, not scanning syntax. Terminal themes exist to make const and -> pop. That's not the job here.
I spent a few sessions mapping which ANSI slots Claude Code actually hits. ansi:blue for decorative borders, ansi:blueBright for permission-prompt text, ansi:redBright for the claude-sand brand color in UI chrome, ansi:yellow for warnings. The slots matter because Claude Code has two modes: its hardcoded RGB palette (default) and full ANSI passthrough when you set /theme to dark-ansi. In passthrough mode, your terminal theme drives every color decision.
I built klein-blue around Yves Klein's IKB pigment as the anchor color. The first problem: pure IKB on dark ground reads at APCA Lc -12 — effectively invisible as text. The fix was a slot split. IKB lives in ansi:blue as a decorative color (borders, highlights you glance at), while a lifted Klein-family blue goes into ansi:blueBright where permission-prompt text needs to actually be read.
For legibility I used APCA Lc thresholds rather than WCAG 4.5:1, which doesn't model body-size prose well. Per-role gates:
body >= 90
subtle >= 75
muted >= 45
accent >= 60
Four variations ship with different tradeoffs:
Klein Void Refined — balanced, general use
Klein Void Sand & Sea — IKB + claude-sand as two heroes
Klein Void Prot — every slot APCA-verified, strictest gates
Klein Void Gallery — maximum void, one blue, minimal chrome
V3 Prot is the only one where every accent passes strict gates. Sand & Sea accepts ansi:redBright as a warm second hero rather than neutralizing it — the pairing holds at session length even though it competes with IKB.
Ships as macOS Terminal.app .terminal profiles built from build.m, a variation-aware Objective-C builder. install.sh drops profiles and fonts (CommitMono-Regular for V1/V3, IBM Plex Mono for V2/V4) into the right system directories. restore.sh rolls back cleanly.
One hard prerequisite: /theme dark-ansi must be set in Claude Code. Without it, Claude Code ignores the ANSI palette entirely and falls back to hardcoded RGB.
Top comments (0)