cta.broadsheet-subscribe-coupon · Subscribe coupon

A cta pattern from Broadsheet Newspaper, drawn alone below with this design's tokens and sample copy. Used in this design on: home page, section 8. Give the section root data-pattern="cta.broadsheet-subscribe-coupon". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A boxed coupon on 3–10 with a dashed border: caps flag, a bold serif head, an italic line, an inline email form and a small mono 'clip and send' note.
Slots
eyebrow, headline, body, newsletter, meta
Grid areas
coupon 3-10 (12-column grid, 1-based inclusive spans)
Tokens
bg #F4F0E6 · text #1B1A17 · heading #0D0C0A · accent #872824 · accent2 #BE6D65 · UnifrakturMaguntia / Newsreader · radius 0px · space unit 6px (full list in design/tokens.json)
Section
vertical padding step 8

Pattern notes

  • A coupon on 3–10 with a 1 px **dashed** border (cut here): a centred small-caps flag, a 2 px rule, a bold serif head at step 4, an italic line, an inline email form (underlined field + one filled ink button) and a muted mono small-caps note ("Clip and send — or type it in").

Brand & product studio

Have a hard thing to explain?

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.

you@example.com
Subscribe

Booking projects from June 2026

Layout tree (as in design/layout.json)
{
  "pattern": "cta.broadsheet-subscribe-coupon",
  "kind": "cta",
  "grid": {
    "coupon": "3-10"
  },
  "slots": [
    "eyebrow",
    "headline",
    "body",
    "newsletter",
    "meta"
  ],
  "tree": {
    "el": "grid",
    "gap": 3,
    "children": [
      {
        "el": "box",
        "span": "3-10",
        "gap": 2,
        "pad": [
          4,
          4
        ],
        "align": "center",
        "border": "all",
        "children": [
          {
            "el": "text",
            "slot": "eyebrow",
            "role": "label",
            "align": "center",
            "transform": "uppercase",
            "weight": 700,
            "tracking": "wide"
          },
          {
            "el": "divider",
            "weight": 2
          },
          {
            "el": "text",
            "slot": "headline",
            "role": "h2",
            "step": 4,
            "align": "center",
            "weight": 700,
            "leading": "tight",
            "maxCh": 26,
            "font": "body"
          },
          {
            "el": "text",
            "slot": "body",
            "role": "small",
            "align": "center",
            "italic": true,
            "maxCh": 56,
            "font": "body"
          },
          {
            "el": "form",
            "slot": "newsletter",
            "fields": [
              "email"
            ],
            "inline": true
          },
          {
            "el": "text",
            "color": "textMuted",
            "slot": "meta",
            "role": "small",
            "align": "center",
            "transform": "uppercase",
            "tracking": "wide",
            "font": "mono"
          }
        ]
      }
    ]
  }
}
Component example: reference/cta.broadsheet-subscribe-coupon.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>cta.broadsheet-subscribe-coupon — Broadsheet Newspaper</title>
<link rel="stylesheet" href="base.css">
<style>
  section { padding: calc(var(--unit) * 8) 0; }
  .coupon { grid-column: 3 / 11; border: 1px dashed var(--rule); padding: calc(var(--unit) * 4); display: grid; gap: calc(var(--unit) * 2); justify-items: center; text-align: center; }
  .coupon .r2 { width: 100%; }
  .coupon h2 { font-size: var(--step-4); max-width: 26ch; }
  .coupon .note { font-style: italic; max-width: 56ch; }
  form { display: flex; gap: 12px; width: min(100%, 520px); }
  input { flex: 1; background: transparent; border: 0; border-bottom: 1px solid var(--rule); padding: 10px 2px; font: inherit; color: var(--ink); }
  button { background: var(--heading); color: var(--bg); border: 0; padding: 10px 18px; font: 700 12px/1 var(--font-body); text-transform: uppercase; letter-spacing: 0.12em; cursor: pointer; }
  @media (max-width: 640px) { .coupon h2 { font-size: var(--step-2); } form { flex-direction: column; } }
</style>
</head>
<body>
<section class="wrap">
  <div class="grid">
    <div class="coupon">
      <p class="caps" style="font-weight:700">Special offer for readers</p>
      <div class="r2"></div>
      <h2 class="head">Three months of the Gazette for the price of one</h2>
      <p class="note">Delivered to your door before seven, every morning, or read the full edition online from midnight.</p>
      <form><label for="e" hidden>Email address</label><input id="e" type="email" placeholder="Your email address" required><button type="submit">Subscribe</button></form>
      <p class="caps mono muted">Clip and send — or type it in</p>
    </div>
  </div>
</section>
</body>
</html>

Other patterns in this design

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