

<InteractiveDemo
  name="radio-group"
  controls="[
  {
    type: 'string',
    name: 'label',
    defaultValue: 'Select frameworks',
  },
  {
    type: 'enum',
    name: 'orientation',
    options: ['horizontal', 'vertical'],
    defaultValue: 'vertical',
  },
  {
    type: 'boolean',
    name: 'isDisabled',
    defaultValue: false,
  },
  {
    type: 'boolean',
    name: 'isReadOnly',
    defaultValue: false,
  },
  {
    type: 'boolean',
    name: 'isInvalid',
    defaultValue: false,
  },
]"
/>

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npx shadcn@latest add @dotui/radio-group
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm dlx shadcn@latest add @dotui/radio-group
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn dlx shadcn@latest add @dotui/radio-group
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bun x shadcn@latest add @dotui/radio-group
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Usage [#usage]

Use radio group to allow users to select a single option from a short list of related options.

```tsx
import { Radio, RadioControl, RadioGroup } from '@/components/ui/radio-group'
import { FieldGroup, Label } from '@/components/ui/field'
```

```tsx
<RadioGroup defaultValue="nextjs">
  <Label>React frameworks</Label>
  <FieldGroup>
    <Radio value="nextjs">
      <RadioControl />
      <Label>Next.js</Label>
    </Radio>
    <Radio value="remix">
      <RadioControl />
      <Label>Remix</Label>
    </Radio>
  </FieldGroup>
</RadioGroup>
```

## Examples [#examples]

<Examples className="lg:grid-cols-3">
  <Example name="radio-group/demos/default" title="Default" />

  <Example name="radio-group/demos/description" title="With Description" />

  <Example name="radio-group/demos/error-message" title="Invalid" />

  <Example name="radio-group/demos/disabled" title="Disabled" />

  <Example name="radio-group/demos/read-only" title="ReadOnly" />

  <Example name="radio-group/demos/required" title="Required" />

  <Example name="radio-group/demos/cards" title="Cards" className="lg:col-span-3" />
</Examples>

## API Reference [#api-reference]

### RadioGroup [#radiogroup]

<Reference name="radio-group" />

### Radio [#radio]

<Reference name="radio" />

### RadioControl [#radiocontrol]

<Reference name="radio-control" />

### RadioIndicator [#radioindicator]

<Reference name="radio-indicator" />
