Skip to content
Zuno UI
Explore components
EXPLORE
Actions
Forms
Layout
Navigation
Data display
Feedback
Overlays
RESOURCES
Components/RadioGroup

RadioGroup

Single choice among visible options, with comfortable targets and optional descriptions.

Base UI reference ↗

Notify me about

Installation

Run it from the root of a project already set up with zunoui init.

npx zunoui@latest add radio-group

Dependencies

What add radio-group installs alongside the component. The CLI skips any you already have in a compatible version.

ZUNO registry

  • @zuno/utils

npm

Examples

4 examples · 1 component
radio-group

Notify me about

Named group

aria-labelledby names the group; each Label names and enlarges its option.

radio-group

Up to 3 projects and community support.

Unlimited projects, history and priority support.

Everything in Pro plus roles and SSO.

Options with descriptions

Each description is linked to its item with aria-describedby.

radio-group

In a row

A flex row for short options; arrow keys work the same.

radio-group

Disabled options

A disabled option is skipped by the arrow keys; disabled on the group disables all.

API reference

Keeps the props, events and refs of the matching Base UI primitive, plus ZUNO's styles.

PropTypeDefault
RadioGroup

Root; value/defaultValue, onValueChange, name, disabled, required and readOnly. Stacks with gap-3; use className for a row.

div—
RadioGroupItem

One option; value is required. Pair it with a Label through id/htmlFor.

span—
value

The option's value, submitted with the group's name.

string—
disabled

On an item or on the whole group.

booleanfalse

States

The states that apply to this component and their visual treatment.

StateTreatment
UncheckedEmpty ring with the input border.
CheckedPrimary ring with a filled dot.
FocusVisible outline offset from the ring.
DisabledDimmed and skipped by keyboard navigation.
InvalidInside a Field with an error, the ring turns destructive.

Accessibility

The group is a radiogroup and each item a radio: Tab enters on the checked option, arrow keys move and select, Space selects.

Name the group with aria-labelledby (or a fieldset legend) and each option with a Label; the label also enlarges the click target.

Descriptions go in a separate element referenced by aria-describedby on the item, so they are read after the option name.

The checked state is a filled dot inside a ring, not color alone; disabled options are skipped by the arrow keys.