DEV Community

J Now
J Now

Posted on

The contrast problem I didn't expect from a terminal I use all day

Six hours into a heavy session, my eyes were done before my work was. The theme wasn't the obvious culprit — it looked fine for code. But I was reading paragraphs, not code. Tool output, permission prompts, reasoning traces: the terminal was 80% English prose, rendered at body size, and my theme had been tuned to differentiate Python keywords.

So I built klein-blue around the APCA contrast metric instead, with per-role gates matched to the specific ANSI slots Claude Code populates. Body text needs Lc ≥90. Subtle text ≥75. Accent slots ≥60. Those thresholds are where contrast stops being academic at body size on dark ground and starts being the reason you can read at hour six.

The anchor color is IKB — Yves Klein's International Klein Blue, hex 002FA7. Pure IKB fails APCA at text size on dark backgrounds (Lc -12, effectively invisible), so I split it across two ANSI slots: pure IKB in ansi:blue for decorative borders and highlights where it never carries prose, and a lifted Klein-family value (A8BEF0) in ansi:blueBright for permission-prompt text you actually have to read.

Four variations ship because there's a genuine design fork in the ansi:redBright slot — the slot Claude Code maps to its claude-sand brand color. Each answers that question differently:

  • Klein Void Refined — sand neutralized, IKB uncontested
  • Klein Void Sand & Sea — sand kept as a second hero alongside IKB
  • Klein Void Prot — every accent passes strict APCA gates, no carve-outs; the only variation where the full spec holds
  • Klein Void Gallery — one blue, near-black for everything else

All four are macOS Terminal.app .terminal profiles. One prerequisite that will burn you if you miss it: Claude Code's /theme picker must be set to dark-ansi. Any other setting and Claude Code ignores the ANSI profile entirely, rendering its own hardcoded RGB values.

git clone https://github.com/robertnowell/klein-void
bash install.sh
# then in Claude Code: /theme -> dark-ansi
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)