API and Development
RadioItem and RadioGroup provide single-selection interfaces for choosing one option from a set of mutually exclusive choices. RadioItem displays a standalone radio button, while RadioGroupItem is used within RadioGroup for managed selection. The components are built on Radix UI and ensure consistent selection patterns across the interface with full keyboard and screen reader accessibility.
For card-based single-select with descriptions, see Radio cards.
| Name | Default | Description |
|---|---|---|
value | required | The value of the radio button. |
name | The name attribute for grouping standalone radio inputs. | |
labelValue | Text to display as the label. If not provided, children is used. | |
labelPosition | RadioLabelPosition.Right | Position of the label relative to the radio button. Options: Left, Right. |
checked | Whether the radio button is checked (controlled component). | |
defaultChecked | Whether the radio button is checked by default (uncontrolled component). | |
disabled | false | Whether the radio button is disabled. |
children | Label content when labelValue is not provided. |
| Name | Default | Description |
|---|---|---|
children | required | RadioGroupItem components to display in the group. |
name | The name attribute for the radio group. | |
value | Currently selected value (controlled component). | |
defaultValue | Default selected value (uncontrolled component). | |
onValueChange | Callback function called when selection changes: (value: string) => void. | |
direction | FlexDirection.Column | Layout direction for radio buttons. Options: Column, Row. |
label | Optional label text displayed above the radio group. | |
labelType | TextType.BodyBase | Text type for the group label. |
Use for simple single-selection lists.
Control label placement relative to the radio button.
Add a group label to provide context.
Arrange radio buttons horizontally.
Control selection state programmatically.
Disable specific options or the entire group.
Use children for label content when you need more control.