Appearance → Customize → Style. Six pickers.
| Setting | Theme’s value | Paints |
|---|---|---|
| Text color | #111111 | body copy, headings, most links inside content |
| Accent color | #0000ee | links, the Primary button, interactive accents |
| Background color | white | the page |
| Meta text color | #767676 | the date, categories, comment count, tagline, captions, footer |
| Selection color | the browser’s | the highlight behind selected text |
| Selected text color | the browser’s | selected text itself |
Empty means the theme’s own value
Clearing a picker removes the override entirely — the stylesheet’s value stands, and no CSS is emitted for it. You can always get back to the default.
The one picker that ships set rather than empty is the accent, so that it opens on the colour the page is actually using rather than on a blank swatch. Clearing it still returns it to the same value.
The two selection pickers are different again: with both empty, no ::selection rule is written at all, so the browser’s own highlight — which readers recognise — is left alone. Set one and you take over both.
A dark site
Stoat has no dark-mode toggle. It does have colour pickers, which is enough for a permanently dark site:
| Background color | #111111 |
| Text color | #eeeeee |
| Meta text color | #9a9a9a |
| Accent color | something that holds up on dark — #7aa2ff rather than #0000ee |
| Header skin | Dark |
Then check your images: a transparent-background PNG logo drawn in black disappears, and so do diagrams with white backgrounds. The Dark header skin handles the hairlines and the tagline for you.
Contrast
Nothing checks these pairs for you, and the pairs that matter are:
| Needs | |
|---|---|
| Text on background | 4.5:1 at body size — 7:1 is comfortable |
| Meta on background | 4.5:1 too; small grey print is where sites fail |
| Accent on background | 4.5:1 when it is a link colour |
| Header text on header background | 4.5:1 |
The theme’s #767676 meta grey is exactly 4.5:1 on white — it is chosen to be the lightest grey that passes. Lightening it to #999 for a cleaner look drops it to 2.8:1 and fails.
Everything else
Hairlines, borders, code backgrounds and the rest are not pickers. They are CSS custom properties, and Additional CSS can set any of them:
:root {
--border: rgba(0,0,0,.16);
--dark-gray: #4a4a4a;
}
