Search
Documentation

← Authoring templates

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

SlotRole
dk1, lt1Primary text / background pair
dk2, lt2Secondary text / background pair
accent1accent6Brand 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 diagramsaccent1/accent2/accent3 drive node fills; dk2/lt2 set line colors; the background and font family come from the surface/ink pair and minor_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 artdeck ArtTheme that shapes every procedural art at build time.

  • Code blocks — a Pygments syntax-highlighting style is generated dynamically: keywords in accent1, strings in accent3, numbers in accent4, 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.