A sage-green theme family for terminals

Calm green.
Honest color.

Celadon keeps the field quiet — low-saturation sage, dark or light — while the accents stay true to their ANSI meaning. Diffs, test output, and prompts read the way they should, and syntax never outranks your content.

Celadon crackle-glaze tile
ghostty — ~/dev/celadon — theme = celadon
~/dev/celadon  main py 3.12
git diff generator/gates.py
@@ -41,7 +41,7 @@ def check(palette):
- assert apca(fg, bg) > 60
+ assert apca(fg, bg) >= 75 # Lc 75 for body text
pytest -q
.......... [100%]
10 passed in 0.42s

Red is red, green is green — every accent honest to its ANSI slot. Switch the variant above; the whole page follows.

One family, four grades

Light to dark: sky → powder → celadon → jade. Same content, same honest accents — pick the contrast your room needs.

Generated, not hand-tuned

Every hex in the repo is build output: a small set of OKLCH parameters and rules, gamut-fitted to sRGB. CI re-runs the gates and regenerates every port on each change, so committed files can never drift from the generator.

Read the generator source →
L*
OKLCH parameters in, sRGB out. Accents sit in one tight loudness band, so syntax never shouts.
Hard gates, every build. APCA text and accent contrast, plus pairwise accent distinctness — a palette that fails doesn't ship.
Audited for color vision. A CVD audit runs on top of the gates, for every variant.