# Radio Group

Pick exactly one. A surface circle that fills to an ink disc with a dot.

Tier: Free

## Installation

```bash
npx shadcn add @fetaui/radio
```

## Usage

```tsx
import { RadioGroup } from '@/components/fetaui/radio'

export function Example() {
  return <RadioGroup label="Notify me by" options={options} onValueChange={setChoice} />
}
```

## API

| Prop | Type | Default |
|---|---|---|
| label | ReactNode | required |
| options | RadioOption[] | required |
| value | string |  |
| defaultValue | string |  |
| onValueChange | (value) => void |  |
| variant | list, card | list |
| error | ReactNode |  |
| disabled | boolean | false |
| animated | boolean | true |

## When to use

- When exactly one option must be chosen, and all of them fit on screen.

## When not to use

- For long lists: use Select.
- For a single on or off: use Switch.

## Accessibility

- Native radios in a labelled radiogroup.
- Selection moves and never toggles off.

## Motion

- Hover breathes a 5% pulse on a 1.4 s loop.
- Press squeezes to 0.86, then a ripple rolls out once.
- The dot pops in on select.
- With reduced motion, the pulse is a static halo and there is no ripple.
