Buttons allow users to perform an action or make a decision.
Buttons provide a clear visual hierarchy between actions while maintaining consistency across variant, size, typography, spacing, iconography, radius, and interaction states.
The Button system is structured around three independent properties:
| Property | Defines |
|---|---|
| Variant | The visual emphasis and importance of an action |
| Size | The physical size and density of the control |
| State | The current interaction condition |
This separation keeps the component predictable and prevents unnecessary component variations.
Button
├── Variant
├── Size
└── State
A Button can contain the following elements:
┌─────────────────────────────┐
│ [Icon] Button [Icon] │
└─────────────────────────────┘
↑ ↑ ↑
Leading Label Trailing
icon icon
┌──────────────┐
│ Icon │
└──────────────┘