Layout tree (as in design/layout.json)
{
"pattern": "blog.frosted-card-rail",
"kind": "blog",
"grid": {
"header": "1-12",
"rail": "full"
},
"slots": [
"title",
"cta",
"posts[3..6]"
],
"tree": {
"el": "box",
"gap": 5,
"children": [
{
"el": "box",
"mobile": "keep",
"dir": "row",
"gap": 3,
"align": "end",
"justify": "between",
"wrap": true,
"children": [
{
"el": "text",
"slot": "title",
"role": "h2",
"step": 4,
"weight": 600,
"maxCh": 20
},
{
"el": "button",
"slot": "cta",
"variant": "ghost",
"arrow": true
}
]
},
{
"el": "repeat",
"slot": "posts",
"min": 3,
"max": 6,
"layout": "carousel",
"gap": 3,
"of": {
"el": "box",
"bg": "surface",
"gap": 2,
"pad": [
2,
2
],
"border": "all",
"children": [
{
"el": "media",
"slot": "image",
"aspect": "4/3",
"treatment": "photo",
"frame": "rounded"
},
{
"el": "box",
"gap": 1,
"pad": [
1,
2
],
"children": [
{
"el": "text",
"color": "textMuted",
"slot": "meta",
"role": "small",
"font": "mono"
},
{
"el": "text",
"slot": "title",
"role": "h4",
"weight": 600
}
]
}
]
}
}
]
}
}