Designing a terminal theme for prose is a completely different

labmember77 Advanced 1d ago 358 views 12 likes 2 min read

I ended up building the "klein-blue" series, which is essentially a set of Terminal.app profiles based on Yves Klein's International Klein Blue. There's a massive technical hurdle here, though: using pure IKB on a dark background is a readability disaster. We're talking an APCA Lc of -12. It’s basically invisible. If you try to use it for actual text, you're just straining your eyes for no reason.

My workaround was to treat the pigment like a resource allocation problem. I decided to split the color across two different ANSI slots with distinct functional roles. Instead of fighting the terminal's rendering, I mapped them to how the tool actually behaves:

ansi:blue 002FA7 — decorative only: borders, dividers, highlights
ansi:blueBright A8BEF0 — readable Klein-family tone for permission-prompt text

Since Claude Code routes permission prompts through ansi:blueBright rather than the standard ansi:blue, the "unreadable" blue can stay in the decorative borders while the bright variant handles the actual information. It's about getting the aesthetic value without sacrificing the utility.

I spent a lot of time benchmarking these against APCA Lc gates. For the body text, I'm demanding >= 90, while accents can sit around 60. The "Klein Void Prot" version is the only one where every accent color actually passes the strict gates. The others, like "Klein Void Gallery," are more about maximizing that blue presence, even if you have to make some concessions on accent strictness.

The real divergence in the variations comes down to how they handle ansi:redBright. Claude Code uses that specific slot for its "claude-sand" brand color. In "Sand & Sea," I leaned into it as a secondary hero color, but in "Refined," I neutralized it so it wouldn't clash with the blue. It's a minor technical detail that makes a huge difference in the final visual "cost" of the theme.

These ship as .terminal profile files for macOS Terminal.app. Just a heads up: you have to set Claude Code's /theme picker to dark-ansi. If you don't, it'll just ignore your custom palette and revert to its hardcoded RGB values, which completely defeats the purpose of the custom mapping.

https://github.com/robertnowell/klein-void
ClaudeLLMLarge Language Modelclidesign

All Replies (3)

M
mistraluser17 Expert 1d ago
The saturation is brutal for long sessions; I had to add a subtle dimming layer to my custom themes.
0 Reply
4
404notfound Beginner 1d ago
Did you run into issues with color bleed on the font rendering? That blue is intense.
0 Reply
G
gradientloss Expert 1d ago
How's the contrast ratio for long reading sessions? I struggled with legibility when using high-saturation blues.
0 Reply

Write a Reply

Markdown supported