Radio buttons

Radio buttons let users choose only one option from a list of mutually exclusive choices. This means that selecting one option automatically deselects any other.

Figma logo The guideline content on this page is synced with Figma and can be used as a source of truth. Open in Figma


Anatomy

  1. Radio input
  2. Label
Anatomy of radio button showing: 1 — radio control, 2 — label

Default states

A component’s state defines its appearance and behaviour.

Selected states

These are the different states for the selected state.


Usage

Radio buttons are perfect for forms and surveys when users must choose one option from a list.

Unlike a dropdown, they let users quickly see and compare all choices at a glance.

You should always have at least two options when using radio buttons.


Clickable area

It is crucial for both the label and the radio button to be clickable to ensure usability and accessibility for all users. By making the label also clickable, you provide a much larger and more forgiving target, which reduces user frustration and the chance of accidental errors.

Clickable area of radio button including both the control and the label

Accessibility

Keyboard interaction

All radio buttons should be reachable via TAB and SHIFT+TAB keys.


Best practices

Content guidelines

Do

Start with capital letters.

Don't

Don’t start with small letters.

Usage

Do

Use radio buttons when users need to select only one option from a list.

Don't

Don’t use radio buttons when users can select multiple options at once. Use checkboxes instead.


Specs

Radio button specification measurements

Design

Radio buttons

The disabled style will be applied for any of these: add .disabled class to your .radio or <fieldset>, or disabled attribute or disabled class on the input.




Disabled as readonly

To present a radio button in a non-interactive state that preserves its current value, apply the disabled attribute to the input. You can optionally use the .disabled class on the wrapper, for example when disabling a group or to reinforce the visual disabled state.

Why not use the readonly attribute?

The HTML readonly attribute has no effect on radio buttons. It is only supported on text-based inputs such as <input type="text"> and <textarea>. Browsers silently ignore readonly on radio buttons, meaning users can still change the value despite the attribute being present.

Use the disabled attribute instead to prevent user interaction. If the value must be submitted with the form, consider adding a hidden <input> that carries the value alongside the disabled control.


Secondary/outline style

Deprecated 2.4 — This style will be removed in 3.0. Use the default radio button style instead.

For the secondary style of the radio button just add the .radio-outline class to the .radio wrapper.




Inline radio buttons

Deprecated 2.3 — This layout will be removed in 3.0.