Layout tree (as in design/layout.json)
{
"pattern": "features.scandinavian-soft-alternating-rooms",
"kind": "features",
"grid": {
"label": "2-7",
"image": "2-6",
"text": "8-11"
},
"slots": [
"sectionLabel",
"title",
"features[2..4]"
],
"notes": "Even rows mirror (alternate: mirror): image 7–11, text 2–5. Never put features in cards.",
"tree": {
"el": "box",
"gap": 10,
"children": [
{
"el": "grid",
"gap": 4,
"rowGap": 2,
"children": [
{
"el": "text",
"span": "2-7",
"color": "textMuted",
"slot": "sectionLabel",
"role": "eyebrow"
},
{
"el": "text",
"span": "2-7",
"slot": "title",
"role": "h2",
"weight": 400,
"maxCh": 22
}
]
},
{
"el": "repeat",
"slot": "features",
"min": 2,
"max": 4,
"layout": "list",
"gap": 8,
"alternate": "mirror",
"of": {
"el": "grid",
"gap": 6,
"align": "center",
"children": [
{
"el": "media",
"span": "2-6",
"slot": "image",
"aspect": "4/3",
"treatment": "photo",
"frame": "rounded"
},
{
"el": "box",
"span": "8-11",
"gap": 2,
"children": [
{
"el": "text",
"color": "textMuted",
"slot": "number",
"role": "label"
},
{
"el": "text",
"slot": "title",
"role": "h3",
"weight": 400
},
{
"el": "text",
"slot": "body",
"role": "body",
"maxCh": 44
},
{
"el": "button",
"slot": "cta",
"variant": "link",
"arrow": true
}
]
}
]
}
}
]
}
}