cta.bauhaus-triangle-call · Triangle call

A cta pattern from Bauhaus, 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.bauhaus-triangle-call". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
A yellow field: headline lowercase at step 5 on 1–7 with a primary button; a large accent triangle fills 9–12.
Slots
headline, cta
Grid areas
text 1-7 · triangle 9-12 (12-column grid, 1-based inclusive spans)
Tokens
bg #FDF9F4 · text #241E16 · heading #150E06 · accent #0050CC · accent2 #AF0029 · Jost / Jost · radius 0px · space unit 8px (full list in design/tokens.json)
Section
background surfaceAlt

Pattern notes

  • Section background yellow (surfaceAlt), bleeding edge to edge. Headline (step 5, lowercase, weight 700, max ~18 ch) and one primary button (square, accent fill) on 1–7. A large solid triangle in accent fills 9–12, pointing up, its base on the section's bottom edge. At phone width the triangle shrinks and sits under the button.

Have a hard thing to explain?

Start a project
Layout tree (as in design/layout.json)
{
  "pattern": "cta.bauhaus-triangle-call",
  "kind": "cta",
  "grid": {
    "text": "1-7",
    "triangle": "9-12"
  },
  "slots": [
    "headline",
    "cta"
  ],
  "bg": "surfaceAlt",
  "tree": {
    "el": "grid",
    "gap": 4,
    "align": "end",
    "children": [
      {
        "el": "box",
        "span": "1-7",
        "gap": 4,
        "children": [
          {
            "el": "text",
            "slot": "headline",
            "role": "h2",
            "step": 5,
            "transform": "lowercase",
            "weight": 700,
            "leading": "tight",
            "maxCh": 18
          },
          {
            "el": "button",
            "slot": "cta",
            "variant": "primary",
            "size": "lg",
            "arrow": true
          }
        ]
      },
      {
        "el": "shape",
        "span": "9-12",
        "kind": "triangle",
        "size": "xl",
        "fill": "accent"
      }
    ]
  }
}
Component example: reference/cta.bauhaus-triangle-call.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>cta.bauhaus-triangle-call — Bauhaus</title>
<link rel="stylesheet" href="base.css">
<style>
  .field { background: var(--yellow); padding: 112px 0 0; }
  .field .grid { align-items: end; }
  .text { grid-column: 1 / 8; display: grid; gap: 32px; padding-bottom: 112px; }
  h2 { font-size: var(--step-5); max-width: 18ch; }
  .text .btn { justify-self: start; }
  .shape { grid-column: 9 / 13; }
  @media (max-width: 640px) { h2 { font-size: var(--step-3); } .text { padding-bottom: 32px; } .shape { width: 50%; } }
</style>
</head>
<body>
<section class="field">
  <div class="wrap grid">
    <div class="text"><h2>enrol in the spring course.</h2><a class="btn primary" href="#apply">apply by 1 march →</a></div>
    <div class="shape triangle blue" aria-hidden="true"></div>
  </div>
</section>
</body>
</html>

Other patterns in this design

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