DEV Community

J Now
J Now

Posted on

Klein Blue looked right in Figma. On a dark terminal, it vanished.

Yves Klein's IKB — hex 002FA7 — has an APCA lightness contrast of Lc -12 on a dark background. That's not low contrast. That's below the threshold where the human visual system registers a meaningful edge at all. Paste it as text on dark ground and you get something that looks like a shadow of a letter rather than a letter.

I ran into this building klein-void, a set of terminal themes for Claude Code tuned for prose legibility. Claude Code's output is mostly English — tool output, reasoning traces, permission prompts — not syntax-highlighted code. Most terminal themes ignore that; they're tuned for const and bracket matching. I wanted something optimized for hours of paragraph reading, anchored to Klein's pigment because that blue is genuinely irreplaceable.

The constraint was real: you can't just swap in a lighter blue and call it IKB. The whole point of the pigment is the specific depth of that particular 002FA7. Lightening it to pass contrast gates produces something that reads as cornflower or periwinkle — similar family, different object.

The fix was a two-slot split. Claude Code maps its decorative borders and highlights to ansi:blue. It maps its permission-prompt text — the prose you actually read and respond to — to ansi:blueBright. Those are separate ANSI slots. So: pure IKB (002FA7) lives in ansi:blue, where it renders as a deep decorative border that you look at rather than read. A lifted Klein-family blue (A8BEF0) lives in ansi:blueBright, where APCA scores it readable at body size.

The four variations in klein-void each handle the trade-off differently. Klein Void Prot is the strict version — every accent slot passes APCA gates (body >= 90, subtle >= 75, muted >= 45, accent >= 60). Klein Void Gallery goes the other way: maximum void, one blue, decorative IKB everywhere the theme can plausibly use it, at the cost of some strict-gate compliance on accent roles.

All four ship as .terminal profile files for macOS Terminal.app, built from a variation-aware Objective-C builder, installable via install.sh with a working restore.sh if you want out. One prerequisite worth noting: Claude Code must have /theme set to dark-ansi, otherwise it ignores the ANSI palette entirely and falls back to hardcoded RGB values.

https://github.com/robertnowell/klein-void

Top comments (0)