Theming Your Site
Install a theme from JSR or a local path:
dune theme:install jsr:@dune/theme-caravan@1.0.0 --activate
dune theme:install ./themes/my-custom-theme --name custom --activate
A theme is a directory with theme.yaml, templates/, components/, and
static/. The minimum viable theme needs:
templates/default.tsx— the fallback page templatecomponents/layout.tsx— the HTML shell (head, nav, footer)theme.yaml— metadata and an optionalconfig_schema
Themes may declare
parent: some-base-themeintheme.yamlto inherit templates, components, and locales, overriding only what differs.
Customizing without forking
Most visual changes (accent color, footer text, toggles) are exposed
through the theme's config_schema and editable from config/site.yaml
under theme_config, or from the admin panel if installed — no code
changes needed for the common cases.