Theme
Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are reference…
https://openpresentation.org/schema/opf-theme/v1
spec/schemas/theme.schema.json
Field index
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
| $schema | const | yes | — | Identifies this record as a theme in the openpresentation.org catalog. |
| id | string | yes | — | Stable slug used by OPF documents to reference this theme via design.theme. Lowercase kebab-case. |
| name | string | yes | — | Human-readable theme name shown in pickers. |
| summary | string | — | — | One-sentence positioning of the theme — when to reach for it. |
| description | string | — | — | Longer prose describing what the theme looks and feels like and the kinds of decks it suits. |
| colorScheme | string | — | — | Catalog reference to the theme's default color scheme — resolved against catalogs.colorSchemes the same way design.colorScheme or design.colorScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference. |
| fontScheme | string | — | — | Catalog reference to the theme's default font scheme — resolved against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference. |
| background | ref:ThemeBackground | — | — | |
| dimensions | enum | — | — | Default slide size for this theme. Accepts the same preset values as design.dimensions.preset. |
| tags | array<string> | — | — | Free-form labels for filtering and search. |
| preview | object | — | — | Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available. |
$schema
Type: const · Required · Default: —
Identifies this record as a theme in the openpresentation.org catalog.
{
"$schema": "https://openpresentation.org/schema/opf-theme/v1"
}id
Type: string · Required · Default: — · Pattern: ^[a-z][a-z0-9-]*$
Stable slug used by OPF documents to reference this theme via design.theme. Lowercase kebab-case.
{
"id": "minimal"
}name
Type: string · Required · Default: —
Human-readable theme name shown in pickers.
{
"name": "Minimal"
}summary
Type: string · Optional · Default: —
One-sentence positioning of the theme — when to reach for it.
{
"summary": "A clean, minimalist theme for professional, straightforward presentations."
}description
Type: string · Optional · Default: —
Longer prose describing what the theme looks and feels like and the kinds of decks it suits.
{
"description": "A clean, minimalistic theme with a focus on simplicity and readability. Ideal for professional, straightforward presentations."
}colorScheme
Type: string · Optional · Default: —
Catalog reference to the theme's default color scheme — resolved against catalogs.colorSchemes the same way design.colorScheme or design.colorScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference.
{
"colorScheme": "cool-horizon"
}fontScheme
Type: string · Optional · Default: —
Catalog reference to the theme's default font scheme — resolved against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference.
{
"fontScheme": "aptos"
}background
Type: ref:ThemeBackground · Optional · Default: —
{
"background": "background-value"
}dimensions
Type: enum · Optional · Default: —
Default slide size for this theme. Accepts the same preset values as design.dimensions.preset.
{
"dimensions": "16:9"
}preview
Type: object · Optional · Default: —
Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
{
"preview": {}
}