The layout is what actually gets drawn on top of the page canvas - a set of blocks (text, image, box, signature, QR, grid; see Block Types Reference), split across one or more JSON files called partials.
Partial files
overlay.json- the base partial. Required for a single-page, no-conditional- content layout; page config (backgrounds) plus your blocks. Opens in the Layout Editor like any other layout file.- Any other layout JSON file in the project (created via Project Files's Add Asset → Add Overlay) is an optional additional partial - a conditional logo, a badge, an extra block or two included only sometimes.
How partials get combined
process.js's process(filename) calls (see Scripting &
Processing) decide which partials are actually merged
for a given generation run. If process.js doesn't exist at all, the app behaves as
if it contained exactly process("overlay.json"); - so a project with nothing
conditional doesn't need a process.js at all, just overlay.json.
Every block's id across everything actually included in one run must be unique -
two partials both included in the same run can't define a block with the same id.
Backgrounds and multi-page
A block carries an optional page number (default 1). At generation time, blocks
are grouped by page, and each page's background resolves from a backgrounds map
(with a "default" fallback) - a single-page layout just sets backgrounds.default
and omits page on every block, which is exactly what a project created via New
Project starts with.
The Layout Editor only shows and edits page 1
- placing content on page 2+ currently means hand-editing the JSON (the Script
Editor works fine for any plain-text file, not
just scripts) and setting
"page": 2(etc.) on those blocks directly.
Asset paths
Any asset path referenced from a layout file ("assets/dealer_logo.png", etc.) is
relative to the project folder - see Assets &
Fonts for adding images/fonts to a project.