All 16 themes
Previewed across a terminal and real code. Filter by mode, tone, or tag; every card's Customize opens it in the Editor.
Amber-paper background that kills screen glare. Code in JetBrains Mono, prose in Source Serif 4. Earthy, low-saturation syntax.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A calm blue-gray that reads like e-ink. Code in IBM Plex Mono, prose in IBM Plex Sans. Cool, restful syntax.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A green-gray neutral with a colorblind-safe blue/orange split. Code in Fira Code, prose in Atkinson Hyperlegible — a typeface designed for low vision.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
The beloved Solarized cream, contrast bumped for readability. Code in Source Code Pro, prose in Newsreader. Full accent wheel, kept earthy.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A soft rose page with magenta and violet accents — pastel but confident. Code in DM Mono, prose in DM Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
Pale aqua that reads like frosted glass, with cyan and coral punctuation. Code in Space Mono, prose in Work Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A crisp mint page with a green-and-blue split for keywords vs. strings. Code in Spline Sans Mono, prose in Spline Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A sunny peach page with a strong burnt-orange keyword. Code in Red Hat Mono, prose in Hanken Grotesk.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
A pale lilac page with indigo and purple leads — dreamy but readable. Code in Roboto Mono, prose in Public Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
The punchiest of the set — near-neutral paper with deep navy and a bold coral function color. Code in Overpass Mono, prose in Lora.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
Almost monochrome — everything lives in grays, and a single blue does all the semantic lifting. Fewer competing hues means fewer color-fringe artifacts for astigmatic eyes. Code in IBM Plex Mono, prose in IBM Plex Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
An evening theme — short-wavelength blue is stripped out and every accent shifted warm, so the only cool note is a soft green. Warm like a tungsten bulb. Code in JetBrains Mono, prose in Source Serif 4.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
Ultra-low chroma, like a Kindle. Syntax is nearly grayscale with just enough tint to tell tokens apart — no glow, no vibration, closest to reading on paper. Code in Fira Code, prose in Atkinson Hyperlegible.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
When sharpness is the limiter, not glare. Near-white paper, near-black ink, and deep, fully-saturated-but-dark accents so every token clears AAA with room to spare. Code in Overpass Mono, prose in Lora.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
Candela's first dark theme — a deep blue-gray night derived from Atom's classic One Dark, the palette a generation of developers grew up on. Accents lifted just enough to clear AA on the dark ground. Code in JetBrains Mono, prose in Public Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)
Near-black charcoal lit by soft candy accents — teal, lilac, and coral glowing against the dark like the northern lights the set is named for. Code in DM Mono, prose in DM Sans.
~/projects/candela on main❯ git statusOn branch main, up to date.Changes not staged for commit:modified: src/theme.rb❯ bundle exec rspec........ (42 examples, 0 failures)❯ ▋
// 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
Candela Light
A low-glare light theme for tired, prescription-wearing eyes.
- Soft, off-white paper background
- Desaturated pastel syntax
Body contrast tuned to ~9:1 — comfortably AAA.
brew install candela
❯ git status --shortM src/billing.ts?? src/invoice.ts❯ git diff@@ -4,4 +4,4 @@ totalDue()- .reduce((sum, i) => sum + i.cents, 0)+ .reduce((s, i) => s + i.cents, 0).toFixed(2)