Themes
A theme is three choices in dokk.toml, the way Basecoat
themes: a style pack for shape and density, a base color for every surface and text color,
and an optional accent color on top.
[theme]
style = "rhea"
base = "zinc"
color = "pink"
Only the chosen style pack is copied into your site.
Styles #
A style pack sets the size of controls, corner radius and spacing. Measured on a default button, input and card:
| Style | Controls | Corners | Feel |
|---|---|---|---|
vega (default) |
36px | 8px inputs, 14px cards | the classic shadcn/ui look |
nova |
32px | 10px inputs, 14px cards | vega, tighter |
maia |
36px | pill inputs, 16px cards | soft and rounded |
lyra |
32px | square | boxy and sharp |
mira |
28px | 8px inputs, 10px cards | the densest, for busy pages |
luma |
36px | 24px inputs, 32px cards | the roundest, airy |
sera |
40px | square, uppercase badges | large and roomy |
rhea |
32px | 16px inputs, 24px cards | compact but rounded |
Base colors #
The base sets every token: backgrounds, text, borders, muted surfaces. Each is tuned for light and dark mode. Shown: background, foreground, primary, muted and border.
| Base | Light | Dark |
|---|---|---|
neutral (default) |
||
stone |
||
zinc |
||
mauve |
||
olive |
||
mist |
||
taupe |
Accent colors #
color adds an accent on top of the base: primary, secondary, the sidebar accent and five chart
colors. The chart colors are the same in light and dark mode. Leave color out to keep the base’s
own primary.
| Color | Primary, light | Primary, dark | Charts | Code (light / dark) |
|---|---|---|---|---|
amber |
gruvbox-light / gruvbox-dark |
|||
blue |
vs / one-dark |
|||
cyan |
solarized-light / solarized-dark |
|||
emerald |
friendly / nord |
|||
fuchsia |
lovelace / dracula |
|||
green |
friendly / nord |
|||
indigo |
vs / one-dark |
|||
lime |
friendly / nord |
|||
orange |
gruvbox-light / gruvbox-dark |
|||
pink |
pastie / monokai |
|||
purple |
lovelace / dracula |
|||
red |
pastie / monokai |
|||
rose |
pastie / monokai |
|||
sky |
vs / one-dark |
|||
teal |
solarized-light / solarized-dark |
|||
violet |
lovelace / dracula |
|||
yellow |
gruvbox-light / gruvbox-dark |
Code highlighting #
The accent also picks the Pygments styles for code blocks (last
column above). Without an accent, code uses default and github-dark. Override either one:
[theme]
color = "pink"
code_light = "friendly" # any Pygments style
code_dark = "nord"
Fine-tuning #
To change single colors, override templates/files/theme.css.jinja in your site. It receives
base, color and vars, with the final tokens in vars.light and vars.dark. See
Templates and styling.
Colors are from shadcn/ui (MIT), as vendored in dokk.