Skip to content

Themes

A Theme is a portal — a navigable "world" the app skins itself to (colour + design assets). Themes are a global controlled vocabulary spanning every content type (not per-book): every piece of content, and every Journey, is assigned one or more Themes by multi-select. Switching a Theme recolours the whole UI — the portal metaphor is literal, not decorative.

What a Theme is

Themes are static reference data: the FE fetches the whole set once, caches it, and every theme_id used elsewhere (passage cards, journeys, Home) resolves against that cache. A theme is a Wagtail snippet, not a routable page — a theme's own content surface (browsing content within a theme) is out of scope for the current API; these are the visual portal + skin only.

One theme can be marked featured — a single slot, set by editors, that surfaces as the Home "Theme of the Week". Featuring a theme has no effect on the theme set or its ordering; it's a separate slot layered on top.

How themes relate to content

Content pieces and Journeys are assigned Themes by multi-select — a piece may sit in several worlds at once. See the Glossary for the canonical definition.

See also

  • API Guide — endpoints, the design block, themes_hash change detection.
  • Editor Guide — how editors manage themes in the CMS.