The palette
aphrOS has two looks and one source for both.
- Dark — "under the water." Deep Aegean ground, sea-foam text, rose-gold accents. This is what the machine boots into.
- Light — "the foam itself." Warm pearl and sand, deep-sea text, the same rose-gold darkened enough to hold on a pale ground.
The accents are the same hues in both, re-valued for their background. That is what makes the two read as one product in two moods rather than as two unrelated themes.
Named for the name
The distribution is named for Aphrodite, born of sea foam, and the palette comes from that image rather than from a recolour of somebody else's theme. The terminal wordmark is the same idea in three lines: foam above, the name, the water beneath it.
One file, every surface
code/nix/theme.nix is a plain attribute set. The compositor, the status bar, the lock screen, the notification daemon, the terminal, the wallpaper generator, the boot splash and the wordmark all import it.
So does this website — the colours on the page you are reading were generated from that file when the page was built. There is no second copy of a hex value anywhere, and that is deliberate: the file's own header notes that it was once a module, silently became dead code, and a second copy went live without anyone noticing.
Contrast is checked, not eyeballed
Text on background is about 14:1 in the dark variant and 12:1 in the light one; secondary text is about 7:1 in both. Accents clear 4.5:1 for interface use.
Pretty is not an excuse for unreadable.
Semantic names, not raw colours
Consumers never reference rose or aegean directly. They use the semantic aliases, so re-valuing a variant is a one-word change:
| Alias | Means |
|---|---|
accent | Focus, the active thing |
accentAlt | The second half of a focus gradient |
ok | Success — her sacred myrtle |
warn | Attention |
err | Failure |
info | Neutral information |
There is also a base16 projection, so anything that speaks base16 — the pager, the diff tool, the fuzzy finder, the editor — is themed without importing a theming framework. That projection is lossy by construction: base16 has three dark-surface slots where this palette has six. The semantic names above stay authoritative for exactly that reason.
Geometry travels with it
Corner radius, gaps and border width live in the same file, and this page uses them too — the rounding on the screenshots is the rounding on the windows inside them.