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