A flexible button component with multiple variants and sizes for different use cases.
Import
import { Button } from "zudoku/ui/Button";
Variants
Default
<Button variant="default">Default Button</Button>
Destructive
<Button variant="destructive">Delete</Button>
Outline
<Button variant="outline">Outline Button</Button>
Secondary
<Button variant="secondary">Secondary</Button>
Ghost
<Button variant="ghost">Ghost Button</Button>
Link
<Button variant="link">Link Button</Button>
Sizes
Default Size
<Button size="default">Default Size</Button>
Small
<Button size="sm">Small Button</Button>
Large
<Button size="lg">Large Button</Button>
<Button size="xl">Extra Large</Button>
Icon
<Button size="icon">
<PopcornIcon size={16} />
</Button>
As Child
Use the asChild
prop to render the button as a different element while maintaining button styling:
<Button asChild>
<a href="/link">Link as Button</a>
</Button>
Custom Styling
The Button component accepts all standard button HTML attributes and can be customized with
additional className:
<Button className="w-full" variant="outline">
Full Width Button
</Button>
Last modified on