DEV Community

J Now
J Now

Posted on

Terminal themes built for prose reading, not syntax highlighting

Claude Code is mostly prose. Tool output, reasoning traces, permission prompts — I read paragraphs of this for hours every day. Most terminal themes are built around syntax highlighting: make keywords pop, dim punctuation, saturate strings. That's optimizing for the wrong thing when your screen is 80% English sentences.

I built klein-blue to fix this for my own setup. Four variations, all built around Yves Klein's IKB pigment, all APCA-verified for body-size prose legibility in the specific ANSI slots Claude Code actually uses.

The interesting constraint: pure IKB fails APCA contrast as text on a dark ground (Lc -12 — effectively invisible). So I split it across two ANSI slots. ansi:blue gets pure IKB for decorative borders and highlights where legibility doesn't matter. ansi:blueBright gets a lifted Klein-family value (A8BEF0) for readable permission-prompt text. You keep the color identity; you can actually read it.

The four variations each answer the same question differently: how should Claude's brand colors live in your terminal? Claude Code uses ansi:redBright for its claude-sand brand color. That's the differentiating moment between the themes:

  • Klein Void Refined — balanced, neutralizes brand competition
  • Klein Void Sand & Sea — accepts claude-sand as a second hero alongside IKB
  • Klein Void Prot — fully APCA-verified across every role (body >= 90, subtle >= 75, muted >= 45, accent >= 60); the only variation where every accent passes strict gates
  • Klein Void Gallery — one-blue maximum void, everything else recedes

One prerequisite that took me a while to document clearly: Claude Code's /theme picker must be set to dark-ansi, otherwise Claude Code ignores the Terminal.app ANSI palette entirely and falls back to its hardcoded RGB values. The theme does nothing without that.

Ships as macOS Terminal.app .terminal profile files. Built from build.m with a variation-aware Objective-C builder, installed via install.sh, fully rollback-able via restore.sh. CommitMono-Regular on V1 and V3, IBM Plex Mono on V2 and V4, both dropped into ~/Library/Fonts/ on install.

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

Top comments (0)