Accent

Themes and sites

Theme packages, follow vs fork, and how a site binds one.


Theme packages

A theme is a versioned package of EJS (templates, partials), compiled CSS per skin, JS islands, and a manifest. A site that binds a theme is in the follow state: it renders the theme's files directly, no copies.

Follow vs fork

Customize on any theme entry forks it — copy-on-write into the site's own tree at the same relative path, which is what makes the fork shadow the theme original (resolution walks site files first, theme package second, per file). Reset deletes the fork and the site follows the theme again.

The same chain powers require() between templates: a theme file that requires ./header.ejs picks up the site's fork of header.ejs when one exists.

Skins

A theme ships one CSS build per skin; the site picks a skin and templates receive theme_skin plus the resolved stylesheet chain. Bundle-based themes can layer a <skin>-skin.css override.

Static delivery

Sites can publish to static output — the same rendered pages, serveable without the app — with a static-vs-live toggle per site. See the publish pipeline notes in Themes — design record and Deployment — operations record.

Deep records

Themes — design record — the package format, variant/skin resolution, and the follow-state contract.