Input · Radio
Radio
Radio component allows the user to select one option from a relative small set.
When to use
- Used to select a single state among multiple options.
- The difference from Select is that all available options in Radio are visible by default, making it easier for users to choose in comparison, so there should not be too many options.
Demos
How to import
Basic Usage
Extra Info
You can use
extra
to add extra information, which can be any type of ReactNode.Disabled
Advanced Mode
You can set
mode='advanced'
to allow options be able to unchecked when clicked again.Mutually Exclusive Set
You can use
RadioGroup
to create a set of mutually exclusive options.vertical arrangement
The radio elements in the group can be arranged horizontally or vertically by setting the
direction
property to the RadioGroupButton Style
version: >=1.26.0
You can use
type='button'
to set the button style type radio, and the button type radio supports three sizes.It should be noted that the button type radio selector does not support auxiliary text (
extra
) and vertical arrangement (direction='vertical'
).Card Style
version: >=1.30.0
You can set
type='card'
to RadioGroup
to achieve card style with background.Pure Card Style
version: >=1.30.0
You can set
type='pureCard'
to RadioGroup
to achieve a pure card style with background and no radio.Options Configuration
You can pass an array of options to
RadioGroup
using options
property to create a set.API Reference
Radio
PROPERTIES | Instructions | Type | Default |
---|---|---|---|
addonClassName | classname of content wrapper provided after v1.16.0 | string | |
addonId | id of addon node, aria-labelledby refers to this id, if not set, it will generate an id randomly provided after v2.11.0 | string | |
addonStyle | inline style of content wrapper provided after v1.16.0 | object | |
aria-label | Label of Radio | string | - |
autoFocus | Automatically focus the form control when the page is loaded | boolean | false |
checked | Specify whether it is currently selected | boolean | false |
className | Class name | string | |
defaultChecked | Checked by default | boolean | false |
disabled | Disable the radio | boolean | false |
extra | Extra information displayed | ReactNode | - |
extraId | id of extra node. aria-describedby refers to this id, if not set, it will randomly generate an id provided after v2.11.0 | ReactNode | - |
mode | In advanced mode, options can be clicked to uncheck, one of advanced | string | - |
name | The name attribute passed to input[type="radio"] in the Radio component, Radios with the same name belong to the same RadioGroup,The name attribute can refer to MDN Radio | string | - |
preventScroll | Indicates whether the browser should scroll the document to display the newly focused element, acting on the focus method inside the component, excluding the component passed in by the user | boolean | |
style | Inline style | CSSProperties | |
type | Set the type of radio, one of default , button , card , pureCard This api is provided after v2.18.0 | string | default |
value | Compared based on value to determine whether the option is selected | string | number | - |
onChange | Callback function when the selected option changes | Function (e: Event) | - |
onMouseEnter | The callback function when the mouse moves into the option | function(e:Event) | - |
onMouseLeave | The callback function when the mouse moves out the option | function(e:Event) | - |
RadioGroup
PROPERTIES | Instructions | Type | Default |
---|---|---|---|
aria-label | Label of RadioGroup | string | - |
buttonSize | The size of the button type radio, one of small 、middle 、large Provided after v1.26.0 | string | middle |
className | Class name | string | |
defaultValue | Options selected by default | string | number | - |
direction | Arrangement direction of Radio, optional 'horizontal' / 'vertical', provided after v0.31.0 | string | 'horizontal' |
disabled | Disable the entire group | boolean | false |
mode | In advanced mode, options can be clicked to uncheck, one of advanced provided after v1.9.0 | string | - |
name | The name attribute for all input[type="radio"] in RadioGroup | string | - |
options | Set child options through configuration | Array | - |
style | Inline style | CSSProperties | |
value | Used to set the currently selected value | string | number | - |
type | Set the type of radio, one of default , button , card , pureCard This api is provided after v1.26.0, and card and pureCard are in v1.30.0 Provided after | string | default |
onChange | Callback function when the selected option changes | Function (e: Event) | - |
Methods
Radio
Name | Description |
---|---|
blur() | Remove focus |
focus() | Get focus |
Accessibility
ARIA
aria-label
: used to explain the role of Radio or RadioGrouparia-labelledby
points to the addon node, used to explain the content of Radioaria-describedby
points to the extra node, which is used to explain the content of Radio
Keyboard and focus
- RadioGroup can be focused, the initial focus acquisition rules are as follows:
- When there is no selected item in the RadioGroup, the initial focus is on the first Radio item;
- When there are selected items in the RadioGroup, the initial focus is on the selected Radio item.
- For radios belonging to the same radiogroup:
- You can use
Right arrow
orDown arrow
to move the focus to the next Radio item, uncheck the previously focused Radio item, and select the currently focused Radio item; - You can Use
Left Arrow
orUp Arrow
to move the focus to the previous Radio item, at the same time uncheck the previously focused Radio item, and select the currently focused Radio item.
- You can use
- If there is no item selected in the RadioGroup, you can use the
Space
key to select the initial focus.
Content Guidelines
- Capitalize the first letter
- No punctuation