Light, measured for tired eyes.
14 light and 2 dark themes for terminals and editors, tuned so you can read code all day — without the glare of pure white or the harshness of pure black.
ink : paper ≥ 7:1 (AAA) · every token ≥ 4.5:1 (AA)
never #ffffff · never #000000
// billing.tstype Invoice = { id: string; cents: number }function totalDue(invoices: Invoice[]): number {return invoices.filter((i) => i.cents > 0).reduce((sum, i) => sum + i.cetns, 0) // no 'cetns'}const unused = totalDue([]) // warning: never read
01 · Sepia Paper · warm — open in the gallery
Why most light themes hurt
They're too bright and too saturated. Candela is for people who like dark mode but can't use it comfortably — prescription lenses, astigmatism, glare sensitivity, plain eye strain. A few hard rules fix both:
Every rule is explained, with sources, in the vision research.
- Soft paper, never pure white. Off-white backgrounds kill the glare.
- Dark-gray ink, never pure black. AAA contrast without the harshness.
- Desaturated accents. Saturated text is what makes astigmatic eyes see colored fringes.
- Blue and orange carry the meaning. They stay distinct for almost every kind of color blindness.
- Same colors, same meaning, every theme. Switching never makes you relearn the screen.
All 16 themes
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
def total(cents) = cents / 100.0
Every palette is authored in one JSON source and generated for iTerm2, Alacritty, Kitty, WezTerm, Ghostty, VS Code, JetBrains, Zed, Sublime, Neovim, and Helix. Fork one or build your own in the Theme Editor, or grab install instructions from the README on GitHub.