Slide Layout
Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are refer…
https://openpresentation.org/schema/opf-layout/v1
spec/schemas/layout.schema.json
Field index
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
| $schema | const | yes | — | Identifies this record as a slide layout in the openpresentation.org catalog. |
| id | string | yes | — | Stable slug used by OPF documents to reference this layout via Slide.layout. Lowercase kebab-case. |
| name | string | yes | — | Human-readable layout name shown in layout pickers. |
| summary | string | — | — | One-sentence positioning of the layout — when to reach for it. |
| description | string | — | — | Longer prose describing the layout structure and ideal use cases. |
| contentType | enum | — | — | Primary kind of content the layout holds. Drives pickers and AI placement decisions. |
| contentMultiple | enum | — | — | How many parallel content blocks the layout exposes ('2x' = two-column, '3x' = three-up, etc.). |
| contentAlignment | enum | — | — | Default horizontal alignment of the content area. |
| contentBox | boolean | — | — | Whether the content area is rendered inside a visible box / card. |
| contentTypeChartPrimary | enum | — | — | For chart layouts, where the primary chart sits relative to the rest of the content. |
| contentTypeImageFill | enum | — | — | For image layouts, how the image fills its slot. |
| contentTypeListBullet | enum | — | — | For list layouts, how bullets are rendered. |
| contentTypeListHeading | boolean | — | — | For list layouts, whether each list item carries a heading. |
| slideTag | boolean | — | — | Whether the layout includes a small slide-level tag / label region above or near the title. |
| slideTitle | boolean | — | — | Whether the layout includes a slide title region. |
| slideSubtitle | boolean | — | — | Whether the layout includes a slide-level subtitle or supporting-description region. When placeholders is present, this is true exactly when the layout exposes a placeholder with type 'subtitle'. |
| slideTitleAlignment | enum | — | — | Horizontal alignment of the slide title region. |
| slideImage | boolean | — | — | Whether the layout includes a dedicated slide-level image region (separate from any content image). |
| slideImageAlignment | enum | — | — | Where the slide-level image sits relative to the content. |
| slideLayoutDirection | enum | — | — | Axis along which the layout's primary regions are arranged. |
| placeholders | array<ref:Placeholder> | — | — | Ordered regions the layout exposes. The engine fills 'title', 'subtitle', and 'tag' placeholders from Slide.title, Slide.subtitle, and Slide.tag. Other placeholders are content-kind hints for renderers and pickers. Slide content itself lives either in root payload fields or prom… |
| 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 slide layout in the openpresentation.org catalog.
{
"$schema": "https://openpresentation.org/schema/opf-layout/v1"
}id
Type: string · Required · Default: — · Pattern: ^[a-z][a-z0-9-]*$
Stable slug used by OPF documents to reference this layout via Slide.layout. Lowercase kebab-case.
{
"id": "title"
}name
Type: string · Required · Default: —
Human-readable layout name shown in layout pickers.
{
"name": "Title"
}summary
Type: string · Optional · Default: —
One-sentence positioning of the layout — when to reach for it.
{
"summary": "Slide title aligned left over a single content area — flexible workhorse layout."
}description
Type: string · Optional · Default: —
Longer prose describing the layout structure and ideal use cases.
{
"description": "Two equal-width columns under a left-aligned slide title. Use when comparing two ideas, before/after pairs, or paired text + image content."
}contentType
Type: enum · Optional · Default: —
Primary kind of content the layout holds. Drives pickers and AI placement decisions.
{
"contentType": "Title"
}contentMultiple
Type: enum · Optional · Default: —
How many parallel content blocks the layout exposes ('2x' = two-column, '3x' = three-up, etc.).
{
"contentMultiple": "None"
}contentAlignment
Type: enum · Optional · Default: —
Default horizontal alignment of the content area.
{
"contentAlignment": "None"
}contentBox
Type: boolean · Optional · Default: —
Whether the content area is rendered inside a visible box / card.
{
"contentBox": false
}contentTypeChartPrimary
Type: enum · Optional · Default: —
For chart layouts, where the primary chart sits relative to the rest of the content.
{
"contentTypeChartPrimary": "None"
}contentTypeImageFill
Type: enum · Optional · Default: —
For image layouts, how the image fills its slot.
{
"contentTypeImageFill": "None"
}contentTypeListBullet
Type: enum · Optional · Default: —
For list layouts, how bullets are rendered.
{
"contentTypeListBullet": "None"
}contentTypeListHeading
Type: boolean · Optional · Default: —
For list layouts, whether each list item carries a heading.
{
"contentTypeListHeading": false
}slideTag
Type: boolean · Optional · Default: —
Whether the layout includes a small slide-level tag / label region above or near the title.
{
"slideTag": false
}slideTitle
Type: boolean · Optional · Default: —
Whether the layout includes a slide title region.
{
"slideTitle": true
}slideSubtitle
Type: boolean · Optional · Default: —
Whether the layout includes a slide-level subtitle or supporting-description region. When placeholders is present, this is true exactly when the layout exposes a placeholder with type 'subtitle'.
{
"slideSubtitle": false
}slideTitleAlignment
Type: enum · Optional · Default: —
Horizontal alignment of the slide title region.
{
"slideTitleAlignment": "None"
}slideImage
Type: boolean · Optional · Default: —
Whether the layout includes a dedicated slide-level image region (separate from any content image).
{
"slideImage": false
}slideImageAlignment
Type: enum · Optional · Default: —
Where the slide-level image sits relative to the content.
{
"slideImageAlignment": "None"
}slideLayoutDirection
Type: enum · Optional · Default: —
Axis along which the layout's primary regions are arranged.
{
"slideLayoutDirection": "None"
}placeholders
Type: array<ref:Placeholder> · Optional · Default: —
Ordered regions the layout exposes. The engine fills 'title', 'subtitle', and 'tag' placeholders from Slide.title, Slide.subtitle, and Slide.tag. Other placeholders are content-kind hints for renderers and pickers. Slide content itself lives either in root payload fields or prom…
{
"placeholders": []
}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": {}
}