All 26 themes
Previewed across a terminal and real code. Filter by kind, mode, 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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 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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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 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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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 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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)
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.
~/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
A low-glare theme for tired, prescription-wearing eyes.
- Never pure white, never pure black
- 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)