Layout tree (as in design/layout.json)
{
"pattern": "contact.luxury-boutique-addresses",
"kind": "contact",
"grid": {
"title": "1-3",
"boutiques": "5-12",
"form": "5-10"
},
"slots": [
"title",
"body",
"items[2..4]",
"contact"
],
"tree": {
"el": "grid",
"gap": 4,
"rowGap": 10,
"children": [
{
"el": "box",
"span": "1-3",
"rowSpan": "1-2",
"alignSelf": "start",
"gap": 3,
"children": [
{
"el": "text",
"slot": "title",
"role": "h2",
"step": 5,
"weight": 400,
"italic": true,
"maxCh": 12
},
{
"el": "text",
"color": "textMuted",
"slot": "body",
"role": "body",
"maxCh": 30
}
]
},
{
"el": "repeat",
"span": "5-12",
"rowSpan": "1-1",
"slot": "items",
"min": 2,
"max": 4,
"layout": "grid",
"cols": 2,
"gap": 5,
"of": {
"el": "box",
"gap": 1,
"pad": [
3,
0
],
"border": "top",
"children": [
{
"el": "text",
"slot": "title",
"role": "label",
"transform": "uppercase",
"tracking": "wide"
},
{
"el": "text",
"slot": "body",
"role": "body",
"maxCh": 30
},
{
"el": "text",
"color": "textMuted",
"slot": "meta",
"role": "small"
}
]
}
},
{
"el": "form",
"span": "5-10",
"rowSpan": "2-2",
"slot": "contact",
"fields": [
"name",
"email",
"date"
]
}
]
}
}