Sections & Watermarks
Composition doesn't need a special mode for "this component is its own page." Interleave the existing break elements with your includes. A break: "section" is the powerful one: it can carry its own pageSetup, header, footer, and watermarks — so each section switches orientation/margins, frame, and page decoration, and a section header can itself use a component:
"content": [
{ "use": { "name": "cover-page", "data": { "title": "Q3 Review" } } },
{ "break": "section",
"header": { "content": [ { "use": { "name": "running-head", "data": { "section": "Executive Summary" } } } ] } },
{ "use": { "name": "executive-summary" } },
{ "break": "section",
"pageSetup": { "orientation": "landscape" },
"header": { "content": [ { "use": { "name": "running-head", "data": { "section": "Holdings" } } } ] } },
{ "use": { "name": "holdings-table" } },
{ "break": "section", "pageSetup": { "orientation": "portrait" }, "header": { "content": [] } },
{ "use": { "name": "appendix", "style": "appendixBody" } }
]
break: "page" forces a new page; break: "section" starts a new section. A section's header/footer override the document frame ({ "content": [] } suppresses it; omitting it inherits the doc-root frame — so a footer with $global.PAGE stays consistent across every section). This composes a multi-page report — portrait cover, body with a running head, a landscape holdings table, a clean appendix — from independent components.
Per-section watermarks
A break: "section" can also carry its own watermarks — page-chrome decoration independent of flow content. The three states mirror header/footer overrides:
watermarks on a section break | Behavior |
|---|---|
| Absent | Inherit the document-level watermarks |
[] | Suppress watermarks for this section |
| Populated | Override with this section's watermarks |
A watermark's content is a canvas, so it can use a reusable graphics-component frame and recolor it per section via use.style — one deco-frame component, a different accent in each section:
{ "break": "section",
"watermarks": [
{ "content": {
"viewBox": [760, 580],
"shapes": [ { "use": { "name": "deco-frame", "x": 0, "y": 0, "width": 760, "height": 580, "style": "frameBurgundy" } } ]
},
"repeat": false }
] }
Real-world example: composed report
A four-section investment report — each section a different frame — assembled from five components (letterhead, cover-page, running-head, holdings-table, appendix):
{
"document": {
"pageSetup": { "size": "A4", "orientation": "portrait", "margins": [54, 54, 54, 54] },
"use": [ { "name": "letterhead", "override": true } ],
"content": [
{ "use": { "name": "cover-page", "data": { "title": "Q3 2026 Portfolio Review", "date": "October 2026" } } },
{ "break": "section",
"header": { "content": [ { "use": { "name": "running-head", "data": { "section": "Executive Summary" } } } ] } },
{ "h1": "Executive Summary", "style": "h1" },
{ "p": "Fund III returned 4.2% net in the third quarter…", "style": "body" },
{ "break": "section",
"pageSetup": { "orientation": "landscape" },
"header": { "content": [ { "use": { "name": "running-head", "data": { "section": "Holdings" } } } ] } },
{ "use": { "name": "holdings-table" } },
{ "break": "section", "pageSetup": { "orientation": "portrait" }, "header": { "content": [] } },
{ "use": { "name": "appendix", "style": "appendixBody" } }
]
}
}
Each section switches its frame independently: the cover keeps the letterhead header, the summary and holdings sections swap in a running-head component (with a per-section title), holdings goes landscape for a wide table, and the appendix suppresses the header — while the page-numbered footer stays consistent throughout (sections override only what they declare).
- Output
- Template
- Data
For a marketing-flavored take on the same techniques — a brand cover, one product card stamped per item, and a landscape spread — see the Product Lookbook tutorial. For per-section watermarks driven by a single reusable frame component, see the Certificate Suite tutorial.