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.ts — 1 error, 1 warning
// billing.ts
type 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 · warmopen 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