Sepia Paper

tonewarmCustomize

Amber-paper background that kills screen glare. Code in JetBrains Mono, prose in Source Serif 4. Earthy, low-saturation syntax.

bg #f2ecdfsurface #fbf7eeborder #e3dac6ink #322f28ink2 #5f584bfaint #716955selection #e6dcc0cursor #322f28lineHighlight #f6f0e4kw #9a5b2cstr #5a6b39fn #30577dnum #6d5e1atype #7b5595builtin #2c7567punct #6e685cerror #853e33warning #795b2fok #2d7557
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Slate Mist

tonecoolCustomize

A calm blue-gray that reads like e-ink. Code in IBM Plex Mono, prose in IBM Plex Sans. Cool, restful syntax.

bg #e8edf3surface #f6f8fbborder #d5dde7ink #29323dink2 #54606dfaint #5f6b78selection #d3deeccursor #29323dlineHighlight #eef2f7kw #7159a0str #41745afn #2d6a8fnum #9c5365type #995a2bbuiltin #297284punct #5f6a7aerror #824035warning #785b31ok #307458
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Sage

toneneutralCustomize

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.

bg #edf1e9surface #f6f9f2border #d9dfd0ink #2c322aink2 #565d51faint #656e5cselection #dde6cfcursor #2c322alineHighlight #f0f4eakw #a2582bstr #3f6d93fn #2d7766num #85662dtype #6b5aa0builtin #a15466punct #686d60error #854137warning #775e31ok #317477
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Solarized Lite

heritagewarmCustomize

The beloved Solarized cream, contrast bumped for readability. Code in Source Code Pro, prose in Newsreader. Full accent wheel, kept earthy.

bg #f6efd8surface #fbf6e6border #e6dcc0ink #33362cink2 #5c5f52faint #706b54selection #e9dfbfcursor #33362clineHighlight #f1e9cdkw #b7420fstr #5f7300fn #1f6fa8num #b02a68type #5257a8builtin #1a776fpunct #6a6d5cerror #874022warning #805b20ok #237754
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Blossom

tonepastel-warmCustomize

A soft rose page with magenta and violet accents — pastel but confident. Code in DM Mono, prose in DM Sans.

bg #fbeef2surface #fef7f9border #f0d8e0ink #3a2f36ink2 #6b5a63faint #896173selection #f4dce6cursor #3a2f36lineHighlight #fbeaf0kw #c0397astr #7a5aa8fn #2a4e76num #b24e32type #a03e86builtin #297774punct #786871error #864331warning #7e5d2dok #2b7673
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Lagoon

tonecoolCustomize

Pale aqua that reads like frosted glass, with cyan and coral punctuation. Code in Space Mono, prose in Work Sans.

bg #e5f1f2surface #f4fafbborder #cfe2e4ink #24333aink2 #4f6169faint #566f75selection #d0e6e8cursor #24333alineHighlight #ecf5f6kw #0e748fstr #37774efn #29629bnum #b34843type #7a5aa8builtin #9a5c29punct #5c6d76error #8e3a2dwarning #7e5b28ok #267755
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Meadow

tonefreshCustomize

A crisp mint page with a green-and-blue split for keywords vs. strings. Code in Spline Sans Mono, prose in Spline Sans.

bg #ecf3e4surface #f6faf0border #d7e4c8ink #2c342aink2 #556150faint #627055selection #dcecc9cursor #2c342alineHighlight #f0f6e9kw #417929str #3c6f9ffn #297962num #966025type #8a5aa0builtin #b0503fpunct #646f5derror #8a3f32warning #7d5d2eok #2c7858
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Apricot

tonewarmCustomize

A sunny peach page with a strong burnt-orange keyword. Code in Red Hat Mono, prose in Hanken Grotesk.

bg #fdeedesurface #fff8f0border #f2ddc6ink #3a3128ink2 #6b5c4cfaint #836647selection #f7ddc4cursor #3a3128lineHighlight #fceadbkw #ac521dstr #67712cfn #365f8fnum #b03e6atype #7a5aa8builtin #29776fpunct #796958error #8c3d31warning #7d5d2cok #2a7858
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Periwinkle

tonepastel-coolCustomize

A pale lilac page with indigo and purple leads — dreamy but readable. Code in Roboto Mono, prose in Public Sans.

bg #eeeefbsurface #f8f8feborder #dcdcf0ink #2e2f3dink2 #585a6dfaint #656892selection #dedef3cursor #2e2f3dlineHighlight #eaeaf8kw #5a4fc0str #3c6f97fn #7a3fb0num #b34467type #287673builtin #9a5c29punct #686a7eerror #8b3d30warning #7d5c2cok #297572
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Ink & Coral

tonehigh-contrastCustomize

The punchiest of the set — near-neutral paper with deep navy and a bold coral function color. Code in Overpass Mono, prose in Lora.

