cta.scandinavian-soft-newsletter-nook · Newsletter nook

A cta pattern from Scandinavian Soft, drawn alone below with this design's tokens and sample copy. Used in this design on: home page, section 6. Give the section root data-pattern="cta.scandinavian-soft-newsletter-nook". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A rounded surfaceAlt panel on 1–12: headline at step 5 and a short line of body on its left half, the inline email form on its right half.
Slots
headline, body, newsletter
Grid areas
nook 1-12 (12-column grid, 1-based inclusive spans)
Tokens
bg #FDF9F4 · text #241E16 · heading #150E06 · accent #69A382 · accent2 #5DA29C · Nunito / Nunito Sans · radius 16px · space unit 8px (full list in design/tokens.json)

Pattern notes

  • A rounded panel in surfaceAlt across columns 1–12 (inside the page grid, never full-bleed), padded 96 px top and bottom: the headline at step 5, weight 400, and a lead-size muted line on the panel's left half, an inline email form vertically centred on 8–12. Phone: headline, line, form stacked.

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
Layout tree (as in design/layout.json)
{
  "pattern": "cta.scandinavian-soft-newsletter-nook",
  "kind": "cta",
  "grid": {
    "nook": "1-12"
  },
  "slots": [
    "headline",
    "body",
    "newsletter"
  ],
  "tree": {
    "el": "grid",
    "gap": 4,
    "children": [
      {
        "el": "grid",
        "span": "1-12",
        "bg": "surfaceAlt",
        "gap": 4,
        "rowGap": 4,
        "pad": [
          12,
          8
        ],
        "align": "center",
        "children": [
          {
            "el": "box",
            "span": "1-6",
            "gap": 3,
            "children": [
              {
                "el": "text",
                "slot": "headline",
                "role": "h2",
                "step": 5,
                "weight": 400,
                "leading": "tight",
                "maxCh": 18
              },
              {
                "el": "text",
                "color": "textMuted",
                "slot": "body",
                "role": "lead",
                "maxCh": 40
              }
            ]
          },
          {
            "el": "form",
            "span": "8-12",
            "alignSelf": "center",
            "slot": "newsletter",
            "fields": [
              "email"
            ],
            "inline": true
          }
        ]
      }
    ]
  }
}
Component example: reference/cta.scandinavian-soft-newsletter-nook.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>cta.scandinavian-soft-newsletter-nook — Scandinavian Soft</title>
<link rel="stylesheet" href="base.css">
<style>
  section { padding: var(--section) 0; }
  .nook { grid-column: 1 / 13; background: var(--surface-alt); border-radius: var(--radius); padding: calc(var(--unit) * 12) calc(var(--unit) * 8);
          display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--unit) * 4); align-items: center; }
  .nook h2 { font-size: var(--step-5); font-weight: 400; line-height: 1.1; max-width: 18ch; margin-bottom: 16px; }
  form { display: flex; gap: 12px; }
  input { flex: 1; min-width: 0; font: inherit; padding: 14px 20px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg); color: var(--text); }
  @media (max-width: 640px) { .nook { grid-template-columns: 1fr; padding: calc(var(--unit) * 6) calc(var(--unit) * 3); } form { flex-direction: column; } }
</style>
</head>
<body>
<section class="wrap">
  <div class="grid">
    <div class="nook">
      <div><h2>A letter each season, nothing more.</h2><p>New rooms, the sauna schedule and what is growing in the garden. Four emails a year.</p></div>
      <form><label class="small" for="em" hidden>Email</label><input id="em" type="email" placeholder="you@example.com" required><button class="btn btn-primary" type="submit">Subscribe</button></form>
    </div>
  </div>
</section>
</body>
</html>

Other patterns in this design

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