Site buttons
SiteLive preview
Variants
States
A button with an action in progress is disabled and shows Loader2 h-4 w-4 animate-spin before its label.
Measured anatomy
min-h-12 · px-6 py-3 · rounded-xl · gap-2 (8 px)
h-11 lg:h-10 · px-4 · rounded-xl (header)
| Measure | Value | Class |
|---|---|---|
| Primary and secondary height | 48 px | min-h-12 |
| Header CTA height | 44 px, 40 px from 1,024 px | h-11 lg:h-10 |
| Link and compact button height | 44 px | min-h-11 |
| Horizontal padding | 24 px (16 px for header and compact) | px-6 px-4 |
| Vertical padding | 12 px | py-3 |
| Radius | 12 px | rounded-xl |
| Icon and text gap | 8 px | gap-2 |
| Font | 16 px (inherited) or 15 px, 600 | font-semibold |
| Transition | 280 ms (150 ms for header and compact) | duration-base |
Tokens and code
Primary
inline-flex min-h-12 items-center justify-center gap-2 rounded-xl bg-ember-500 px-6 py-3 font-semibold text-white transition-colors duration-base ease-motion motion-reduce:transition-none hover:bg-ember-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-700 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-60Secondary
inline-flex min-h-12 items-center justify-center gap-2 rounded-xl border border-neutral-300 bg-white px-6 py-3 font-semibold text-neutral-900 transition-colors duration-base ease-motion motion-reduce:transition-none hover:border-ember-500 hover:text-ember-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-700 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-60Link
inline-flex min-h-11 items-center font-semibold text-neutral-900 underline decoration-neutral-300 underline-offset-4 transition-colors duration-base ease-motion motion-reduce:transition-none hover:decoration-neutral-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-700 focus-visible:ring-offset-2Header CTA
inline-flex h-11 items-center rounded-xl bg-ember-500 px-4 text-sm font-medium text-white transition-colors duration-fast ease-motion motion-reduce:transition-none hover:bg-ember-600 lg:h-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ember-700 focus-visible:ring-offset-2Rules
- White text on every orange button, never dark. Large button (14 px and up)
ember-500, hoverember-600; small button (13 px and below)ember-700, hoverember-800. - No logo, icon or shadow in an action button; never a gradient.
- One highlighted button per screen, reserved for three buttons: the header, "Choose Pro" and "Build my team". The page shows none.
- 44 px below 1,024 px; at least 40 px above.
Do and don't
Do
- Get started
Do: One orange primary button per screen, white text.
- See pricing
Do: The secondary button beside it, neutral-300 border.
Don't
- Get started
Don't: Dark text on an orange button.
- Get started
Don't: A gradient or an icon in the button.