DEV Community

J Now
J Now

Posted on

Terminal themes optimize for syntax highlighting; that's the wrong target

Spend a few hours in Claude Code and count what you actually read: tool output, reasoning traces, permission prompts, explanations. Maybe 20% is code. The rest is English at body size, continuous, for hours. Standard terminal themes are built around syntax highlighting — they're solving a different problem.

klein-blue is four Terminal.app themes built around Yves Klein's IKB pigment, tuned specifically for the ANSI slots Claude Code assigns to prose-heavy output. The APCA contrast gates are set per role: body text ≥ Lc 90, subtle text ≥ 75, muted ≥ 45. Those aren't aesthetic choices — Lc 90 is roughly where body-size text stops being fatiguing over a long session.

The IKB detail worth knowing: pure Klein blue (hex 002FA7) fails as text on dark ground at APCA Lc -12 — effectively invisible. The themes split it across two ANSI slots: pure IKB in ansi:blue for decorative borders and highlights where legibility isn't the requirement, and a lifted Klein-family blue (A8BEF0) in ansi:blueBright for permission-prompt text that actually needs to be read. Keeping IKB somewhere in the palette was the constraint the whole thing was built around.

The four variations differ mainly in how they handle ansi:redBright — the slot Claude Code uses for its claude-sand brand color. Two variations neutralize it to avoid competing with Klein blue as a second hero; two accept it and build a two-color palette around the tension.

git clone https://github.com/robertnowell/klein-void
cd klein-void && ./install.sh
Enter fullscreen mode Exit fullscreen mode

After install, set Claude Code's /theme to dark-ansi — without that, Claude Code ignores the ANSI profile entirely and falls back to its hardcoded RGB palette.

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

Top comments (0)