Button
Clickable button with multiple variants and sizes.
Install
npx @beaket/ui add button Import
import { Button } from "@/components/ui/button" Examples
Variants
export const AllVariants = () => (
<div className="flex flex-wrap gap-2">
<Button variant="primary">Primary</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="destructive">Destructive</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="link">Link</Button>
<Button variant="success">Success</Button>
<Button variant="stark">Stark</Button>
<Button variant="warning">Warning</Button>
</div>
); Sizes
export const AllSizes = () => (
<div className="flex items-center gap-2">
<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>
<Button size="icon">+</Button>
</div>
); States
export const AllStates = () => (
<div className="flex gap-2">
<Button disabled>Disabled</Button>
<Button loading>Loading</Button>
</div>
); Props
| Name | Type | Default | Description |
|---|---|---|---|
| variant | undefined | primary | destructive | outline | secondary | ghost | link | success | stark | warning | — | primary | secondary | destructive | outline | ghost | link | success | stark | warning. Button style variant |
| size | undefined | sm | md | lg | icon | md | sm | md | lg | icon. Button size |
| loading | boolean | undefined | — | Shows a loading spinner and disables the button |
| mono | boolean | undefined | false | Use monospace font for CTA-style text |
| asChild | boolean | undefined | false | Merges props onto the immediate child element instead of rendering a button |