colophon
Colophon
This site is hand-built with Astro 5 — static HTML,
no client framework — and deployed to GitHub Pages from a single workflow. But the part
worth writing down is the color: every palette you can pick here is generated at build
time from my dotfiles theme engine, the same
colors.json files that theme my terminal. The whole thing is
open source ↗.
The pipeline
One schema fans out to nine consumers. A single colors.json per variant
drives a set of templates, which generate configs for eight terminal apps. This site is
the ninth — app #9 of the theme engine.
colors.json 26-key schema · 57 variants templates/ .toml · .conf · .lua · .sh - Alacritty
- WezTerm
- Kitty
- tmux
- Starship
- Neovim
- bat
- delta
~/starikov app #9 — this site Every variant
All 57 variants across 17 families, each swatch drawn in its own colors. 16 have a true light/dark web pair and recolor the whole site on click; the rest theme my terminal only.
Tokyo Night
4- Night terminal-only
- Moon terminal-only
GitHub
11- Light terminal-only
- Dark terminal-only
- Dark Dimmed terminal-only
- Dark High Contrast terminal-only
- Light High Contrast terminal-only
- Dark Colorblind terminal-only
- Light Colorblind terminal-only
- Dark Tritanopia terminal-only
- Light Tritanopia terminal-only
Catppuccin
4- Frappe terminal-only
- Macchiato terminal-only
Dracula
2- Classic terminal-only
- Soft terminal-only
One Dark Pro
5- Classic terminal-only
- Darker terminal-only
- Vivid terminal-only
- Flat terminal-only
- Vaporwave terminal-only
Material
5- Palenight terminal-only
- Oceanic terminal-only
- Deep Ocean terminal-only
Ayu
3- Mirage terminal-only
Monokai Pro
6- Pro terminal-only
- Classic terminal-only
- Machine terminal-only
- Octagon terminal-only
- Ristretto terminal-only
- Spectrum terminal-only
Night Owl
2Synthwave 84
1- Default terminal-only
Shades of Purple
1- Default terminal-only
Nord
1- Default terminal-only
Embark
1- Default terminal-only
Iceberg
2Monokai Classic
1- Default terminal-only
Aurora
1- Default terminal-only
Atom One
7- Dark Darker terminal-only
- Dark Cool terminal-only
- Dark Warm terminal-only
- Dark Warmer terminal-only
- Dark Deep terminal-only
Honest tokens
Terminal palettes are tuned for a terminal, not a document. Used naively as web text
they fail contrast — so this site splits them in two. The raw terminal
tokens (--bg, --fg, --accent,
--border, the sixteen ANSI colors) drive chrome only: borders,
fills, accents, the swatches above. --muted is never text — measured, it
lands at 1.8–2.5:1 across most variants, well under the readable floor.
The text colors are derived. At build,
--text-secondary and --code-comment are computed by mixing
color-mix(fg, bg) step by step until they clear the WCAG floors — 4.5:1 for
body-adjacent text, 3:1 for large and 14px+ mono. Body fg-on-bg
is validated at 4.5:1 for every variant, and any that fails is dropped from the build
rather than shipped with a color you can't read. There is no opacity on body text, ever.
This is disclosed here on purpose. It is the web sibling of my
validate-themes.sh — the contrast check that runs in the terminal, run
again at build for the browser. Authenticity through honesty: the colors are real, and
so is the math that makes them legible.
Type specimen
Two families do all the work: Inter for reading and UI, Commit Mono for identity — the wordmark, labels, code, and every terminal echo. No serif.
Inter Variable · body & UI
The quick brown fox jumps over the lazy dog — 0123456789
Commit Mono · identity
~/starikov ❯ theme storm && git commit -m "0O 1lI"
- Statement
- Heading 1
- Heading 2
- Heading 3
- Body
- Small
- Mono
The stack
- Astro 5
- Static HTML out, Content Layer in. Zero client framework — no React, no hydration tax.
- Vanilla TypeScript
- The ⌘K palette, the theme runtime, the pre-paint boot script — a few KB of hand-written TS, no islands.
- Pagefind
- Full-text search indexed at build, loaded on demand. The search runs in your browser, not a server.
- GitHub Actions + Pages
- One workflow: pull the live sources, generate the themes, build, gate, deploy. A failed build never ships.
- Inter + Commit Mono
- Self-hosted, subset to latin, preloaded. Metric-matched fallbacks so nothing shifts as they load.
Provenance
The 8 curated families (16 live variants) are regenerated on every deploy. This build:
Palette synced from dotfiles@f274559 built 2026-07-26 10:55 UTC