16 themes · terminals & editors
Light, measured for tired eyes.
candela — the SI unit of luminous intensity
Candela is a set of 16 color themes for terminals and editors, tuned for eye-strain comfort.
For people who like dark mode but can't use it comfortably — prescription lenses, astigmatism, glare sensitivity, plain eye strain. Off-white paper (never pure white), dark-gray ink (never pure black), and desaturated pastel syntax keep the calm feel of a good pastel dark theme — without the glare. 14 light themes and 2 dark companions tuned to the same contrast rules.
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 fixes both with a few hard rules:
- Soft paper, never pure white. Off-white backgrounds kill the glare.
- Dark gray ink, never pure black. Strong contrast (AAA), without the harshness.
- Desaturated accents. Saturated text causes the colored fringing astigmatic eyes see.
- Blue and orange carry the meaning. They stay distinct for almost all types of color blindness.
- Same colors, same meaning, every theme. Switching never makes you relearn what you're looking at.
Every rule is explained, with sources, in the vision research.
How it works
Every palette is authored in one JSON source of truth, then generated into terminal and editor formats — iTerm2, Alacritty, Kitty, WezTerm, Ghostty, VS Code, JetBrains, Zed, Sublime, Neovim, and Helix.
Browse all 16 in the gallery, then fork one or build your own in the Theme Editor.
Install instructions and the full format list live in the README — source on GitHub.
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