## Ranked-Choice Vote (S—420)

Rank the options on your ballot, then step through an instant-runoff count as the lowest is eliminated each round.

- URL: https://sundaeui.dev/components/ranked-choice
- Category: UI components · Art direction: Refined
- Access: Free (no account needed)
- Stack: React 18+, TypeScript, plain CSS; dependencies: none
- Install: `npx shadcn@latest add https://sundaeui.dev/r/ranked-choice.json`
- Tags: election, voting, instant-runoff, ballot, poll, ranked-choice

Tap options in order of preference to rank them; tap again to unrank. Your ballot joins a pool of others for the count.
Each round shows first-choice tallies; the last-place option is eliminated and its votes move to each voter’s next choice until one has a majority.

### Usage

```tsx
import { RankedChoice } from '@/components/sundae/ranked-choice'

<RankedChoice />
```

### Props

- `options` (`string[]`): Options on the ballot.
- `ballots` (`string[][]`): Other ballots in the pool.
- `fill` (`'dark' | 'light'`, default `'dark'`): Surface: dark or light.

### When to use

- Team decisions, community polls, explaining voting systems.

### When not to use

- Binding elections: use audited software.

### Accessibility

- Ballot options are buttons that announce their rank.
- Each count round is announced with the eliminated option.
- Reduced motion removes the movement and keeps every state change.
