Skip to main content
03 / Components

Button

Used to trigger an action or event. The most common interactive element in the system.

Preview

Variant
Size
State

Variants

Four variants cover the standard hierarchy of action emphasis.

default
secondary
outline
ghost

Three sizes let buttons fit dense toolbars or marketing CTAs.

sm
default
lg

Disabled is the only programmatic state. Hover and focus are user-driven CSS pseudo-states.

default
disabled

Usage

Do

Use the default variant for the primary action on a page or in a section.

Don’t

Use multiple default-variant buttons in the same area — they compete for attention.

Do

Lead with a verb in the label: “Save changes”, “Send invite”, “Continue”.

Don’t

Use vague labels like “OK”, “Submit”, or “Click here”.

Do

Use ghost or outline for secondary actions next to a default button.

Don’t

Disable a button without explaining why nearby — surface the constraint, not just the state.

Code

1<Button variant="default" size="default">
2 Get started
3</Button>

Design tokens

TokenUsage
--color-action-bgDefault-variant background
--color-action-textDefault-variant text colour
--color-action-hoverDefault-variant hover background
--color-secondary-bgSecondary-variant background
--color-secondary-textSecondary-variant text colour
--color-secondary-borderOutline-variant stroke
--color-ghost-textGhost-variant text colour
--color-ghost-hoverGhost-variant hover background
--lex-radius-mdCorner radius — controls tier

Accessibility

Use the native <button> element. Provide an accessible name via text content or aria-label. Disabled buttons remove the element from the focus order; if the disabled reason is non-obvious, surface it in adjacent text.

Enter/SpaceActivate the button
TabMove focus to the next focusable element
Shift + TabMove focus to the previous focusable element