The UI theme (theme="light" | "dark" | "system", exposed as data-theme) is separate from the page theme, which decides how page content looks.
The recommended theme
- Day — a soft paper tint (multiply, like sepia). Ink stays crisp and figures keep their colours.
- Night — a tinted vector recolour: text and plot lines are redrawn light-on-dark with their hues kept, neutral ink takes the paper’s hue, photos and raster figures are untouched.
strength(0–1) — how much of the colour shows. Keep it low for calm, matte pages.
paperColors is a matte palette (sage, lavender, sand, sky, clay, rose, mint, stone) with light, dark and accent values; paperTheme(paperColors[i], dark) gives a category its own page colour. For a colour picker, paperSwatches lists white, warm paper and the palette, and paperHex(value, dark) turns a swatch value (or a #hex) into the colour for pageThemes.paper. Where an accent becomes text (labels, links, --pdf-accent), paperInk(color, dark) gives its ink shade (optional ink / inkDark fields, by default inkCss(accent, dark)).
All strategies
Page frames
pageFrame sets how page edges look: 'shadow' (default), 'border', 'rounded', 'flat' or 'none' (no frame and no page background — for pages inside cards). Fine-tune with --pdf-page-radius, --pdf-page-shadow and --pdf-page-border.
Custom strategies
A strategy is a plain object:
screen blend, so they stay readable on every strategy.