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 #5e574afaint #68604cselection #e6dcc0cursor #322f28lineHighlight #f6f0e4kw #8f5121str #475826fn #30577dnum #64550dtype #775291builtin #216c5epunct #5e584derror #80392fwarning #795b2fok #236d4f
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 #4f5a67faint #576370selection #d3deeccursor #29323dlineHighlight #eef2f7kw #6c549bstr #386b51fn #1c5b7fnum #934b5dtype #8c4e1ebuiltin #1f6a7cpunct #4f5a6aerror #7d3c31warning #785b31ok #286d51
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 #5f6856selection #dde6cfcursor #2c322alineHighlight #f0f4eakw #984f21str #2f5d82fn #267160num #705215type #6b5aa0builtin #994d5fpunct #595e52error #823f35warning #775e31ok #2a6e71
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 #5a5d50faint #68634cselection #e9dfbfcursor #33362clineHighlight #f5edd1kw #b03c03str #586a00fn #13679fnum #ac3268type #4f53a4builtin #0a6f67punct #5a5d4derror #833d1ewarning #805b20ok #19704d
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 #80596bselection #f4dce6cursor #3a2f36lineHighlight #feedf3kw #ae366fstr #7555a3fn #2a4e76num #a9452atype #a03e86builtin #20706dpunct #706069error #82402ewarning #7e5d2dok #226f6c
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 #4d5f67faint #50696fselection #d0e6e8cursor #24333alineHighlight #ecf5f6kw #00647dstr #317148fn #1f5991num #ab413ctype #7555a3builtin #925521punct #4e5e67error #8d392cwarning #7e5b28ok #207251
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 #5d6b51selection #dcecc9cursor #2c342alineHighlight #f0f6e9kw #3c7424str #2a5e8cfn #23745dnum #915b1ftype #84549abuiltin #a94a39punct #576150error #8a3f32warning #7d5d2eok #287455
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 #7c5f40selection #f7ddc4cursor #3a3128lineHighlight #fdebdckw #a34a11str #5f6923fn #325a8anum #ac3a67type #7454a2builtin #1f6f67punct #6d5e4derror #883a2ewarning #7d5d2cok #217151
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 #5d6089selection #dedef3cursor #2e2f3dlineHighlight #ededfbkw #5a50bdstr #34678efn #6a329bnum #aa3b5ftype #176966builtin #915420punct #606276error #873a2dwarning #7d5c2cok #206e6b
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 #5c666dselection #dbe3e3cursor #222831lineHighlight #ecf0f0kw #16467astr #23704ffn #a53625num #9a5013type #6b3fa0builtin #006f7cpunct #535d65error #933223warning #815b20ok #1b724f
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 #5e6263selection #dcdedbcursor #26292alineHighlight #ebedebkw #3d4d4astr #4a5a4afn #3d4a5anum #5a4d45type #4d445abuiltin #455a55punct #55595aerror #614c49warning #6a5f50ok #50675e
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 #5e646aselection #dde1e4cursor #23272blineHighlight #eceff1kw #2f4a63str #32669cfn #3a4650num #55606atype #2f3a44builtin #32669cpunct #555b62error #823e34warning #73602fok #2f6d70
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 #a0a4a8faint #969a9eselection #2d3236cursor #e8b45clineHighlight #1e2022kw #78b4e8str #a8d0eefn #b0b6bbnum #a0a6abtype #c4cacfbuiltin #78b4e8punct #b0b4b8error #db8271warning #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 #6e624bselection #ecdfbfcursor #34302alineHighlight #f5edd6kw #9e4d16str #545e17fn #725402num #934723type #78492bbuiltin #446c47punct #635a47error #7a4329warning #7b5a2aok #237051
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 #b8a289faint #ae987dselection #3c2d1fcursor #f0a13clineHighlight #2e241ckw #f0a05astr #c7c15ffn #e8c88cnum #e08160type #cf9a86builtin #a8c47apunct #c2b097error #f57361warning #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 #5d6469selection #dde1e4cursor #191c20lineHighlight #edeff1kw #7a1f4dstr #1f6b3afn #0c2650num #8a5112type #5a2f8abuiltin #0d5e6apunct #545b62error #922e20warning #766118ok #14704d
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 #2c3a47cursor #eef1f4lineHighlight #16191ckw #ffb0d8str #8ce8a8fn #8fc0ffnum #ffc07atype #dac0ffbuiltin #7fe0e8punct #c6c9ccerror #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 #cdd5e0ink2 #a8b2c3faint #9fa8b5selection #373d4acursor #ffcc00lineHighlight #2d323akw #ffa380str #3fbd71fn #7aa7ffnum #ff8190type #bdabffbuiltin #91d4ffpunct #acb2bderror #ff8194warning #f9c858ok #52d5c2
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 #c3d7e2ink2 #a2aeb5faint #9ba4a9selection #1a3d52cursor #fa6300lineHighlight #282b2ckw #ffcb61str #c3e98bfn #85dcffnum #ff7988type #c78eecbuiltin #7dc9c2punct #9baeb9error #ff7b6cwarning #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 #d3d4e8ink2 #a9b0d0faint #a1a6c4selection #353a52cursor #ffb454lineHighlight #2c2e41kw #e78ac0str #cfd48afn #6ec48cnum #b49bf2type #7fc9eabuiltin #f0a06apunct #afb0c3error #ff808cwarning #f0c05cok #59d3b3
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 #c7cfecink2 #9aa4ccfaint #929abeselection #272d4dcursor #ff9e64lineHighlight #212337kw #bda6f0str #a4c98cfn #7fa0f0num #f0a878type #7fd3d8builtin #dcc471punct #a6aecaerror #f36e87warning #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 #b7a890faint #af9d87selection #3e3429cursor #f08a3clineHighlight #312a25kw #ef8a72str #b6c56bfn #93b3d0num #d99bb0type #f1c160builtin #81c8b9punct #c1b394error #fb7764warning #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 #aeb0a1faint #a4a596selection #393b2ecursor #f08a2elineHighlight #2e3027kw #fa79a7str #d9d087fn #a9d364num #b79ef0type #79cbe0builtin #f0a352punct #bebeb3error #ff7a7dwarning #e9bc4cok #63cda9
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 #a8a39cfaint #9e9993selection #322e2bcursor #f0a83clineHighlight #211f1dkw #e8a94estr #f0c987fn #b8b2abnum #a8a29btype #c8c2babuiltin #e8a94epunct #b5b1aderror #da8172warning #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 #ffe7becursor #915e12lineHighlight #fbf3e5kw #915e12fn #126487str #416728num #a3334ftype #613387builtin #1d726fpunct #596c7berror #9a261dwarning #7c6805ok #1a775d
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 #a9bac6faint #9fb0bcselection #503123cursor #f3a068lineHighlight #1b3141kw #f6a36afn #83d2f7str #92ce8dnum #ec93b0type #c5a5e9builtin #7edfd1punct #b4c4cferror #ff897bwarning #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)