Skip to content

Radio

A React source recipe with Base UI behavior and the public TIS Radio classes and tokens.

Design

Functional preview

Running with the React source recipe distributed through shadcn and based on Base UI.

Loading functional preview…

Anatomy

4 Select a plan 5
1 Label (.ds-radio-label) — wraps radio + text, extends click target.
2 Input (.ds-radio) — styled native <input type="radio">.
3 Dot — CSS pseudo-element, visible when selected.
4 Group (.ds-radio-group) — <fieldset> wrapping related radios.
5 Legend (.ds-radio-group__legend) — group heading, provides context to screen readers.

Radio Group

Notification preference

Sizes

Error Group

Select a plan Please select a plan to continue.

Disabled

States

StateCSS triggerVisual changeToken
Unselected---Neutral control fill and bordercomponent.radio.control.fill.unselected.default, component.radio.control.border-color.unselected.default
Unselected hover:hoverDarker neutral control border/fillcomponent.radio.control.fill.unselected.hover, component.radio.control.border-color.unselected.hover
Selected:checkedPrimary control fill with dotcomponent.radio.control.fill.selected.default, component.radio.dot.fill.selected.default
Selected hover:checked:hoverDarker primary control fillcomponent.radio.control.fill.selected.hover, component.radio.dot.fill.selected.hover
Focus:focus-visible2px outline ringcomponent.radio.focus-ring.radius.default + component.focus-ring.*
Error group.ds-radio-group--errorError border on controls and message below groupcomponent.radio.control.border-color.unselected.error, semantic.feedback.error.content-default
Disabled[disabled]Muted control, dot and labelcomponent.radio.control.fill.*.disabled, semantic.content.disabled

Figma properties

PropertyTypeDefaultDescription
Show LabelBooleantrueShows or hides the control label
LabelText"Rótulo"Label text (label/md)
Show DescriptionBooleanfalseShows descriptive text below the label
DescriptionText"Texto descritivo"Multiline description text (body/sm)
Show Helper TextBooleanfalseShows helper text below the description
Helper TextText"Texto auxiliar"Caption/sm annotation (content/secondary)