OPF
SpecDefinition referenceView source

Composition

Automatic slide and content-group arrangement. Nested content groups arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their positions. A layout defines its grid as one ordered list of regions; its composition supports gap, padding, minFontSize and overflow rather than mode, columns or weights.

Metadata

Definition
#/$defs/Composition
Form
object
Source
spec/schemas/opf.schema.json

Field index

FieldTypeReq.Description
modeenum—auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.
mode · Allowed values
"auto""grid""row""column"
columnsinteger—Column count for grid. In auto mode this caps the number of columns.
gapnumber—Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.
paddingnumber—Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.
weightsarray<number>—Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.
minFontSizenumber—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.
overflowenum—warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.
overflow · Allowed values
"warn""error"

mode

typeenumrequirednodefault—

auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.

mode · Allowed values
"auto""grid""row""column"
Field fragment · mode.json
{
  "mode": "auto"
}

columns

typeintegerrequirednodefault—

Column count for grid. In auto mode this caps the number of columns.

gap

typenumberrequirednodefault—

Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.

padding

typenumberrequirednodefault—

Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.

weights

typearray<number>requirednodefault—

Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.

minFontSize

typenumberrequirednodefault—

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

typeenumrequirednodefault—

warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.

overflow · Allowed values
"warn""error"
Field fragment · overflow.json
{
  "overflow": "warn"
}
Complete definition constraints
Exact schema constraints
{
  "type": "object",
  "additionalProperties": false,
  "description": "Automatic slide and content-group arrangement. Nested content groups arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their positions. A layout defines its grid as one ordered list of regions; its composition supports gap, padding, minFontSize and overflow rather than mode, columns or weights.",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "grid",
        "row",
        "column"
      ],
      "description": "auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track."
    },
    "columns": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Column count for grid. In auto mode this caps the number of columns."
    },
    "gap": {
      "type": "number",
      "minimum": 0,
      "maximum": 0.1,
      "description": "Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333."
    },
    "padding": {
      "type": "number",
      "minimum": 0,
      "maximum": 0.2,
      "description": "Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group."
    },
    "weights": {
      "type": "array",
      "minItems": 1,
      "maxItems": 12,
      "items": {
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 100
      },
      "description": "Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored."
    },
    "minFontSize": {
      "type": "number",
      "minimum": 8,
      "maximum": 32,
      "description": "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": {
      "type": "string",
      "enum": [
        "warn",
        "error"
      ],
      "description": "warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn."
    }
  }
}