17. Core Components
17.4 Button
Core Components · Section 17.4
Purpose: trigger an action.
Variants:
primary
secondary
ghost
destructive
link-likeStates:
default
hover
active
focus-visible
disabled
loadingSizes:
sm
md
lgCore rules:
- use semantic
<button> - preserve accessible name
- loading state should not cause layout shift
- icon-only buttons require labels
- focus state must remain visible
- disabled styling must not rely only on opacity
Example API:
<Button
variant="primary"
size="md"
loading={isSaving}
>
Save changes
</Button>