⚠️ Design system CSS not found. Check the path in cms/docs.config.js → designSystemPath, then re-run npm run docgen.

Radio Group

Choose one option from a set

Design System / Radio Group
Download .md file
Open .md in new tab

Radio groups wrap multiple radio inputs with consistent spacing, an optional group label, and hint text. They support vertical and horizontal layouts.


Basic vertical group

<div class="radio-group">
  <div class="form-check">
    <input type="radio" name="plan" id="plan-free" checked>
    <label for="plan-free">Free</label>
  </div>
  <div class="form-check">
    <input type="radio" name="plan" id="plan-pro">
    <label for="plan-pro">Pro</label>
  </div>
  <div class="form-check">
    <input type="radio" name="plan" id="plan-enterprise">
    <label for="plan-enterprise">Enterprise</label>
  </div>
</div>

Horizontal group

<div class="radio-group is-horizontal">
  ...
</div>

With group label

Shipping method
<fieldset>
  <legend class="radio-group-label">Shipping method</legend>
  <div class="radio-group">
    ...
  </div>
</fieldset>

With hint text

Notification frequency
Choose how often you want to receive email notifications.
<span class="radio-group-hint">Choose how often you want to receive notifications.</span>

Disabled option


Accessibility notes

  • Use <fieldset> + <legend> to group related radio inputs — this is the recommended accessible pattern
  • Each radio must have an associated <label> via the for attribute
  • Disabled radios are automatically excluded from keyboard navigation
  • Arrow keys move between options within a radio group (native browser behaviour)

Do / Don't

Do:

  • Use radio groups when the user must pick exactly one option from a list
  • Use <fieldset> + <legend> for groups of 3+ options
  • Pre-select a sensible default when possible

Don't:

  • Don't use radio groups for on/off toggles — use a checkbox or toggle switch
  • Don't use radio groups for multi-select — use checkboxes instead
On this page
  • Basic vertical group
  • Horizontal group
  • With group label
  • With hint text
  • Disabled option
  • Accessibility notes
  • Do / Don't
Previous

Number Input

Next

Slider

Was this page helpful?

We use this feedback to improve our documentation.

Thanks for your feedback

Send feedback

© 2026 By Default