Buttons allow users to take actions and make choices with a single tap. They communicate what action will occur when the user interacts with them.
Basics
The only required prop is children, which is the button's label. Buttons default to the primary variant.
Variants
Use variants to communicate the importance and intent of an action.
- Primary — High emphasis for main actions like "Save" or "Confirm". Limit to one per screen.
- Secondary — Medium emphasis for multiple actions of equal weight.
- Tertiary — High contrast with inverted background.
- Negative — Destructive actions that can't be undone. Use sparingly.
Transparent
Use transparent buttons for supplementary actions with lower prominence. The container is only visible on interaction. Works with any variant.
States
Loading
Use the loading prop to indicate an action is in progress. The button becomes non-interactive and displays a loading indicator (indeterminate ProgressCircle) while preserving its width.
Loading by variant
Loading works with all variants and transparent. The label is hidden and the progress circle is shown in the button’s accent color.