A flexible button component with multiple variants and sizes for different use cases.
Import

Code
import { Button } from "zudoku/ui/Button";
Variants
Default

Code
<Button variant="default">Default Button</Button>
Destructive

Code
<Button variant="destructive">Delete</Button>
Outline

Code
<Button variant="outline">Outline Button</Button>
Secondary

Code
<Button variant="secondary">Secondary</Button>
Ghost

Code
<Button variant="ghost">Ghost Button</Button>
Link

Code
<Button variant="link">Link Button</Button>
Sizes
Default Size

Code
<Button size="default">Default Size</Button>
Small

Code
<Button size="sm">Small Button</Button>
Large

Code
<Button size="lg">Large Button</Button>

Code
<Button size="xl">Extra Large</Button>
Icon

Code
<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:

Code
<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:

Code
<Button className="w-full" variant="outline">
Full Width Button
</Button>
Last modified on