Per-post theme overrides (theme_id field)
You can apply a different theme to a specific blog post without changing your site's global theme. The theme_id field on the post lets you override typography, colors, and layout for one-off editorial designs.
Every VeloCMS post has an optional theme_id field in the post metadata panel (accessible via the Settings tab in the editor). When set, this overrides your blog's global theme for that post only. The post renders using the specified theme's color palette, typography, and border radii — while every other post continues using the site-wide default.
Use cases for per-post theme overrides
Per-post themes are most useful for editorial differentiation — a flagship post that should feel visually distinct from your regular content, a sponsored post using the sponsor's brand colors, or a seasonal post (holiday theme, dark-mode-only feature). They're also useful when running A/B experiments on visual presentation to see which design drives better engagement metrics.
Setting a per-post theme in the editor
Open the post in the editor and click the Settings tab in the right panel. Scroll to the Display section — you'll see a Theme dropdown showing your site's available themes. Select the override theme. The editor preview updates to show the post as it will appear to readers. To revert to the global theme, set the dropdown back to 'Site default' or clear the theme_id field.
Per-post theme overrides change the post's visual chrome (colors, typography) but not the site nav and footer — those always render in the global theme. If you want a completely isolated visual experience, use the landing page page builder instead, which runs outside the blog layout.
How the override works technically
The blog post route reads the post's theme_id from PocketBase and, if set, loads the corresponding preset JSON and injects its CSS variables into a style block scoped to the article element. Tailwind's utility classes inside the article then resolve to the override theme's variable values. CSS outside the article element — the nav, footer, sidebar — continues reading from the global preset variables injected in the root layout.
For an overview of how themes work at the system level, see 'Tailwind v4 CSS variables and your theme preset'. For switching your entire site's theme, see 'How do I switch themes in VeloCMS'.