Layout tree (as in design/layout.json)
{
"pattern": "features.bauhaus-shape-key",
"kind": "features",
"grid": {
"title": "1-6",
"features": "1-12"
},
"slots": [
"title",
"features[4..6]"
],
"notes": "Cycle the shape kind and fill per item: circle/accent, square/accent2, triangle/yellow, then repeat.",
"tree": {
"el": "box",
"gap": 6,
"children": [
{
"el": "grid",
"gap": 4,
"children": [
{
"el": "text",
"span": "1-6",
"slot": "title",
"role": "h2",
"step": 5,
"transform": "lowercase",
"weight": 700,
"maxCh": 24
}
]
},
{
"el": "repeat",
"slot": "features",
"min": 4,
"max": 6,
"layout": "grid",
"cols": 2,
"gap": 6,
"of": {
"el": "grid",
"mobile": "keep",
"cols": 4,
"gap": 3,
"children": [
{
"el": "shape",
"span": "1-1",
"kind": "circle",
"size": "md",
"fill": "accent"
},
{
"el": "box",
"span": "2-4",
"gap": 1,
"children": [
{
"el": "text",
"slot": "title",
"role": "h3",
"step": 3,
"transform": "lowercase"
},
{
"el": "text",
"slot": "body",
"role": "body",
"maxCh": 44
}
]
}
]
}
}
]
}
}Component example: reference/features.bauhaus-shape-key.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>features.bauhaus-shape-key — Bauhaus</title>
<link rel="stylesheet" href="base.css">
<style>
section { padding: 112px 0; }
h2 { grid-column: 1 / 7; font-size: var(--step-5); max-width: 24ch; margin-bottom: 48px; }
.features { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.feature { display: grid; grid-template-columns: 48px 1fr; gap: 24px; align-items: start; }
.feature > span { width: 48px; }
.feature h3 { font-size: var(--step-2); margin-bottom: 8px; }
.feature p { max-width: 44ch; }
@media (max-width: 640px) { .features { grid-template-columns: 1fr; } h2 { font-size: var(--step-3); } }
</style>
</head>
<body>
<section class="wrap">
<div class="grid"><h2>what the workshop does</h2></div>
<div class="features">
<div class="feature"><span class="circle blue"></span><div><h3>furniture</h3><p>Tubular-steel chairs and tables, bent and welded in-house, finished in chrome or black.</p></div></div>
<div class="feature"><span class="square red"></span><div><h3>lighting</h3><p>Opal-glass lamps with nickel fittings, built for desks, ceilings and long hallways.</p></div></div>
<div class="feature"><span class="triangle yellow"></span><div><h3>textiles</h3><p>Hand-woven wall hangings and upholstery in wool and linen, dyed in the primaries.</p></div></div>
<div class="feature"><span class="circle blue"></span><div><h3>courses</h3><p>A twelve-week preliminary course: colour, material and form, taught at the bench.</p></div></div>
</div>
</section>
</body>
</html>