Skip to Content
Sponsor

Radio

Radios are used when only one choice may be selected in a series of options.

Native HTML radios are 100% accessible by default, so we used a very common CSS technique to style the radio.

Installation#

Usage#

Editable Example

Radio with custom color#

You can override the colorScheme of the Radio to any color key specified in theme.colors.

Editable Example

Radio sizes#

The checkbox comes with 3 sizes.

Editable Example

Disabled radios#

Editable Example

Horizontal alignment#

Editable Example

Invalid Checkbox#

Editable Example

Custom Radio Buttons#

In some cases, you might need to create components that work like radios but don't look like radios. Chakra exports useRadio, and useRadioGroup hooks to help with this scenario. Here's what you need to do:

  1. Create a component that consumes the useRadio hook.
  2. Use the useRadioGroup hook to control a group of custom radios.
Editable Example

Note about name prop#

We recommend passing the name prop to the RadioGroup component, instead of passing it to each Radio component. By default, the name prop of the RadioGroup takes precedence.

Props#

NameTypeDefaultDescription
idstringThe id assigned to input field.
namestringThe name of the input field in a radio (Useful for form submission).
valuestring or numberThe value to be used in the radio input. This is the value that will be returned on form submission.
colorSchemestringThe color of the radio when it's checked. This should be one of the color keys in the theme (e.g."green", "red").
defaultIsCheckedbooleanIf true, the radio will be initially checked.
isCheckedbooleanIf true, the radio will be checked. You'll need to pass onChange to update it's value (since it's now controlled).
isFullWidthbooleanIf true, the radio should take up the full width of the parent.
sizesm, md, lgmdThe size (width and height) of the radio.
isDisabledbooleanIf true, the radio will be disabled.
isInvalidbooleanIf true, the radio is marked as invalid. Changes style of unchecked state.
childrenReact.ReactNodeThe children of the radio.
onChangefunctionFunction called when the state of the radio changes.
onBlurfunctionFunction called when you blur out of the radio.
onFocusfunctionFunction called when the radio receive focus.
aria-labelstringAn accessible label for the radio in event there's no visible label or children was passed.
aria-labelledbystringId that points to the label for the radio in event no children was passed.
Edit this page