Button
The only control that commits a change or navigates.
Specimen
Props
| Prop | Type | Note |
|---|---|---|
| variant | "primary" | "secondary" | "ghost" | Defaults to secondary. |
| size | "sm" | "md" | Defaults to md. sm is 32px on fine pointers only. |
| to | string | A route in this app. Renders a router Link. |
| href | string | mailto:, tel:, or off-site. Renders a plain anchor — the router must not see these. |
| disabled | boolean | Button only. Use aria-disabled on a link. |
Use it for
- Committing a change, submitting, or navigating somewhere significant.
- Exactly one primary per view — it is the answer to 'what did you want me to do'.
Do not use it for
- Inline inside a sentence — that is Link.
- As a tag or status. That is Chip, which is not interactive.
- Passing a mailto: or an external URL to `to` — that is what `href` is for.