Composition
Portable dynamic composition. Slide fields override the resolved layout. Nested groups arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their pos…
Metadata
#/$defs/Composition
object
spec/schemas/opf.schema.json
Fields
| Field | Type | Req | Description |
|---|---|---|---|
| mode | enum | — | auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track. |
| columns | integer | — | Column count for grid. In auto mode this caps the number of columns. |
| gap | number | — | Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333. |
| padding | number | — | Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group. |
| weights | array<number> | — | Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored. |
| minFontSize | number | — | Minimum readable text size in reference pixels at a 720-pixel canvas short edge. Default 16. Overflow is diagnosed when text cannot fit at this size. |
| overflow | enum | — | warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn. |
mode
Type: enum · Optional · Default: —
auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.
{
"mode": "auto"
}columns
Type: integer · Optional · Default: —
Column count for grid. In auto mode this caps the number of columns.
{
"columns": 1
}gap
Type: number · Optional · Default: —
Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.
{
"gap": 1
}padding
Type: number · Optional · Default: —
Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.
{
"padding": 1
}weights
Type: array<number> · Optional · Default: —
Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.
{
"weights": []
}minFontSize
Type: number · Optional · Default: —
Minimum readable text size in reference pixels at a 720-pixel canvas short edge. Default 16. Overflow is diagnosed when text cannot fit at this size.
{
"minFontSize": 1
}overflow
Type: enum · Optional · Default: —
warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.
{
"overflow": "warn"
}