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