variant parameter signals what kind of action the button performs, while size controls its dimensions.
Basic Usage
The label can be passed as a positional argument or as a keyword (label="Save Changes").
Variants
Each variant communicates a different intent to the user:Sizes
With Icons
Buttons accept anicon prop (any lucide icon name in kebab-case). The icon renders before the label text.
Icon Sizes
Square buttons optimized for single icons. Useicon with an icon-size variant for icon-only buttons.
Disabled State
Custom Styling
Every component acceptscss_class for additional Tailwind CSS classes. When your classes target the same CSS property as a built-in style (like rounded-full vs the default rounded-md), the built-in class is automatically removed so your override wins cleanly:
API Reference
Button Parameters
Button text. Can be passed as a positional argument.
Lucide icon name in kebab-case (e.g.,
"arrow-right", "trash-2"). Browse icons at lucide.dev/icons.Visual style:
"default", "destructive", "outline", "secondary", "ghost", "link", "success", "warning", "info".Button dimensions:
"default", "xs", "sm", "lg", "icon", "icon-xs", "icon-sm", "icon-lg".Whether the button is non-interactive.
Additional Tailwind CSS classes appended to the component’s built-in styles.
Protocol Reference
Button