# StatusDot + ReadinessDot

G6 embodied: status is a dot until it isn't. StatusDot for ambient system state (click expands to detail); ReadinessDot for per-object readiness in rows.

Install: `npx candlelight-ds add status-dot`

Category: instrument · Grammar: G6

## Use when

Glanceable state that should not shout — connection, sync, per-row readiness.

## Don't use when

The state demands immediate action (Announcer/Toast) — no persistent status bars, no preemptive banners.

## States

- ok
- warn (pulse)
- off
- busy (pulse)
- ready/partial/failed/pending (readiness)

## Keyboard

- (none — pointer/semantic only)

## Acceptance tests

- Every dot carries a text equivalent (tooltip + aria-label) that names the state, not the color.
- Pulses die under reduced motion.

## Files

- components/instruments/StatusDot.tsx

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

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