stats.claymorphism-scoreboard · Scoreboard

A stats pattern from Claymorphism, drawn alone below with this design's tokens and sample copy. Used in this design on: home page, section 5; about page, section 2. Give the section root data-pattern="stats.claymorphism-scoreboard". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
One wide surfaceAlt clay board: h2 at step 5 and a line in 1–4, four white clay score pills in a 2×2 on 5–12 with numbers at step 8.
Slots
title, body, stats[4..4]
Grid areas
intro 1-4 · scores 5-12 (12-column grid, 1-based inclusive spans)
Tokens
bg #F2EDFF · text #2B2340 · heading #1E1733 · accent #FF64AC · accent2 #00C09F · Fredoka / Nunito · radius 32px · space unit 8px (full list in design/tokens.json)

Pattern notes

  • One wide surfaceAlt clay board (padding 80 px): h2 at step 5 and a line in 1–4, and a 2×2 of white score pills in 5–12, each a number at step 8 (weight 700, tight, tabular), a bold label and a muted note.

Twelve years in numbers

Each engagement starts with a two-week audit: interviews with customers, sales and the people who build the product. The brief writes itself after that.

140+

launches shipped

Since 2014

12

years independent

2025

9 of 10

clients return

Audited

31%

average lift in demo requests

Last 12 months

Layout tree (as in design/layout.json)
{
  "pattern": "stats.claymorphism-scoreboard",
  "kind": "stats",
  "grid": {
    "intro": "1-4",
    "scores": "5-12"
  },
  "slots": [
    "title",
    "body",
    "stats[4..4]"
  ],
  "tree": {
    "el": "box",
    "bg": "surfaceAlt",
    "pad": [
      10,
      10
    ],
    "children": [
      {
        "el": "grid",
        "gap": 8,
        "align": "center",
        "children": [
          {
            "el": "box",
            "span": "1-4",
            "gap": 3,
            "justify": "center",
            "children": [
              {
                "el": "text",
                "slot": "title",
                "role": "h2",
                "step": 5,
                "weight": 700,
                "tracking": "tight",
                "leading": "tight",
                "maxCh": 16
              },
              {
                "el": "text",
                "slot": "body",
                "role": "body",
                "maxCh": 32
              }
            ]
          },
          {
            "el": "repeat",
            "span": "5-12",
            "slot": "stats",
            "min": 4,
            "max": 4,
            "layout": "grid",
            "cols": 2,
            "phoneCols": 2,
            "gap": 4,
            "of": {
              "el": "box",
              "bg": "surface",
              "gap": 1,
              "pad": [
                6,
                6
              ],
              "children": [
                {
                  "el": "text",
                  "slot": "number",
                  "role": "number",
                  "step": 8,
                  "weight": 700,
                  "tracking": "tight"
                },
                {
                  "el": "text",
                  "slot": "title",
                  "role": "body",
                  "weight": 600
                },
                {
                  "el": "text",
                  "color": "textMuted",
                  "slot": "meta",
                  "role": "small"
                }
              ]
            }
          }
        ]
      }
    ]
  }
}
Component example: reference/stats.claymorphism-scoreboard.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>stats.claymorphism-scoreboard — Claymorphism</title>
<link rel="stylesheet" href="base.css">
<style>
  section { padding: var(--section) 0; }
  .board { padding: 80px; }
  .board .grid { align-items: center; gap: 64px 24px; }
  .intro { grid-column: 1 / 5; display: flex; flex-direction: column; gap: 16px; }
  .intro h2 { font-size: var(--step-5); max-width: 16ch; }
  .scores { grid-column: 5 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
  .score { padding: 48px; }
  .score .num { font-size: var(--step-8); display: block; margin-bottom: 8px; }
  .score strong { display: block; }
  @media (max-width: 640px) { .board { padding: 32px 20px; } .score { padding: 24px 20px; } .score .num { font-size: 44px; } }
</style>
</head>
<body>
<section class="wrap">
  <div class="clay alt slab board">
    <div class="grid">
      <div class="intro"><h2>Small coins, big wins.</h2><p>Families saved more in their first month than in the whole year before.</p></div>
      <div class="scores">
        <div class="clay score"><span class="num">£38</span><strong>saved per kid</strong><span class="small muted">first month, median</span></div>
        <div class="clay score"><span class="num">92%</span><strong>reach a goal</strong><span class="small muted">within 90 days</span></div>
        <div class="clay score"><span class="num">6</span><strong>jars on average</strong><span class="small muted">per family</span></div>
        <div class="clay score"><span class="num">4.9</span><strong>App Store</strong><span class="small muted">18,400 ratings</span></div>
      </div>
    </div>
  </div>
</section>
</body>
</html>

Other patterns in this design

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