Designing a terminal theme for prose is a completely different
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 textSince 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