Theme customizer
Live identity, colors, typography, layout, navigation, extra CSS, and homepage blocks — draft then publish.
5 min read
Admin → Themes → Customize (/admin/themes/customize). Sections: identity, colors, typography, layout, navigation, additional CSS. Homepage blocks have their own draft keys. Save as draft, then publish.
Effective CSS is served at `GET /theme.css` (preview-aware). Custom CSS is sanitized (lib/safe-css.ts) so a theme cannot inject arbitrary harmful rules. Theme mods are cached under theme:mods:.
Related APIs live under /api/themes customize GET/PATCH/DELETE. Roles that may customize are checked on the server (administrators and designated customize roles).