Layout tree (as in design/layout.json)
{
"pattern": "cta.risograph-tear-off",
"kind": "cta",
"grid": {
"headline": "1-9",
"action": "10-12"
},
"slots": [
"headline",
"body",
"cta",
"items[6..8]"
],
"notes": "The tabs are narrow boxes with a left rule; on desktop rotate their text 90° like a real tear-off flyer, flat at phone width (scroll-x).",
"bg": "surfaceAlt",
"tree": {
"el": "box",
"gap": 4,
"children": [
{
"el": "grid",
"gap": 3,
"align": "end",
"children": [
{
"el": "text",
"span": "1-9",
"slot": "headline",
"role": "display",
"step": 6,
"transform": "uppercase",
"leading": "tight",
"maxCh": 16
},
{
"el": "box",
"span": "10-12",
"gap": 2,
"children": [
{
"el": "text",
"slot": "body",
"role": "small",
"maxCh": 32
},
{
"el": "button",
"slot": "cta",
"variant": "primary",
"arrow": true
}
]
}
]
},
{
"el": "divider",
"weight": 2
},
{
"el": "repeat",
"mobile": "scroll-x",
"slot": "items",
"min": 6,
"max": 8,
"layout": "row",
"gap": 0,
"of": {
"el": "box",
"pad": [
3,
2
],
"border": "left",
"children": [
{
"el": "text",
"slot": "title",
"role": "label",
"font": "mono"
}
]
}
}
]
}
}