features.neo-grotesk-spec-sheet · Spec sheet

A features pattern from Neo-grotesk Minimal, drawn alone below with this design's tokens and sample copy. Used in this design on: home page, section 3. Give the section root data-pattern="features.neo-grotesk-spec-sheet". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A tiny label on 1–2 and a short title on 7–12; features as hairline-ruled rows on 7–12, label on the first third and description on the rest, all small.
Slots
sectionLabel, title, features[4..8]
Grid areas
label 1-2 · title 7-12 · rows 7-12 (12-column grid, 1-based inclusive spans)
Tokens
bg #FAFAFA · text #1F1F1F · heading #0F0F0F · accent #F95620 · accent2 #9E2C00 · Geist / Geist · radius 2px · space unit 8px (full list in design/tokens.json)

Pattern notes

  • Columns 1–2: a tiny uppercase label. Columns 7–12: a title at step 2, weight 500, then four to eight feature rows separated by hairlines. Each row is a 6-column grid: the feature name (small, weight 500) on 1–2 and its description (small, muted, max 46 ch) on 3–6. Columns 3–6 of the page stay empty. At phone width the label sits above the title and the rows keep their two columns.

What you get

What we do

Positioning

Find the one sentence your best customers already believe.

Identity systems

Logos, type and colour that work on a factory floor and a pitch deck.

Websites

Fast, editable sites built on the CMS your team already knows.

Sales enablement

Decks, one-pagers and demos your reps actually use.

Product naming

Names that survive trademark search and a noisy trade show.

Brand governance

Guidelines as a living site, not a forgotten PDF.

Layout tree (as in design/layout.json)
{
  "pattern": "features.neo-grotesk-spec-sheet",
  "kind": "features",
  "grid": {
    "label": "1-2",
    "title": "7-12",
    "rows": "7-12"
  },
  "slots": [
    "sectionLabel",
    "title",
    "features[4..8]"
  ],
  "tree": {
    "el": "grid",
    "gap": 3,
    "rowGap": 4,
    "align": "start",
    "children": [
      {
        "el": "text",
        "span": "1-2",
        "slot": "sectionLabel",
        "role": "eyebrow",
        "step": -1,
        "transform": "uppercase",
        "tracking": "wide"
      },
      {
        "el": "box",
        "span": "7-12",
        "gap": 4,
        "children": [
          {
            "el": "text",
            "slot": "title",
            "role": "h3",
            "step": 2,
            "weight": 500,
            "tracking": "tight"
          },
          {
            "el": "repeat",
            "slot": "features",
            "min": 4,
            "max": 8,
            "layout": "list",
            "gap": 0,
            "divider": true,
            "of": {
              "el": "grid",
              "mobile": "keep",
              "cols": 6,
              "gap": 2,
              "pad": [
                2,
                0
              ],
              "children": [
                {
                  "el": "text",
                  "span": "1-2",
                  "slot": "title",
                  "role": "small",
                  "weight": 500
                },
                {
                  "el": "text",
                  "span": "3-6",
                  "color": "textMuted",
                  "slot": "body",
                  "role": "small"
                }
              ]
            }
          }
        ]
      }
    ]
  }
}
Component example: reference/features.neo-grotesk-spec-sheet.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>features.neo-grotesk-spec-sheet — Neo-grotesk Minimal</title>
<link rel="stylesheet" href="base.css">
<style>
  section { padding: var(--section) 0; } section .grid { align-items: start; }
  .label { grid-column: 1 / 3; }
  .sheet { grid-column: 7 / 13; } .sheet h2 { font-size: var(--step-2); margin-bottom: 32px; }
  .row { display: grid; grid-template-columns: 2fr 4fr; gap: 16px; padding: 16px 0; border-top: 1px solid var(--hairline); }
  .row:last-child { border-bottom: 1px solid var(--hairline); }
  .row dt { font-weight: 500; } .row dd { margin: 0; color: var(--muted); max-width: 46ch; }
</style>
</head>
<body>
<section class="wrap">
  <div class="grid">
    <p class="label">Specification</p>
    <div class="sheet">
      <h2>What a deploy includes</h2>
      <dl class="small">
        <div class="row"><dt>Build cache</dt><dd>Content-addressed, shared across branches. Cold builds under 40 seconds.</dd></div>
        <div class="row"><dt>Rollbacks</dt><dd>Every deploy is immutable. Roll back to any of the last 500 in one command.</dd></div>
        <div class="row"><dt>Logs</dt><dd>Structured, searchable for 30 days, streamed to your own bucket if you prefer.</dd></div>
        <div class="row"><dt>Regions</dt><dd>Oslo, Frankfurt, Virginia and Singapore. Pin a project to one or run in all four.</dd></div>
      </dl>
    </div>
  </div>
</section>
</body>
</html>

Other patterns in this design

Whole design · Spec bundle (JSON) · On the style page