Layout tree (as in design/layout.json)
{
"pattern": "hero.claymorphism-blob-type",
"kind": "hero",
"grid": {
"headline": "1-8",
"blob": "9-12",
"card": "1-6",
"stat": "7-9",
"object": "10-12"
},
"slots": [
"headline",
"subhead",
"cta",
"cta2",
"stats[1..1]",
"heroImage"
],
"notes": "The stat repeat sits on accent2 as its own clay card (pad 32 px, number pinned top, label bottom). Blobs hide at phone width.",
"tree": {
"el": "grid",
"gap": 5,
"rowGap": 6,
"align": "stretch",
"children": [
{
"el": "text",
"span": "1-8",
"rowSpan": "1-2",
"alignSelf": "end",
"slot": "headline",
"role": "display",
"step": 8,
"weight": 700,
"tracking": "tight",
"leading": "tight",
"maxCh": 14
},
{
"el": "shape",
"span": "9-12",
"rowSpan": "1-2",
"mobile": "hide",
"alignSelf": "center",
"kind": "blob",
"size": "xl",
"fill": "accent"
},
{
"el": "shape",
"span": "12-12",
"rowSpan": "1-1",
"mobile": "hide",
"alignSelf": "start",
"kind": "circle",
"size": "md",
"fill": "accent2"
},
{
"el": "box",
"span": "1-6",
"rowSpan": "3-3",
"bg": "surface",
"gap": 5,
"pad": [
8,
8
],
"justify": "between",
"children": [
{
"el": "text",
"slot": "subhead",
"role": "lead",
"maxCh": 40
},
{
"el": "box",
"dir": "row",
"gap": 3,
"wrap": true,
"children": [
{
"el": "button",
"slot": "cta",
"variant": "primary",
"size": "lg"
},
{
"el": "button",
"slot": "cta2",
"variant": "secondary",
"size": "lg",
"arrow": true
}
]
}
]
},
{
"el": "repeat",
"span": "7-9",
"rowSpan": "3-3",
"slot": "stats",
"min": 1,
"max": 1,
"layout": "list",
"gap": 0,
"of": {
"el": "box",
"bg": "accent2",
"gap": 6,
"pad": [
8,
6
],
"justify": "between",
"children": [
{
"el": "text",
"slot": "number",
"role": "number",
"step": 8,
"weight": 700,
"tracking": "tight"
},
{
"el": "text",
"slot": "title",
"role": "body",
"weight": 600
}
]
}
},
{
"el": "box",
"span": "10-12",
"rowSpan": "3-3",
"bg": "surfaceAlt",
"pad": [
4,
4
],
"justify": "center",
"children": [
{
"el": "media",
"slot": "heroImage",
"aspect": "1/1",
"treatment": "clay",
"frame": "none"
}
]
}
]
}
}