# Button

Every click that isn't a row or a pad. Machined edge, 1px of real travel; strength is structure, never glow.

Install: `npx candlelight-ds add button`

Category: primitive · Grammar: G2, G7, C3

## Use when

Forms, headers, overlays, empty-state actions.

## Don't use when

Persistent surface controls (TransportButton), one-shots (Pad), or status tokens (Chip).

## States

- primary
- destructive
- outline
- secondary
- quiet
- link
- disabled
- with printed key

## Keyboard

- `Enter/Space` — activates (native button)

## Acceptance tests

- Exactly one primary per view region (C3).
- Every variant travels 1px on press.
- Destructive wears the cold danger tone — red never invites.

## Files

- components/ui/Button.tsx

npm dependencies: @candlelight-ds/tokens, class-variance-authority, clsx, tailwind-merge

Rendered twin: https://candlelight-docs.vercel.app/components/button · Full spec: https://candlelight-docs.vercel.app/spec.md
