Design palette
Every .pptx embeds a PowerPoint theme: a color scheme of ten named slots and a major/minor
font pair. Slidura reads this palette once at catalog time and uses it as the single source
of truth for all auto-derived color schemes across your template.
What the palette contains
| Slot | Role |
|---|---|
dk1, lt1 | Primary text / background pair |
dk2, lt2 | Secondary text / background pair |
accent1 – accent6 | Brand accent colors |
Plus major_font (headings) and minor_font (body text).
The palette is a fact of the uploaded file — it is not editable.
Automatic derivations
Slidura derives ready-made color schemes from the palette so that auto-generated content matches the deck’s design without any manual configuration:
Mermaid diagrams —
accent1/accent2/accent3drive node fills;dk2/lt2set line colors; the background and font family come from the surface/ink pair andminor_font. These become the default mermaid theme variables for the template, under any values you have typed manually in the Designs tab — hand-typed keys always win.Procedural art — the same
accent1..6, surface, text, and font slots feed the artdeckArtThemethat shapes every procedural art at build time.Code blocks — a Pygments syntax-highlighting style is generated dynamically: keywords in
accent1, strings inaccent3, numbers inaccent4, and so on; a contrast guard steps colors toward readability until they meet WCAG 4.5:1 against the surface.
Per-asset overrides (a diagram’s custom background, a code block’s explicit style)
always take precedence over the derived defaults.
Palette availability
The palette is captured for templates uploaded after the design-palette feature shipped.
For older uploads, Slidura falls back to reading the palette from the stored full catalog
— so most templates will expose the palette even if theme_json is not in the version
row. Uploads where the scan could not read a theme at all return null for the palette.
The swatch quick-pick
The Designs tab of the template workspace shows a swatch strip: ten color swatches plus the two font names. Click a swatch to copy the hex value into the last-focused color input on the page. This works in the mermaid theme editor and in the diagram background field.
@theme: tokens for agents and users
Where a color input accepts @theme: tokens, you can write a palette reference instead of
a hex code. The reference is resolved at render time, so it survives a template re-upload
with a different color scheme.
Syntax accepted in mermaid theme variable values and diagram background fields:
@theme:accent1 → hex of accent1
@theme:lt1 → hex of lt1
@theme:surface → luminance-normalized background color
@theme:ink → luminance-normalized text color
@theme:accent2:tint20 → accent2 lightened 20 %
@theme:dk1:shade10 → dk1 darkened 10 %Valid slots: dk1 lt1 dk2 lt2 accent1..accent6 surface ink. Tint/shade percentages are
1–99. An invalid token is rejected with a validation error at the point of save, not
silently stored.
@theme: tokens in arbitrary fill values are not supported in v1 — the token grammar
applies only where the template context is unambiguous at render time.
API and MCP access
GET /api/v1/templates/{id}/theme returns the palette and its derived schemes under the
palette and derived keys. The get_template_theme MCP tool returns the same data.
The compact catalog and the MCP get_catalog response include a top-level theme key —
the agent’s self-render contract: resolved hex values and ready-made mermaid variables it
can drop into its own renderer or use to colorize images before upload.