Pages
A Typograph document lays its pages out in spreads. A spread is the container: it holds one or more page records side by side, and every element on those pages, in one coordinate space. A single page is a spread with one page record; a facing pair is a spread with two. See Elements for element-level detail.
{
"spreads": [
{
"uuid": "0141645a-d2e7-4fa8-94a0-6d89be96b900",
"name": "Front",
"allow_page_shuffle": true,
"is_active": true,
"is_locked": false,
"bleed": 3,
"fill_swatch_uuid": "PAPER",
"fill_tint": 1,
"stroke_swatch_uuid": "BLACK",
"stroke_tint": 1,
"pages": [
{
"x": 0, "y": 0, "width": 210, "height": 297,
"left_margin": 10, "top_margin": 10, "right_margin": 10, "bottom_margin": 10,
"name": ""
}
],
"elements": [ ... ]
}
]
}
Spreads
Identity and Behaviour
| Property | Description |
|---|---|
uuid | UUID, stable across edits |
name | User-visible name shown in the editor: the name of the spread's first page |
is_active | Whether this spread is part of the active export range |
is_locked | Whether the spread is locked in the editor |
allow_page_shuffle | When false, the spread's pages stay together and the page bar does not reshuffle them |
is_cover | true when the spread is a cover wrap: back cover, spine and front cover as three page records. A cover sits outside the document's page count. |
spine_direction | Which way the spine text of a cover runs: top_to_bottom (default) or bottom_to_top |
user_data | Free-form data of your own; Typograph stores it and does not read it |
Bleed
| Property | Description |
|---|---|
bleed | Print bleed extending beyond the trim edge, in mm |
bleed_left, bleed_top, bleed_right, bleed_bottom | Bleed per side, when the sides differ |
Fill, Stroke & Gradient
Spreads reference swatches the same way elements do (see Styles):
fill_swatch_uuid,fill_tint— solid fillstroke_swatch_uuid,stroke_tint— border strokenative_gradient_fill_start,native_gradient_fill_length,gradient_fill_angle— gradient fillnative_gradient_stroke_start,native_gradient_stroke_length,gradient_stroke_angle— gradient stroke
Page Records
Each entry in a spread's pages array is one page: its bounds and position in the spread, its margins, and its layout aids. A spread holds at least one.
| Property | Description |
|---|---|
x, y | Position of the page within the spread (top-left origin), in mm |
width, height | Page dimensions, in mm |
left_margin, top_margin, right_margin, bottom_margin | Content safe-area margins, stored as four independent fields |
name | Page label within the spread ("" when unnamed) |
fill_swatch_uuid, fill_tint | The page's own background colour. Absent: the page takes its spread's colour. |
user_data | The page's own free-form data. Absent: its spread's user_data applies. |
Layout Aids
Purely editorial — they don't render on output but help during editing:
guides— user-drawn ruler guides on the page, each withis_visiblecolumns— the column layoutgrid— layout grids
Elements
The actual content lives in the spread's elements array — text blocks, images, shapes, tables, groups and so on — positioned in the spread's coordinate space. See Elements for the element model.