Theming
Theming applies in two layers: deck-wide (defaults for every slide) and per-slide (overrides for individual slides). The slide editor exposes both; per-slide overrides are sparse — only the properties you change deviate from the deck.
Deck theme
With no element selected (and no slide selected — click empty space), the right inspector becomes the Deck inspector. This is your deck-wide theme — seven color tokens at the top, then font, text size, spacing, and corner radius.
Or open it explicitly via Agents → [your agent] → Slide design, which is the dedicated full-page version of the same controls plus a live preview.
Color tokens
Seven named slots. Every element in the editor that takes a color (text fill, shape fill, button background, etc.) can pick from these — and updating a token cascades automatically through the whole deck.
| Token | Default usage |
|---|---|
bg | Slide background |
surface | Cards, popovers, callouts |
text | Primary text |
muted | Secondary / supporting text |
accent | Primary buttons, links, active states |
accent2 | Secondary highlights, gradients |
border | Card borders, dividers |
Always color elements via tokens, not literal hex codes. A token like accent follows whatever color you set for it — and per-slide theme overrides will respect it. A literal hex code paints itself in and stops responding to brand changes.
Font
A single font family for the deck. The picker shows a curated whitelist (~200 Google Fonts plus system fallbacks). Custom fonts aren't supported in v1.
Text size
A single size scale. The deck-wide value sets the base; element-level fontSize overrides per text run. See Text → Typography.
Spacing & corners
- Spacing — controls margin / padding on layout-aware elements (cards, callouts).
- Corners — sets the deck-wide rounded-corner radius for surfaces. Element-level
cornerRadiusoverrides per element.
Logo
Upload a logo (PNG/SVG/JPG). Used by some templates as a watermark and by the [Live Layer] watermark replacement on paid plans.
Per-slide override
Any slide can override a subset of the deck theme. With a slide selected (no elements), the inspector exposes an Appearance panel:
- Background color (override the deck
bg) - Theme override — change any deck token for this slide only
Common pattern: section dividers with a darker bg and an inverted text:
{
"id": "slide_section_intro",
"themeOverride": {
"colors": {
"bg": "#0F172A",
"text": "#F8FAFC",
"accent": "#06B6D4"
}
}
}
Only the keys you specify override the deck. Everything else inherits from theme.
Logo placement
The deck-wide logo renders on slides via templates that include a <LogoSlot> element. Most templates default to corner-docked. To skip the logo on a specific slide (e.g., a video slide), set themeOverride: { logoUrl: null }.
Watermark
Free-tier orgs get a "Live Layer" watermark on the published view. Paid plans replace it with the deck's logoUrl. The watermark gating is server-side — there's no client toggle.
Schema reference
SlideTheme:
| Name | Type | Description |
|---|---|---|
| colors* | { bg, surface, text, muted, accent, accent2, border } | Seven named hex colors. |
| font* | string | Font-family name from the curated whitelist. |
| headingFont | string | Optional separate heading font. Defaults to `font`. |
| textSize | "sm" | "base" | "lg" | "xl" | Base text-size scale. |
| spacing | "compact" | "normal" | "comfortable" | Margin / padding density. |
| corners | "sharp" | "rounded" | "pill" | Default corner radius for surfaces. |
| logoUrl | string | Deck logo URL. |
Slide.themeOverride is Partial<SlideTheme> — any subset of the above.
Read next
- Editor basics → Inspector — where the deck and slide inspectors live
- Elements overview — element-level color overrides