Button
MD3 common button: five variants, five sizes, round/square shapes with the Expressive press morph.
Variants
<Button variant="filled">Filled</Button>
Sizes
Shapes
Press a square button and hold — the corner radius morphs per the Expressive spec.
Disabled
Props
| Prop | Type | Default | Description |
|---|---|---|---|
defaultSelected | boolean | false | Uncontrolled initial selected state (toggle mode). |
endIcon | ReactNode | — | Trailing icon (decorative). |
onChange | ((event: MouseEvent<HTMLButtonElement, MouseEvent>, selected: boolean) => void) | — | Fires with the triggering event and the next selected state when toggled. |
selected | boolean | — | Controlled selected state (toggle mode). |
shape | enum | round | Resting shape; both shapes morph to a tighter corner while pressed. |
size | enum | sm | Container size on the Expressive scale. |
startIcon | ReactNode | — | Leading icon (decorative). |
toggle | boolean | false | Enable toggle (selectable) behavior with `aria-pressed` (Expressive). Inside a `ButtonGroup` with `selectionMode`, give the button a `value` instead — the group then owns its selection. |
variant | enum | filled | Visual emphasis. |