Core
Button
Triggers actions. Supports 5 variants, 4 sizes, loading state, and asChild for polymorphic rendering.
Variants
Use variant to communicate intent.
Sizes
Four sizes: sm, md (default), lg, icon.
Loading
The loading prop disables the button and shows a spinner. Sets aria-busy for accessibility.
asChild
Use asChild to render the button as any element (e.g. <a>, Next.js Link) while keeping all styles.
API
| Prop | Type | Default |
|---|---|---|
| variant | primary | secondary | ghost | danger | outline | primary |
| size | sm | md | lg | icon | md |
| loading | boolean | false |
| asChild | boolean | false |
| leftIcon | ReactNode | — |
| rightIcon | ReactNode | — |