Set theme
set_themeWrite the site theme — preset, palette, darkPalette, styleGuide tokens and fonts, JSON-LD — straight into the draft; the change is immediate. suggest_palettes / suggest_font_pairings are the non-writing alternatives that only show options. ROOT company vars are set with patch_site_node. Palette names, styleGuide keys, workflow: get_style_reference({ topic: "theme" }).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Site id. Pass it on every call. | |
| demo | No | Demo URL. | |
| fonts | No | Hint ({ url } or { families }) parsed into heading/body families when styleGuide omits them. | |
| image | No | Preview image URL. | |
| title | No | Title. | |
| hidden | No | Hide from the public gallery. | |
| jsonLd | No | Schema.org JSON-LD object; {{company.*}} variables work inside it. | |
| preset | No | Preset slug; loads palette, fonts and styleGuide. Explicit params override it. | |
| palette | No | Complete palette — replaces the existing one. [{ name, color }] with DaisyUI names (Primary, Primary Content, Secondary, Accent, Neutral, Base 100/200/300, Base Content, …), never "Background"/"Foreground". Colors: hex, rgb, hsl or oklch(). | |
| homePage | No | Home page flag (default true). | |
| buildStyle | No | Vibe override for block filtering. Rarely needed — preset sets it. | |
| styleGuide | No | Design tokens, merged into the existing styleGuide; each key becomes a CSS var (headingFontFamily, bodyFontFamily, radiusBox, buttonPadding, contentWidth, input*Color, …). Key list: get_style_reference({ topic: "theme" }). | |
| darkPalette | No | Optional dark-mode palette with the same names. Enables dark mode. | |
| description | No | Short description (≤75 chars). |