Buttons

Variants

Six semantic variants covering every use case from primary CTA to destructive actions.

Second row: disabled state

Sizes

All variants × all sizes.

default
outline
secondary
ghost
destructive
With icons

Leading and trailing icon placement using data-[icon] padding offsets.

xs · 12px icons
sm · 14px icons
default · 16px icons
lg · 16px icons
States

Loading swaps the icon for a spinner while keeping button dimensions stable.

Destructive actions

Destructive is intentionally muted (tinted, not filled) to prevent mis-clicks. Use a confirmation step before irreversible actions.

Icon buttons

Non-primary variants × all icon sizes for toolbars and compact actions. Primary buttons always need a visible label.

All sizes

outline
secondary
ghost
destructive