Spend a few hours in Claude Code and you notice something most terminal themes ignore: the screen is mostly prose. Tool output, reasoning traces, permission prompts — paragraphs of English, not syntax-highlighted code. Every theme I tried was tuned for the wrong workload.
So I built klein-void around a different target: comfortable body-size prose legibility over long sessions, anchored to Yves Klein's IKB pigment.
The first problem I hit was that pure IKB is invisible as text on a dark ground. WCAG gives it a passing-ish ratio depending on the tool you use. APCA gives it Lc -12 — effectively zero perceptual contrast. WCAG's ratio formula was derived from light-background use cases and doesn't account for polarity inversion on dark grounds; APCA's Lc metric does, which is why the numbers disagree so sharply here.
The fix was splitting IKB across two ANSI slots. Pure IKB goes into ansi:blue, which Claude Code uses for decorative borders and highlights — elements you perceive as color, not read as text. The ansi:blueBright slot — where Claude Code renders permission-prompt text you actually read — gets a lifted Klein-family blue (APCA Lc in the 90s) that clears the body-text gate.
The theme ships four variations with explicit APCA per-role gates:
body >= 90 Lc
subtle >= 75 Lc
muted >= 45 Lc
accent >= 60 Lc
Klein Void Prot (V3) is the only variation where every accent slot passes strict gates. The other three make deliberate tradeoffs — Refined (V1) balances aesthetic against pure compliance, Sand & Sea (V2) accepts Claude's ansi:redBright brand color as a second hero, Gallery (V4) pushes maximum void at the cost of some accent roles.
One setup note that burned me during testing: Claude Code ignores your Terminal.app ANSI theme unless you set /theme to dark-ansi in the picker. With any other theme selected, Claude Code renders its own hardcoded RGB palette and your ANSI profile is invisible.
Builds from build.m using a variation-aware Objective-C builder, installs via install.sh, rolls back cleanly via restore.sh. CommitMono-Regular on V1/V3, IBM Plex Mono on V2/V4, both copied to ~/Library/Fonts/ on install.
Top comments (0)