On this page
RadioGroup
Renders a set of radio inputs to let users make a single selection from a short list of options
On this page
Examples
Basic
Using onChange handlers
Disabled
Required
With validation
With caption
A visually hidden label
With an external label
Props
RadioGroup
Name | Type | Default | Description |
---|---|---|---|
aria-labelledby | string | Used when associating the input group with a label other than RadioGroup.Label | |
children Required | RadioGroup.Label | RadioGroup.Caption | RadioGroup.Validation | FormControl | ||
disabled | boolean | false | Whether the input group allows user input |
id | string | A generated string | <span> The unique identifier for this input group. Used to associate the label, validation text, and caption text. <br /> You may want a custom ID to make it easier to select elements in integration tests. </span> |
name Required | string | The name used to identify this group of radios | |
onChange | (selected: string | null, e?: ChangeEvent<HTMLInputElement>) => void | An onChange handler that gets called when the selection changes | |
required | boolean | false | If true, the user must make a selection before the owning form can be submitted |
sx | SystemStyleObject | Style overrides to apply to the component. See also overriding styles. |
RadioGroup.Label
Name | Type | Default | Description |
---|---|---|---|
visuallyHidden | boolean | false | If true, the fieldset legend will be visually hidden |
sx | SystemStyleObject | Style overrides to apply to the component. See also overriding styles. |
RadioGroup.Description
Name | Type | Default | Description |
---|---|---|---|
children | React.ReactNode | The caption content | |
sx | SystemStyleObject | Style overrides to apply to the component. See also overriding styles. |
RadioGroup.Validation
Name | Type | Default | Description |
---|---|---|---|
children | React.ReactNode | The validation message | |
variant Required | 'error' | 'success' | 'warning' | Changes the visual style to match the validation status | |
sx | SystemStyleObject | Style overrides to apply to the component. See also overriding styles. |
Status
Alpha
- Component props and basic example usage of the component are documented on primer.style/react.
- Component does not have any unnecessary third-party dependencies.
- Component can adapt to different themes.
- Component can adapt to different screen sizes.
- Component has robust unit test coverage (100% where achievable).
- Component has visual regression coverage of its default and interactive states.
- Component does not introduce any axe violations.
- Component has been manually reviewed by the accessibility team and any resulting issues have been addressed.
Beta
- Component is used in a production application.
- Common usage examples are documented on primer.style/react.
- Common usage examples are documented in storybook stories.
- Component has been reviewed by a systems designer and any resulting issues have been addressed.
- Component does not introduce any performance regressions.
Stable
- Component API has been stable with no breaking changes for at least one month.
- Feedback on API usability has been sought from developers using the component and any resulting issues have been addressed.
- Component has corresponding design guidelines documented in the interface guidelines.
- Component has corresponding Figma component in the Primer Web library.
- Tooling (such as linters, codemods, etc.) exists to prevent further use of alternatives.