Alpha: Ships on npm at 7.0.0-alpha.07.0.0-alpha.0

pricing

One to four plans under a section head, one of them featured.

View as JSON

Carried by the api-product and directory-product Templates. Seen on pages/harbor/pricing.json, section 1.

Variant
From Harbor tides › pricingquaypointOpen the frame
pages/harbor/pricing.json, section 1
{
  "kind": "section",
  "shell": { "inset": "contained", "density": "section" },
  "block": {
    "type": "pricing",
    "head": { "eyebrow": "Plans", "title": "Priced by the call." },
    "layout": "ruled",
    "tiers": [
      {
        "name": "Deck",
        "price": "$0",
        "note": "a month",
        "features": ["1,000 calls a month", "Every berth", "Fourteen days ahead"],
        "cta": "Start free",
        "href": "/contact"
      },
      {
        "name": "Bridge",
        "price": "$49",
        "note": "a month",
        "features": ["50,000 calls a month", "Draft windows", "Webhook alerts"],
        "cta": "Choose Bridge",
        "href": "/contact",
        "featured": true
      },
      {
        "name": "Harbor",
        "price": "$490",
        "note": "a month",
        "features": ["1,000,000 calls a month", "Every Bridge feature", "A named harbor master"],
        "cta": "Talk to the harbor",
        "href": "/contact"
      }
    ],
    "featuredBadge": "Most chosen"
  }
}

Smallest that parses

{
  "type": "pricing",
  "head": { "eyebrow": "Plans", "title": "Priced by the call." },
  "layout": "ruled",
  "tiers": [
    {
      "name": "Deck",
      "price": "$0",
      "features": ["1,000 calls a month"],
      "cta": "Start free",
      "href": "/contact"
    }
  ],
  "featuredBadge": "Most chosen"
}

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.

PropType and boundRequired
headobjectyes
head.eyebrowstring ≤28yes
head.titlestring ≤72no
head.ledestring ≤300no
head.maxstring (pattern)no
head.ledeMaxstring (pattern)no
head.balancebooleanno
head.scale"compact" | "large"no
head.tagstring ≤8no
head.layout"split"no
layout"ruled" | "cards"yes
tiers1–4 × objectyes
tiers[].namestring ≤16yes
tiers[].pricestring ≤16yes
tiers[].notestring ≤24no
tiers[].descstring ≤80no
tiers[].features1–10 × string ≤56yes
tiers[].ctastring ≤40yes
tiers[].hrefstring ≤160yes
tiers[].featuredbooleanno
featuredBadgestring ≤16yes
notestring ≤120no

Use instead