React Checkbox & Radio Components
Checks & radios
Create consistent cross-browser and cross-device checkboxes and radios with our React checkbox, radio, and switch components.
Approach#
Browser default checkboxes and radios are replaced with the help of <CFormCheck>. Checkboxes are for selecting one or several options in a list, while radios are for selecting one option from many.
Checks#
<CFormCheck id="flexCheckDefault" label="Default checkbox"/><CFormCheck id="flexCheckChecked" label="Checked checkbox" defaultChecked />Indeterminate#
Checkboxes can utilize the :indeterminate pseudo-class when manually set via indeterminate property.
<CFormCheck id="flexCheckIndeterminate" label="Indeterminate checkbox" indeterminate />Disabled#
Add the disabled attribute and the associated <label>s are automatically styled to match with a lighter color to help indicate the input's state.
<CFormCheck label="Disabled checkbox" disabled/><CFormCheck label="Disabled checked checkbox" defaultChecked disabled/>Radios#
Add the disabled attribute and the associated <label>s are automatically styled to match with a lighter color to help indicate the input's state.
<CFormCheck type="radio" name="flexRadioDefault" id="flexRadioDefault1" label="Default radio"/><CFormCheck type="radio" name="flexRadioDefault" id="flexRadioDefault2" label="Checked radio" defaultChecked/>Disabled#
<CFormCheck type="radio" name="flexRadioDisabled" id="flexRadioDisabled" label="Disabled radio" disabled/><CFormCheck type="radio" name="flexRadioDisabled" id="flexRadioCheckedDisabled" label="Disabled checked radio" defaultChecked disabled/>Switches#
A switch has the markup of a custom checkbox but uses the switch boolean properly to render a toggle switch. Switches also support the disabled attribute.
<CFormSwitch label="Default switch checkbox input" id="formSwitchCheckDefault"/><CFormSwitch label="Checked switch checkbox input" id="formSwitchCheckChecked" defaultChecked/><CFormSwitch label="Disabled switch checkbox input" id="formSwitchCheckDisabled" disabled/><CFormSwitch label="Disabled checked switch checkbox input" id="formSwitchCheckCheckedDisabled" defaultChecked disabled/>Sizes#
<CFormSwitch label="Default switch checkbox input" id="formSwitchCheckDefault"/><CFormSwitch size="lg" label="Large switch checkbox input" id="formSwitchCheckDefaultLg"/><CFormSwitch size="xl" label="Extra large switch checkbox input" id="formSwitchCheckDefaultXL"/>Default (stacked)#
By default, any number of checkboxes and radios that are immediate sibling will be vertically stacked and appropriately spaced.
<CFormCheck id="defaultCheck1" label="Default checkbox"/><CFormCheck id="defaultCheck2" label="Disabled checkbox" disabled/><CFormCheck type="radio" name="exampleRadios" id="exampleRadios1" value="option1" label="Default radio" defaultChecked/><CFormCheck type="radio" name="exampleRadios" id="exampleRadios2" value="option2" label="Second default radio"/><CFormCheck type="radio" name="exampleRadios" id="exampleRadios3" value="option3" label="Disabled radio" disabled/>Inline#
Group checkboxes or radios on the same horizontal row by adding inline boolean property to any <CFormCheck>.
<CFormCheck inline id="inlineCheckbox1" value="option1" label="1"/><CFormCheck inline id="inlineCheckbox2" value="option2" label="2"/><CFormCheck inline id="inlineCheckbox3" value="option3" label="3 (disabled)" disabled/><CFormCheck inline type="radio" name="inlineRadioOptions" id="inlineCheckbox1" value="option1" label="1"/><CFormCheck inline type="radio" name="inlineRadioOptions" id="inlineCheckbox2" value="option2" label="2"/><CFormCheck inline type="radio" name="inlineRadioOptions" id="inlineCheckbox3" value="option3" label="3 (disabled)" disabled/>Without labels#
Remember to still provide some form of accessible name for assistive technologies (for instance, using aria-label).
<div> <CFormCheck id="checkboxNoLabel" value="" aria-label="..."/></div><div> <CFormCheck type="radio" name="radioNoLabel" id="radioNoLabel" value="" aria-label="..."/></div>Toggle buttons#
Create button-like checkboxes and radio buttons by using button boolean property on the <CFormCheck> component. These toggle buttons can further be grouped in a button group if needed.
Checkbox toggle buttons#
<CFormCheck button={{ color: 'primary' }} id="btn-check" autoComplete="off" label="Single toggle" /><CFormCheck button={{ color: 'primary' }} id="btn-check-2" autoComplete="off" label="Checked" defaultChecked/><CFormCheck button={{ color: 'primary' }} id="btn-check-3" autoComplete="off" label="Disabled" disabled/>Radio toggle buttons#
<CFormCheck button={{ color: 'secondary' }} type="radio" name="options" id="option1" autoComplete="off" label="Checked" defaultChecked/><CFormCheck button={{ color: 'secondary' }} type="radio" name="options" id="option2" autoComplete="off" label="Radio"/><CFormCheck button={{ color: 'secondary' }} type="radio" name="options" id="option3" autoComplete="off" label="Radio" disabled/><CFormCheck button={{ color: 'secondary' }} type="radio" name="options" id="option4" autoComplete="off" label="Radio"/>Outlined styles#
Different variants of button, such at the various outlined styles, are supported.
<div> <CFormCheck button={{ color: 'primary', variant: 'outline' }} id="btn-check-outlined" autoComplete="off" label="Single toggle"/></div><div> <CFormCheck button={{ color: 'secondary', variant: 'outline' }} id="btn-check-2-outlined" autoComplete="off" label="Checked" defaultChecked/></div><div> <CFormCheck button={{ color: 'success', variant: 'outline' }} type="radio" name="options-outlined" id="success-outlined" autoComplete="off" label="Radio" defaultChecked/> <CFormCheck button={{ color: 'danger', variant: 'outline' }} type="radio" name="options-outlined" id="danger-outlined" autoComplete="off" label="Radio"/></div>API#
CFormCheck#
import { CFormCheck } from '@coreui/react'// orimport CFormCheck from '@coreui/react/src/components/form/CFormCheck'| Property | Default | Type |
|---|---|---|
| button# | - | ButtonObject |
|
Create button-like checkboxes and radio buttons. |
||
| className# | - | string |
|
A string of all className you want applied to the component. |
||
| feedback#4.2.0+ | - | ReactNode |
|
Provide valuable, actionable feedback. |
||
| feedbackInvalid#4.2.0+ | - | ReactNode |
|
Provide valuable, actionable feedback. |
||
| feedbackValid#4.2.0+ | - | ReactNode |
|
Provide valuable, actionable invalid feedback when using standard HTML form validation which applied two CSS pseudo-classes, |
||
| floatingLabel#4.2.0+ | - | ReactNode |
|
Provide valuable, actionable valid feedback when using standard HTML form validation which applied two CSS pseudo-classes, |
||
| hitArea# | - | 'full' |
|
Sets hit area to the full area of the component. |
||
| id# | - | string |
|
The id global attribute defines an identifier (ID) that must be unique in the whole document. |
||
| indeterminate# | - | boolean |
|
Input Checkbox indeterminate Property. |
||
| inline# | - | boolean |
|
Group checkboxes or radios on the same horizontal row. |
||
| invalid# | - | boolean |
|
Set component validation state to invalid. |
||
| label# | - | ReactNode |
|
The element represents a caption for a component. |
||
| reverse# | - | boolean |
|
Put checkboxes or radios on the opposite side. |
||
| tooltipFeedback#4.2.0+ | - | boolean |
|
Display validation feedback in a styled tooltip. |
||
| type# | checkbox |
'checkbox', 'radio' |
|
Specifies the type of component. |
||
| valid# | - | boolean |
|
Set component validation state to valid. |
||
CFormSwitch#
import { CFormSwitch } from '@coreui/react'// orimport CFormSwitch from '@coreui/react/src/components/form/CFormSwitch'| Property | Default | Type |
|---|---|---|
| className# | - | string |
|
A string of all className you want applied to the component. |
||
| id# | - | string |
|
The id global attribute defines an identifier (ID) that must be unique in the whole document. |
||
| invalid# | - | boolean |
|
Set component validation state to invalid. |
||
| label# | - | ReactNode |
|
The element represents a caption for a component. |
||
| reverse# | - | boolean |
|
Put switch on the opposite side. |
||
| size# | - | 'lg', 'xl' |
|
Size the component large or extra large. Works only with |
||
| type# | checkbox |
'checkbox', 'radio' |
|
Specifies the type of component. |
||
| valid# | - | boolean |
|
Set component validation state to valid. |
||