cta.neumorphism-power-key · Power key

A cta pattern from Neumorphism, 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.neumorphism-power-key". A guide only: DESIGN.md and tokens.json are the source of truth.

Rule
One wide raised panel: a big accent dial ring in 1–3 like a power key, label, h2 at step 6 and a line in 4–8, an inset email field with accent submit and a small note in 9–12.
Slots
sectionLabel, title, body, signup, meta
Tokens
bg #E3E8EF · text #28303B · heading #161C25 · accent #3F5BD9 · accent2 #794EBA · Plus Jakarta Sans / Plus Jakarta Sans · radius 22px · space unit 4px (full list in design/tokens.json)

Pattern notes

  • One wide raised panel (padding 48 × 40 px): a raised round well holding a large accent dial ring like a power key in 1–3 (hidden on phones), the label, h2 at step 6 (≤18 ch) and a muted line in 4–8, and in 9–12 an inline email field pressed into the panel with an accent submit and a small muted note.

Next step

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.

Email
you@example.com
Subscribe

Booking projects from June 2026

Layout tree (as in design/layout.json)
{
  "pattern": "cta.neumorphism-power-key",
  "kind": "cta",
  "slots": [
    "sectionLabel",
    "title",
    "body",
    "signup",
    "meta"
  ],
  "tree": {
    "el": "box",
    "bg": "surface",
    "pad": [
      12,
      10
    ],
    "children": [
      {
        "el": "grid",
        "gap": 8,
        "align": "center",
        "children": [
          {
            "el": "box",
            "span": "1-3",
            "mobile": "hide",
            "align": "center",
            "children": [
              {
                "el": "box",
                "bg": "surface",
                "pad": 6,
                "children": [
                  {
                    "el": "shape",
                    "kind": "ring",
                    "size": "lg",
                    "fill": "accent"
                  }
                ]
              }
            ]
          },
          {
            "el": "box",
            "span": "4-8",
            "gap": 4,
            "children": [
              {
                "el": "text",
                "color": "link",
                "slot": "sectionLabel",
                "role": "label",
                "transform": "uppercase",
                "tracking": "wide"
              },
              {
                "el": "text",
                "slot": "title",
                "role": "h2",
                "step": 6,
                "weight": 700,
                "tracking": "tight",
                "leading": "tight",
                "maxCh": 18
              },
              {
                "el": "text",
                "color": "textMuted",
                "slot": "body",
                "role": "body",
                "maxCh": 40
              }
            ]
          },
          {
            "el": "box",
            "span": "9-12",
            "gap": 4,
            "children": [
              {
                "el": "form",
                "slot": "signup",
                "fields": [
                  "email"
                ],
                "inline": true
              },
              {
                "el": "text",
                "color": "textMuted",
                "slot": "meta",
                "role": "small"
              }
            ]
          }
        ]
      }
    ]
  }
}
Component example: reference/cta.neumorphism-power-key.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>cta.neumorphism-power-key — Neumorphism</title>
<link rel="stylesheet" href="base.css">
<style>
  section { padding: var(--section) 0; }
  .cta { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; align-items: center; padding: 48px 40px; }
  .power { grid-column: 1 / 4; display: grid; place-items: center; }
  .power .socket { width: 200px; height: 200px; border-radius: 50%; box-shadow: var(--pressed); display: grid; place-items: center; }
  .power .ring { width: 150px; height: 150px; border-width: 16px; }
  .msg { grid-column: 4 / 9; display: flex; flex-direction: column; gap: 16px; }
  .msg h2 { font-size: var(--step-6); max-width: 18ch; }
  form { grid-column: 9 / 13; display: flex; flex-direction: column; gap: 16px; }
  form .row { display: flex; gap: 12px; } form input { flex: 1; }
  @media (max-width: 860px) { .power { display: none; } .msg, form { grid-column: 1 / -1; } .cta { padding: 32px 20px; } form .row { flex-direction: column; } }
</style>
</head>
<body>
<section class="wrap">
  <div class="panel cta">
    <div class="power" aria-hidden="true"><div class="socket"><div class="ring"></div></div></div>
    <div class="msg"><span class="label">Winter pre-order</span><h2>Warm rooms by the first frost.</h2><p class="muted">Order by 30 November and we install before December.</p></div>
    <form><label class="small" for="email">Email</label><div class="row"><input id="email" type="email" placeholder="you@home.com"><button class="btn btn-primary" type="submit">Reserve</button></div><p class="small muted">No payment until it ships.</p></form>
  </div>
</section>
</body>
</html>

Other patterns in this design

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