Layout tree (as in design/layout.json)
{
"pattern": "features.terminal-man-page",
"kind": "features",
"grid": {
"heading": "1-12",
"body": "2-10"
},
"slots": [
"sectionLabel",
"title",
"features[4..8]"
],
"tree": {
"el": "grid",
"gap": 4,
"rowGap": 6,
"children": [
{
"el": "text",
"span": "1-12",
"color": "link",
"slot": "sectionLabel",
"role": "label",
"transform": "uppercase",
"weight": 700
},
{
"el": "text",
"span": "2-10",
"slot": "title",
"role": "h2",
"step": 4,
"maxCh": 36
},
{
"el": "repeat",
"span": "2-12",
"slot": "features",
"min": 4,
"max": 8,
"layout": "grid",
"cols": 2,
"gap": 6,
"of": {
"el": "box",
"gap": 1,
"children": [
{
"el": "text",
"color": "link",
"slot": "title",
"role": "h4"
},
{
"el": "box",
"pad": [
0,
6
],
"children": [
{
"el": "text",
"slot": "body",
"role": "body",
"maxCh": 56
}
]
}
]
}
}
]
}
}Component example: reference/features.terminal-man-page.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>features.terminal-man-page — Terminal Mono</title>
<link rel="stylesheet" href="base.css">
<style>
section { padding: var(--section) 0; }
.man { row-gap: 24px; }
.man h2 { grid-column: 1 / -1; text-transform: uppercase; font-size: var(--base); color: var(--link); }
.man .summary { grid-column: 2 / 11; font: 700 var(--step-4)/1.15 var(--font); color: var(--heading); max-width: 36ch; }
.man .opts { grid-column: 2 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: 24px var(--gutter); }
dt { color: var(--link); font-weight: 700; font-size: var(--step-1); }
dd { margin: 4px 0 0; padding-left: 6ch; max-width: 56ch; }
@media (max-width: 640px) { .man .opts { grid-template-columns: 1fr; } dd { padding-left: 4ch; } }
</style>
</head>
<body>
<section class="wrap">
<div class="man grid">
<h2>Options</h2>
<p class="summary">tidewave sync [options] — keep every replica in step with the primary database.</p>
<div class="opts">
<dl><dt>--offline-first</dt><dd>Write to the local replica and queue changes until the network returns.</dd></dl>
<dl><dt>--merge <strategy></dt><dd>Resolve conflicting writes with last-writer-wins, CRDT or your own function.</dd></dl>
<dl><dt>-w, --watch</dt><dd>Stream changes from the primary and apply them as they land, row by row.</dd></dl>
<dl><dt>--encrypt</dt><dd>Encrypt every replica at rest with a per-device key; the server never sees it.</dd></dl>
<dl><dt>--since <lsn></dt><dd>Resume a replica from a log position instead of copying the whole table again.</dd></dl>
<dl><dt>-q, --quiet</dt><dd>Print only conflicts and errors; everything else goes to the sync log.</dd></dl>
</div>
</div>
</section>
</body>
</html>