Layout tree (as in design/layout.json)
{
"pattern": "features.hardware-keypad",
"kind": "features",
"grid": {
"intro": "1-4",
"keys": "5-12"
},
"slots": [
"label",
"title",
"body",
"cta2",
"features[6..6]"
],
"tree": {
"el": "grid",
"gap": 6,
"align": "stretch",
"children": [
{
"el": "box",
"span": "1-4",
"gap": 5,
"justify": "between",
"children": [
{
"el": "box",
"gap": 3,
"children": [
{
"el": "text",
"color": "link",
"slot": "label",
"role": "label",
"font": "mono"
},
{
"el": "text",
"slot": "title",
"role": "h2",
"step": 5,
"weight": 600,
"tracking": "tight",
"leading": "tight"
},
{
"el": "text",
"color": "textMuted",
"slot": "body",
"role": "body",
"maxCh": 40
}
]
},
{
"el": "button",
"slot": "cta2",
"variant": "secondary",
"arrow": true
}
]
},
{
"el": "repeat",
"span": "5-12",
"slot": "features",
"min": 6,
"max": 6,
"layout": "grid",
"cols": 3,
"phoneCols": 2,
"gap": 3,
"of": {
"el": "box",
"bg": "surface",
"gap": 6,
"pad": [
4,
4
],
"justify": "between",
"border": "all",
"children": [
{
"el": "box",
"mobile": "keep",
"dir": "row",
"gap": 2,
"justify": "between",
"children": [
{
"el": "text",
"color": "textMuted",
"slot": "number",
"role": "label",
"font": "mono"
},
{
"el": "text",
"color": "link",
"slot": "meta",
"role": "label",
"font": "mono"
}
]
},
{
"el": "box",
"gap": 1,
"children": [
{
"el": "text",
"slot": "title",
"role": "h4",
"step": 1,
"weight": 600,
"leading": "tight"
},
{
"el": "text",
"color": "textMuted",
"slot": "body",
"role": "small"
}
]
}
]
}
}
]
}
}