bg #eef0f0surface #f8fafaborder #d8dedeink #222831ink2 #4c545dfaint #636d74selection #dbe3e3cursor #222831lineHighlight #e9ededkw #16467astr #2d7857fn #b0402fnum #a3581etype #6b3fa0builtin #0e7683punct #5c666eerror #963425warning #815b20ok #237855
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

E-Ink Slate

experimentneutral / ultra-low chromaCustomize

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.

bg #eceeecsurface #f6f7f5border #d9dbd8ink #26292aink2 #4e5253faint #676b6cselection #dcdedbcursor #26292alineHighlight #e8eae8kw #3d4d4astr #4a5a4afn #3d4a5anum #5a4d45type #4d445abuiltin #455a55punct #676b6cerror #644f4cwarning #6a5f50ok #576e65
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Graphite Mono

experimentmonochrome+1Customize

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.

bg #eef0f1surface #f8f9faborder #dcdfe1ink #23272bink2 #4b5157faint #666c72selection #dde1e4cursor #23272blineHighlight #e9eceekw #2f4a63str #3a6ea5fn #3a4650num #55606atype #2f3a44builtin #3a6ea5punct #666c73error #864137warning #73602fok #357376
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Azure Mono

experimentdark / monochrome+1Customize

Amber Mono's cool twin, and the closer translation of Graphite Mono — cool grays with a single azure carrying every syntax role. Code in IBM Plex Mono, prose in IBM Plex Sans.

bg #181a1csurface #202224border #424547ink #d6dadeink2 #8e9296faint #8b8f93selection #353a3ecursor #e8b45clineHighlight #1e2022kw #78b4e8str #a8d0eefn #b0b6bbnum #a0a6abtype #c4cacfbuiltin #78b4e8punct #d6dadeerror #d8806fwarning #cbb26cok #8ac4b0
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Hearth Dawn

experimentwarm / low-blueCustomize

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.

bg #f4ecd9surface #faf3e1border #e6d9bdink #34302aink2 #5f5749faint #746851selection #ecdfbfcursor #34302alineHighlight #f0e8d1kw #a5531estr #656f2bfn #84651enum #a0532ftype #8a5a3cbuiltin #4b734epunct #6e6552error #7c452bwarning #7b5a2aok #297555
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Hearth Dusk

experimentdark / warm low-blueCustomize

An evening theme for the dark half — short-wavelength blue stripped out of every accent, leaving amber, clay and one soft green on a lit-room ground. The dark half of the Hearth pair. Code in JetBrains Mono, prose in Source Serif 4.

bg #241c17surface #2c231cborder #4e3f31ink #e8d6bcink2 #a89279faint #a08b70selection #453527cursor #f0a13clineHighlight #2e241ckw #f0a05astr #c6c05efn #e8c88cnum #dd7f5etype #cf9a86builtin #a8c47apunct #e8d6bcerror #f2705fwarning #dbae4aok #8ac9a0
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Arclight Dawn

experimentacuity-first / high-contrastCustomize

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.

bg #f3f4f5surface #fcfcfdborder #d5d8dbink #191c20ink2 #3f454bfaint #686f75selection #dde1e4cursor #191c20lineHighlight #eaeceekw #7a1f4dstr #1f6b3afn #0c2650num #8a5112type #5a2f8abuiltin #0f5f6bpunct #565d64error #9a3627warning #7b661eok #247b57
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Arclight Dusk

experimentdark / acuity-firstCustomize

For dark eyes where sharpness is the limiter, not glare — a near-black ground under accents pushed past AA toward AAA, so every token reads at a glance. The dark half of the Arclight pair. Code in Overpass Mono, prose in Lora.

bg #0e0f11surface #171a1dborder #3d4349ink #eef1f4ink2 #a7b0b8faint #9aa3abselection #33414fcursor #eef1f4lineHighlight #16191ckw #ffb0d8str #8ce8a8fn #8fc0ffnum #ffc07atype #d2b0ffbuiltin #7fe0e8punct #eef1f4error #f2857ewarning #f2d05aok #6fe0c0
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Nocturne

heritagedark / coolCustomize

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.

bg #282c34surface #2d3139border #737c8cink #b9c0cbink2 #737c8cfaint #8c94a1selection #3d4351cursor #ffcc00lineHighlight #373c44kw #ff946bstr #26ab60fn #5c91ffnum #fd5975type #a180febuiltin #57a9dbpunct #b9c0cberror #ff6682warning #f9c858ok #3fc5b3
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Borealis

tonedark / pastelCustomize

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.

bg #212121surface #2b2c2cborder #3d4042ink #bfd3deink2 #7e8990faint #80898eselection #3a5d73cursor #fa6300lineHighlight #313435kw #ffcb61str #c3e98bfn #85dcffnum #ff526ftype #c78eecbuiltin #7dc9c2punct #bfd3deerror #ff5f52warning #f2a63cok #c3e98b
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Nightshade

