Button

The Button component is used to trigger actions.

Usage & Examples

Default Button

default-button.tsx
<Button>Primary</Button>

Visual variants

Themes

primary
secondary
tertiary
quaternary

States

success
warning
error
info

Sizes

xs
small
medium
large

Variants

solid
outline
glass

Rounding

none
medium
large

Shadows

none
light
strong
visual-variants.tsx
// Themes
<Button theme="primary">Primary</Button>
<Button theme="secondary">Primary</Button>
<Button theme="tertiary">Primary</Button>
<Button theme="quaternary">Primary</Button>

// States
<Button state="success">Primary</Button>
<Button state="warning">Primary</Button>
<Button state="error">Primary</Button>
<Button state="info">Primary</Button>

// Sizes
<Button size="xs">Primary</Button>
<Button size="small">Primary</Button>
<Button size="medium">Primary</Button>
<Button size="large">Primary</Button>

// Variants
<Button variant="solid">Primary</Button>
<Button variant="outline">Primary</Button>
<Button variant="glass">Primary</Button>

// Rounding
<Button rounding="none">Primary</Button>
<Button rounding="medium">Primary</Button>
<Button rounding="large">Primary</Button>

// Shadows
<Button shadow="none">Primary</Button>
<Button shadow="light">Primary</Button>
<Button shadow="strong">Primary</Button>

Interaction states

Disabled
Loading
Full width
interaction-states.tsx
// Disabled
<Button disabled>Primary</Button>
// Loading
<Button loading>Primary</Button>
// Full width
<Button fullWidth>Primary</Button>

Props API

40 props
Columns
Button props API
Default
Description
aria-atomicbooleanNoaria—Whether assistive technologies should treat live updates as atomic.
aria-busybooleanNoaria—Indicates whether the element is busy. Usually derived automatically from `loading`.
aria-controlsstringNoaria—Identifies the element controlled by this button, such as a menu, dialog, accordion panel, or disclosure region.
aria-currentboolean | "page" | "step" | "location" | "date" | "time"Noaria—Indicates that this button represents the current item within a set. Most useful when rendering as a link-like control.
aria-describedbystringNoaria—References the element(s) that describe this button. Useful for extra instructions or status messaging.
aria-disabledbooleanNoaria—Indicates whether the control is perceivable as disabled to assistive tech. Usually derived automatically when rendered as a disabled link.
aria-expandedbooleanNoaria—Indicates whether the controlled element is expanded or collapsed. Commonly used for disclosure buttons.
aria-haspopupboolean | "dialog" | "grid" | "listbox" | "menu" | "tree"Noaria—Indicates that activating the button opens a popup such as a menu, dialog, listbox, tree, or grid.
aria-labelstringNoaria—Accessible label for screen readers. Required for icon-only buttons.
aria-labelledbystringNoaria—References the element(s) that label this button. Useful when the visible label lives outside the button.
aria-live"off" | "polite" | "assertive"Noaria—Optional live-region politeness for loading or dynamic content updates.
aria-pressedboolean | "mixed"Noaria—Indicates the pressed state for toggle buttons.