Alpha: Ships on npm at 7.0.0-alpha.07.0.0-alpha.0
feature-grid
A section head over a hairline grid of two, three, four, six or eight cells.
Carried by the api-product Template. Seen on pages/harbor/home.json, section 3.
Count
{
"kind": "section",
"shell": {
"inset": "contained",
"density": "section"
},
"block": {
"type": "feature-grid",
"cellHead": "icon",
"head": {
"eyebrow": "One call returns",
"title": "The whole tide, per berth."
},
"items": [
{
"icon": "waves",
"title": "High and low water",
"text": "Times and heights for 14 days, at the berth itself."
},
{
"icon": "anchor",
"title": "Keel clearance",
"text": "The hours a given draft clears, from the charted depth."
},
{
"icon": "map-pin",
"title": "Datum named",
"text": "Every height names its chart datum."
}
]
}
}
{
"title": "feature-grid",
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "feature-grid"
},
"head": {
"type": "object",
"properties": {
"eyebrow": {
"type": "string",
"minLength": 1,
"maxLength": 28
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 72
},
"lede": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"max": {
"type": "string",
"pattern": "^(none|\\d+(\\.\\d+)?(em|ch|px))$"
},
"ledeMax": {
"type": "string",
"pattern": "^(none|\\d+(\\.\\d+)?(em|ch|px))$"
},
"balance": {
"type": "boolean"
},
"scale": {
"type": "string",
"enum": [
"compact",
"large"
]
},
"tag": {
"type": "string",
"minLength": 1,
"maxLength": 8
},
"layout": {
"type": "string",
"enum": [
"split"
]
}
},
"required": [
"eyebrow"
],
"additionalProperties": false
},
"aside": {
"type": "object",
"properties": {
"command": {
"type": "string",
"minLength": 1,
"maxLength": 12
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 40
}
},
"required": [
"command",
"note"
],
"additionalProperties": false
},
"cellHead": {
"type": "string",
"enum": [
"label",
"icon-index",
"icon-label",
"icon",
"none"
]
},
"dense": {
"type": "boolean"
},
"items": {
"minItems": 2,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": {
"type": "string",
"enum": [
"activity",
"anchor",
"arrow-right",
"arrow-up-right",
"badge-check",
"bell",
"blocks",
"bot",
"check",
"chevron-down",
"chevron-left",
"chevron-right",
"clock",
"code",
"compass",
"copy",
"credit-card",
"database",
"file-code-2",
"file-text",
"files",
"film",
"fingerprint",
"gauge",
"git-commit-horizontal",
"globe",
"history",
"key-round",
"landmark",
"layers",
"layout-grid",
"library",
"link",
"list",
"map-pin",
"menu",
"message-square",
"mic",
"plug",
"radar",
"refresh-cw",
"search",
"shield-check",
"ship",
"shopping-cart",
"sliders-horizontal",
"sparkles",
"terminal",
"ticket",
"waves",
"webhook",
"x"
]
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 24
},
"index": {
"type": "string",
"minLength": 1,
"maxLength": 2
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"href": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"linkLabel": {
"type": "string",
"minLength": 1,
"maxLength": 24
}
},
"additionalProperties": false
}
}
},
"required": [
"type",
"cellHead",
"items"
],
"additionalProperties": false
}{
"kind": "section",
"shell": { "inset": "contained", "density": "section" },
"block": {
"type": "feature-grid",
"head": { "eyebrow": "One call returns", "title": "The whole tide, per berth." },
"cellHead": "icon",
"items": [
{ "icon": "waves", "title": "High and low water", "text": "Times and heights for 14 days, at the berth itself." },
{ "icon": "anchor", "title": "Keel clearance", "text": "The hours a given draft clears, from the charted depth." },
{ "icon": "map-pin", "title": "Datum named", "text": "Every height names its chart datum." }
]
}
}Smallest that parses
{
"type": "feature-grid",
"cellHead": "icon",
"items": [
{ "title": "High and low water" },
{ "title": "Keel clearance" }
]
}Props
From @mdxui/site@7.0.0-alpha.0. A count reads as min–max × item; a string bound is its maximum length in characters, and links its refusal.
| Prop | Type and bound | Required |
|---|---|---|
head | object | no |
head.eyebrow | string ≤28 | yes |
head.title | string ≤72 | no |
head.lede | string ≤300 | no |
head.max | string (pattern) | no |
head.ledeMax | string (pattern) | no |
head.balance | boolean | no |
head.scale | "compact" | "large" | no |
head.tag | string ≤8 | no |
head.layout | "split" | no |
aside | object | no |
aside.command | string ≤12 | yes |
aside.note | string ≤40 | yes |
cellHead | "label" | "icon-index" | "icon-label" | "icon" | "none" | yes |
dense | boolean | no |
items | 2–8 × object | yes |
items[].icon | icon or mark name (52) | no |
items[].label | string ≤24 | no |
items[].index | string ≤2 | no |
items[].title | string ≤40 | no |
items[].text | string ≤200 | no |
items[].href | string ≤160 | no |
items[].linkLabel | string ≤24 | no |
Use instead
feature-split: three features beside one previewbento: each claim with its own preview