RadioGroup
Radio groups allow users to select a single option from a list of mutually exclusive options. All possible options are exposed up front for users to compare.
Favorite pet
size
orientation
labelPosition
contextualHelp
isEmphasized
isDisabled
Value
Use the value
or defaultValue
prop to set the selected item, and onChange
to handle selection changes.
Favorite sport
Current selection: None
import {RadioGroup, Radio} from '@react-spectrum/s2';
import {useState} from 'react';
function Example() {
let [selected, setSelected] = useState(null);
return (
<>
<RadioGroup
label="Favorite sport"
value={selected}
onChange={setSelected}>
<Radio value="soccer">Soccer</Radio>
<Radio value="baseball">Baseball</Radio>
<Radio value="basketball">Basketball</Radio>
</RadioGroup>
<p>Current selection: {selected || 'None'}</p>
</>
);
}
Forms
Use the name
prop to submit the selected radio to the server. Set the isRequired
prop to validate that the user selects an option, or implement custom client or server-side validation. See the Forms guide to learn more.
isRequired
necessityIndicator
API
<RadioGroup>
<Radio />
</RadioGroup>
RadioGroup
Name | Type | Default |
---|---|---|
children | ReactNode | Default: — |
The Radios contained within the RadioGroup. | ||
size | 'S'
| 'M'
| 'L'
| 'XL' | Default: 'M'
|
The size of the RadioGroup. | ||
orientation | Orientation | Default: 'vertical'
|
The axis the radio elements should align with. | ||
isEmphasized | boolean | Default: — |
Whether the RadioGroup should be displayed with an emphasized style. | ||
isDisabled | boolean | Default: — |
Whether the input is disabled. | ||
isReadOnly | boolean | Default: — |
Whether the input can be selected but not changed by the user. | ||
styles | StylesProp | Default: — |
Spectrum-defined styles, returned by the style() macro. | ||
value | string | null | Default: — |
The current value (controlled). | ||
defaultValue | string | null | Default: — |
The default value (uncontrolled). | ||
onChange |
| Default: — |
Handler that is called when the value changes. | ||
Radio
Name | Type | |
---|---|---|
children | ReactNode | |
The label for the element. | ||
inputRef | RefObject | |
A ref for the HTML input element. | ||
isDisabled | boolean | |
Whether the radio button is disabled or not. Shows that a selection exists, but is not available in that circumstance. | ||
styles | StylesProp | |
Spectrum-defined styles, returned by the style() macro. | ||