Buttons
The Button component provides various styles and sizes using class-variance-authority (cva) for variants and leverages global CSS for base styles.
Primary Buttons (Default Variant)
Secondary Buttons
Transparent Buttons
Link Buttons
Implementation Notes
Component Structure
The Button
component uses cva
(class-variance-authority) to manage different visual styles and sizes. Base styles are defined in globals.css
under the .btn
class.
Available Variants
Use “primary” for main actions, “secondary” for supporting actions.
Available Sizes
- sm - Small buttons for compact interfaces
- default - Standard button size
- lg - Large buttons for emphasis
- iconOnlySm - 40x40px icon-only buttons
Icon Support
Pass Material Symbols icon names to the icon
prop. Control position with iconPosition="left"
(default) or iconPosition="right"
. For icon-only buttons, provide an aria-label
for accessibility.
Usage Examples
<Button variant="primary" icon="save"> Save Changes </Button> <Button variant="secondary" size="sm" icon="cancel"> Cancel </Button> <Button variant="transparent" size="iconOnlySm" icon="edit" aria-label="Edit item" />