RadioGroup

A radio group is used to group related options together.

Props

RadioGroup

necessityIndicator?

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

orientation?

A RadioGroup can be displayed horizontally or vertically.

Defaults to vertical.
size?

A RadioGroup can vary in size.

Defaults to md.
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.

onFocus?

Handler that is called when the element receives focus.

onBlur?

Handler that is called when the element loses focus.

onFocusChange?

Handler that is called when the element's focus status changes.

aria-label?

Defines a string value that labels the current element.

aria-labelledby?

Identifies the element (or elements) that labels the current element.

aria-describedby?

Identifies the element (or elements) that describes the object.

aria-details?

Identifies the element (or elements) that provide a detailed, extended description for the object.

aria-errormessage?

Identifies the element that provides an error message for the object.

slot?

A slot name for the component. Slots allow the component to receive props from a parent component. An explicit null value indicates that the local props completely override all props received from a parent.

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.

onFocus?

Handler that is called when the element receives focus.

onBlur?

Handler that is called when the element loses focus.

onFocusChange?

Handler that is called when the element's focus status changes.

onKeyDown?

Handler that is called when a key is pressed.

onKeyUp?

Handler that is called when a key is released.

onHoverStart?

Handler that is called when a hover interaction starts.

onHoverEnd?

Handler that is called when a hover interaction ends.

onHoverChange?

Handler that is called when the hover state changes.

aria-label?

Defines a string value that labels the current element.

aria-labelledby?

Identifies the element (or elements) that labels the current element.

aria-describedby?

Identifies the element (or elements) that describes the object.

aria-details?

Identifies the element (or elements) that provide a detailed, extended description for the object.

slot?

A slot name for the component. Slots allow the component to receive props from a parent component. An explicit null value indicates that the local props completely override all props received from a parent.

Anatomy

Composed Components

A RadioGroup uses the following components.

RadioGroup Examples

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.

Radio Examples

Label

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

Disabled

A radio component can be disabled.

Description

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.

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.