Most of my time in Claude Code isn't spent reading syntax-highlighted code. It's spent reading tool output, permission prompts, reasoning traces, multi-paragraph explanations. The ANSI slots that matter aren't keyword and string — they're whatever color Claude Code uses for the text you read in bulk, the text that asks you to approve a bash command, the text that explains what just happened.

Existing dark themes are tuned for code editors. They either ignore those slots or map them to colors calibrated for short bursts of syntax, not paragraphs you stare at for hours.

I built klein-blue around the opposite premise: treat Claude Code as a prose reading environment first, with Yves Klein's IKB blue as the anchor color.

The main technical constraint that shaped everything: pure IKB (hex 002FA7) fails APCA contrast as readable text on a dark ground — it lands at Lc -12, which is effectively invisible. So I split it across two ANSI slots. ansi:blue gets pure IKB for decorative use (borders, highlights, visual anchors). ansi:blueBright — which Claude Code uses for permission-prompt text you actually need to read — gets a lifted Klein-family blue, A8BEF0, that clears the body-text contrast gate.