heritagedark / purpleCustomize

Violet and orchid over a blue-black ground, in the lineage of Dracula — the same purple night, desaturated until the accents stop fringing. Code in Fira Code, prose in Hanken Grotesk.

bg #282a36surface #2f3140border #4d5164ink #cfd0e4ink2 #7f85a3faint #8b90adselection #454a63cursor #ffb454lineHighlight #34364akw #e78ac0str #cfd48afn #6ec48cnum #b49bf2type #79c3e3builtin #f0a06apunct #cfd0e4error #ff6b7dwarning #f0c05cok #4cc7a8
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Blue Hour

heritagedark / indigoCustomize

The deep indigo of the hour after sunset, following Tokyo Night's low-chroma dusk — quiet accents that never shout across the page. Code in IBM Plex Mono, prose in IBM Plex Sans.

bg #1a1b26surface #20222fborder #3b4261ink #c3cbe8ink2 #7d87adfaint #8890b4selection #33395acursor #ff9e64lineHighlight #24263akw #bda6f0str #a4c98cfn #7fa0f0num #f0a878type #7fd3d8builtin #dcc471punct #c3cbe8error #ef6a83warning #e8b25fok #6fd0bb
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Ember

heritagedark / warm retroCustomize

Amber and clay on warm brown-black, carrying Gruvbox's retro heat — the one dark theme here that feels lit rather than cooled. Code in Source Code Pro, prose in Newsreader.

bg #292421surface #322b27border #574f45ink #e4d5b6ink2 #a2937cfaint #a1907aselection #4a3f34cursor #f08a3clineHighlight #332c27kw #ef8a72str #b6c56bfn #93b3d0num #d99bb0type #f0c05fbuiltin #7cc3b4punct #e4d5b6error #f4705ewarning #e8a33eok #7ec8a8
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Moss & Magenta

heritagedark / vividCustomize

Lime green against magenta on olive-black, the Monokai contrast pairing pulled back from neon to something you can read all day. Code in Space Mono, prose in Work Sans.

bg #262720surface #2e2f27border #565749ink #e0e0d4ink2 #97988afaint #9d9e8fselection #46483acursor #f08a2elineHighlight #2f3128kw #f0709estr #d9d087fn #a9d364num #b79ef0type #79cbe0builtin #f0a352punct #e0e0d4error #ff6a70warning #e9bc4cok #5fc9a5
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Amber Mono

experimentdark / monochrome+1Customize

Almost monochrome — everything lives in warm grays and a single amber does all the semantic lifting, like a filament terminal. The warm dark reading of Graphite Mono's near-monochrome idea; Azure Mono is the closer one. Code in IBM Plex Mono, prose in IBM Plex Sans.

bg #1b1917surface #232120border #454240ink #dcd8d3ink2 #948f89faint #918c86selection #3a3633cursor #f0a83clineHighlight #211f1dkw #e8a94estr #f0c987fn #b8b2abnum #a8a29btype #c8c2babuiltin #e8a94epunct #dcd8d3error #d1786awarning #c9b06aok #8dc4b0
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Harbor Dawn

tonewarm / gold-ledCustomize

First light on a harbor — gold arriving over a page that has barely any color yet, the night still in the deep blue ink. Code in Spline Sans Mono, prose in Work Sans.

bg #fcf8f1surface #fefcf9border #ebdbccink #17364fink2 #44647efaint #7e614eselection #f7deb2cursor #915e12lineHighlight #fbf3e5kw #915e12fn #18678bstr #416728num #a3334ftype #73469bbuiltin #1d726fpunct #5a6d7cerror #9a261dwarning #7d6908ok #1c785e
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)

Harbor Dusk

tonedark / warm-blueCustomize

Last light on a harbor — a dark sunset orange over deep watery blue, the dusk half of the Harbor pair. Code in Spline Sans Mono, prose in Work Sans.

bg #132939surface #1d3749border #4f7087ink #dee7edink2 #95a6b2faint #9fb0bcselection #573729cursor #f3a068lineHighlight #1b3141kw #f3a068fn #74c2e7str #92ce8dnum #ec93b0type #c5a5e9builtin #6ecfc2punct #b4c4cferror #f57466warning #e9c267ok #71d6b9
zsh — candela
~/projects/candela on main
git status
On branch main, up to date.
Changes not staged for commit:
modified: src/theme.rb
bundle exec rspec
........ (42 examples, 0 failures)
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
README.md — preview

Candela

A low-glare theme for tired, prescription-wearing eyes.

Body contrast tuned to ~9:1 — comfortably AAA.

brew install candela

git — billing.ts
git status --short
M 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)