cta.swiss-signal-field · Signal field

A cta pattern from Swiss International, drawn alone below with this design's tokens and sample copy. Used in this design on: home page, section 7. Give the section root data-pattern="cta.swiss-signal-field". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A full-bleed field of the accent colour: headline 1–8 at step 6, the action bottom-right in 10–12. The field is the only accent on screen.
Slots
headline, body, cta
Grid areas
headline 1-8 · action 10-12 (12-column grid, 1-based inclusive spans)
Tokens
bg #FAFAFA · text #1F1F1F · heading #0F0F0F · accent #E2271D · accent2 #850001 · Inter Tight / Hanken Grotesk · radius 0px · space unit 8px (full list in design/tokens.json)
Section
background accent · vertical padding step 10

Pattern notes

  • A full-bleed field in the accent colour with `onAccent` text: headline 1–8 at step 6, and a short line plus a secondary (outlined, square) button bottom-aligned in 10–12. Use it once per page; it counts as the screen's accent.

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.

Start a project
Layout tree (as in design/layout.json)
{
  "pattern": "cta.swiss-signal-field",
  "kind": "cta",
  "grid": {
    "headline": "1-8",
    "action": "10-12"
  },
  "slots": [
    "headline",
    "body",
    "cta"
  ],
  "bg": "accent",
  "tree": {
    "el": "grid",
    "gap": 3,
    "align": "end",
    "children": [
      {
        "el": "text",
        "span": "1-8",
        "color": "onAccent",
        "slot": "headline",
        "role": "h2",
        "step": 6,
        "weight": 700,
        "tracking": "tight",
        "leading": "tight",
        "maxCh": 18
      },
      {
        "el": "box",
        "span": "10-12",
        "alignSelf": "end",
        "gap": 3,
        "children": [
          {
            "el": "text",
            "color": "onAccent",
            "slot": "body",
            "role": "body",
            "maxCh": 32
          },
          {
            "el": "button",
            "slot": "cta",
            "variant": "secondary",
            "arrow": true
          }
        ]
      }
    ]
  }
}
Component example: reference/cta.swiss-signal-field.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>cta.swiss-signal-field — Swiss International</title>
<link rel="stylesheet" href="base.css">
<style>
  .field { background: var(--accent); color: var(--on-accent); padding: calc(var(--unit) * 10) 0; }
  .field .grid { align-items: end; row-gap: calc(var(--unit) * 4); }
  .field h2 { grid-column: 1 / 9; font-size: var(--step-6); letter-spacing: -0.03em; max-width: 18ch; }
  .action { grid-column: 10 / 13; display: grid; gap: calc(var(--unit) * 3); }
  .btn { justify-self: start; color: var(--on-accent); border: 2px solid var(--on-accent); padding: 14px 18px; text-decoration: none;
         font: 700 var(--base)/1 var(--font-heading); border-radius: 0; }
  .btn:hover { background: var(--on-accent); color: var(--accent); }
  @media (max-width: 640px) { .field h2 { font-size: var(--step-3); } }
</style>
</head>
<body>
<section class="field">
  <div class="wrap grid">
    <h2>Have a site with a difficult brief?</h2>
    <div class="action"><p>We answer every enquiry within two working days.</p><a class="btn" href="/contact">Start a project →</a></div>
  </div>
</section>
</body>
</html>

Other patterns in this design

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