Layout tree (as in design/layout.json)
{
"pattern": "gallery.collage-overlap-stack",
"kind": "gallery",
"grid": {
"a": "1-5",
"b": "4-8",
"c": "8-12",
"d": "9-12",
"title": "1-7",
"caption": "9-12",
"triangle": "1-2"
},
"slots": [
"gallery1",
"gallery2",
"gallery3",
"gallery4",
"title",
"caption"
],
"notes": "Overlaps are intentional; later items sit on top. On phones the photos stack at full width and the triangle hides.",
"tree": {
"el": "grid",
"gap": 2,
"rowGap": 2,
"align": "start",
"children": [
{
"el": "text",
"span": "1-7",
"rowSpan": "1-1",
"alignSelf": "start",
"slot": "title",
"role": "h2",
"step": 4,
"weight": 400,
"maxCh": 12,
"rotate": -4
},
{
"el": "text",
"span": "9-12",
"rowSpan": "1-1",
"alignSelf": "end",
"slot": "caption",
"role": "body",
"font": "mono"
},
{
"el": "media",
"span": "1-5",
"rowSpan": "2-4",
"slot": "gallery1",
"aspect": "3/4",
"treatment": "photo",
"frame": "offset-shadow"
},
{
"el": "media",
"span": "4-8",
"rowSpan": "3-6",
"slot": "gallery2",
"aspect": "1/1",
"treatment": "photo",
"frame": "circle"
},
{
"el": "media",
"span": "8-12",
"rowSpan": "2-3",
"slot": "gallery3",
"aspect": "16/9",
"treatment": "photo",
"frame": "border"
},
{
"el": "media",
"span": "9-12",
"rowSpan": "4-6",
"slot": "gallery4",
"aspect": "4/5",
"treatment": "duotone",
"frame": "arch"
},
{
"el": "shape",
"span": "1-2",
"rowSpan": "5-6",
"mobile": "hide",
"alignSelf": "end",
"kind": "triangle",
"size": "lg",
"fill": "accent2"
}
]
}
}