RadioGroup

A radio group is used to group related options together.

Anatomy

Composed Components

A RadioGroup uses the following components.

Usage

Label

A radio group can have a label to provide more context to the user.

Disabled

A radio group can be disabled.

Sizes

A radio group can vary in size.

Orientation

A radio group can be displayed horizontally or vertically.

Description

A radio group can have a description to provide more information to the user.

Variants

A radio group can be bordered.

Invalid

A radio group can be invalid.

Controlled

A radio group can handle value state in controlled mode.

No Label on Items

A radio component can be rendered without a label.

Disabled Items

A radio component can be disabled.

Description on Items

A radio component can have a description to provide more information to the user.

Icon

Each radio can be customized with an icon or an icon list.

Props

RadioGroup

listProps?

The props of the list element that wraps the Radio components.

orientation?

A RadioGroup can be displayed horizontally or vertically.

Defaults to vertical.
variant?

A RadioGroup has two variants: borderless and bordered.

Defaults to borderless.
style?

The inline style for the element. A function may be provided to compute the style based on component state.

children?

The children of the component. A function may be provided to alter the children based on component state.

validationBehavior?

Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.

Defaults to 'native'.
value?

The current value (controlled).

defaultValue?

The default value (uncontrolled).

onChange?

Handler that is called when the value changes.

isDisabled?

Whether the input is disabled.

isReadOnly?

Whether the input can be selected but not changed by the user.

name?

The name of the input element, used when submitting an HTML form. See MDN.

isRequired?

Whether user input is required on the input before form submission.

isInvalid?

Whether the input value is invalid.

validate?

A function that returns an error message if a given value is invalid. Validation errors are displayed to the user when the form is submitted if validationBehavior="native". For realtime validation, use the isInvalid prop instead.

id?

The element's unique identifier. See MDN.

className?

The CSS className for the element. A function may be provided to compute the class based on component state.

description?

The helper message of the field.

errorMessage?

The error message of the field.

label?

The label of the field.

necessityIndicator?

Whether the required state should be shown as an asterisk or a label, which would display (Optional) on all non required field labels.

size?

A CheckboxGroup can vary in size.

Defaults to md.

Radio

size?

A radio can vary in size.

Defaults to md.
style?

The inline style for the element. A function may be provided to compute the style based on component state.

children?

The children of the component. A function may be provided to alter the children based on component state.

value

The value of the radio button, used when submitting an HTML form. See MDN.

isDisabled?

Whether the radio button is disabled or not. Shows that a selection exists, but is not available in that circumstance.

autoFocus?

Whether the element should receive focus on render.

id?

The element's unique identifier. See MDN.

inputRef?

A ref for the HTML input element.

className?

The CSS className for the element. A function may be provided to compute the class based on component state.

Migration Notes

RadioGroup

Coming from Orbiter, you should be aware of the following changes:

  • required has been renamed to isRequired.
  • onChange signature has changed (no event are passed).
  • disabled has been renamed to isDisabled.
  • autofocus is not supported. You must use autofocus on the actual Radio.
  • fluid has been removed.
  • reverse is not supported, use flex-direction or row-reverse instead.
  • The default orientation is now vertical instead of horizontal.
  • validationState has been removed. Use isInvalid instead. There is no isValid.
  • wrap has been removed. If horizontal, radios will wrap.
  • There is no align prop. If needed, the styled system can be used.
  • inline prop is not available.

Radio

Coming from Orbiter, you should be aware of the following changes:

  • The Counter component is no longer allowed as a specialized slot.
  • Values are not auto-generated when missed.
  • onChange is only supported on RadioGroup, not on Radio.
  • onValueChange has been deleted, use onChange instead.
  • checked has been renamed to isSelected.
  • disabled has been renamed to isDisabled.
  • required has been renamed to isRequired.
  • reverse is not supported, use flex-direction or row-reverse instead.
  • validationState has been removed. Yse isInvalid instead. There is no isValid.
  • value is required.