Radio
An easily stylable radio button component.
API reference
Radio is always placed within Radio Group. Import the components and place them together:
import { Radio } from '@base-ui-components/react/radio';
import { RadioGroup } from '@base-ui-components/react/radio-group';
<RadioGroup>
  <Radio.Root>
    <Radio.Indicator />
  </Radio.Root>
</RadioGroup>| Prop | Type | Default | |
|---|---|---|---|
name | 
  | 
  | |
defaultValue | 
  | 
  | |
value | 
  | 
  | |
onValueChange | 
  | 
  | |
disabled | 
  | 
  | |
readOnly | 
  | 
  | |
required | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-disabled | Present when the radio group is disabled.  | |
Root
Represents the radio button itself.
Renders a <button> element and a hidden <input> beside.
| Prop | Type | Default | |
|---|---|---|---|
value | 
  | 
  | |
disabled | 
  | 
  | |
readOnly | 
  | 
  | |
required | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-checked | Present when the radio is checked.  | |
data-unchecked | Present when the radio is not checked.  | |
data-disabled | Present when the radio is disabled.  | |
data-readonly | Present when the radio is readonly.  | |
data-required | Present when the radio is required.  | |
data-valid | Present when the radio is in valid state (when wrapped in Field.Root).  | |
data-invalid | Present when the radio is in invalid state (when wrapped in Field.Root).  | |
data-dirty | Present when the radio's value has changed (when wrapped in Field.Root).  | |
data-touched | Present when the radio has been touched (when wrapped in Field.Root).  | |
data-filled | Present when the radio is checked (when wrapped in Field.Root).  | |
data-focused | Present when the radio is focused (when wrapped in Field.Root).  | |
Indicator
Indicates whether the radio button is selected.
Renders a <span> element.
| Prop | Type | Default | |
|---|---|---|---|
className | 
  | 
  | |
keepMounted | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-checked | Present when the radio is checked.  | |
data-unchecked | Present when the radio is not checked.  | |
data-disabled | Present when the radio is disabled.  | |
data-readonly | Present when the radio is readonly.  | |
data-required | Present when the radio is required.  | |
data-valid | Present when the radio is in valid state (when wrapped in Field.Root).  | |
data-invalid | Present when the radio is in invalid state (when wrapped in Field.Root).  | |
data-dirty | Present when the radio's value has changed (when wrapped in Field.Root).  | |
data-touched | Present when the radio has been touched (when wrapped in Field.Root).  | |
data-filled | Present when the radio is checked (when wrapped in Field.Root).  | |
data-focused | Present when the radio is focused (when wrapped in Field.Root).  | |