lyingterminals.com
Date:
—
From:
Your terminal <tty@localhost>
To:
You
Subject:
Re: your colour scheme

Is your terminal theme lying to you?

Every terminal theme ships 16 ANSI colours and absolutely no rules. "Bright" is a suggestion. Bright black, the colour most apps use for secondary text, is often a rumour. Pick a theme and we'll run real WCAG 2 contrast maths on it (4.5:1 for text, 3:1 for UI), and then we'll be honest about it.

I. Pick a defendant
Fig. 1. Choose a theme and the whole page changes into it. Or paste your own from Ghostty or kitty.
II. The evidence

Every colour, measured against its own background.

Each tile shows a colour as text on your background, the way your terminal actually renders it. The number is its WCAG contrast ratio. Bright colours are checked against their normal twins.

≥ 4.5 readable textUI 3–4.5 borders onlyGHOST < 3 fails everything↓ dimmer bright, but less contrast= same identical hex
—
III. The verdict
    IV. Exhibit A

    A verdict card, drawn in your own theme.

    It's 1200 × 630, sized for link previews, and rendered pixel by pixel in your palette, including the bright black you insisted on.

    V. Appendix: how to respect a user's colour choice
    1. i.Just use the user's 16 ANSI colours.🧠
    2. ii.Convert them to OKLCH, so "lighter" means lighter to an actual human eye.🧠
    3. iii.Nudge them in OKHSL, cap the chroma and apply a bell-shaped saturation falloff, because Catppuccin's pale pink #f4b8e4 came out hot pink #eb76d1 "at the same saturation". It was fixed to #cc92bd.🧠
    4. iv.Have a coding agent fit a fifth-degree polynomial to the contrast algorithm, ship only the coefficients, and call it "respecting user choice."contrast(L) ≈ c₀ + c₁L + c₂L² + c₃L³ + c₄L⁴ + c₅L⁵🧠

    A note on the colours: this page is wearing your theme, but it doesn't take it on trust. Like Pi, it moves each accent in OKLCH until its own text clears 4.5:1. The tiles above are left exactly as your theme defines them.