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
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosChecksExample = () => (
<>
<CFormCheck id="flexCheckDefault" label="Default checkbox" />
<CFormCheck id="flexCheckChecked" label="Checked checkbox" defaultChecked />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosChecksExample = () => (
<>
<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.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosIndeterminateExample = () => (
<CFormCheck id="flexCheckIndeterminate" label="Indeterminate checkbox" indeterminate />
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosIndeterminateExample = () => (
<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.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosDisabledExample = () => (
<>
<CFormCheck label="Disabled checkbox" disabled />
<CFormCheck label="Disabled checked checkbox" defaultChecked disabled />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosDisabledExample = () => (
<>
<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.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadiosExample = () => (
<>
<CFormCheck type="radio" name="flexRadioDefault" id="flexRadioDefault1" label="Default radio" />
<CFormCheck
type="radio"
name="flexRadioDefault"
id="flexRadioDefault2"
label="Checked radio"
defaultChecked
/>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadiosExample = () => (
<>
<CFormCheck type="radio" name="flexRadioDefault" id="flexRadioDefault1" label="Default radio" />
<CFormCheck
type="radio"
name="flexRadioDefault"
id="flexRadioDefault2"
label="Checked radio"
defaultChecked
/>
</>
)Disabled
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadiosDisabledExample = () => (
<>
<CFormCheck
type="radio"
name="flexRadioDisabled"
id="flexRadioDisabled"
label="Disabled radio"
disabled
/>
<CFormCheck
type="radio"
name="flexRadioDisabled"
id="flexRadioCheckedDisabled"
label="Disabled checked radio"
defaultChecked
disabled
/>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadiosDisabledExample = () => (
<>
<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.
import { CFormSwitch } from '@coreui/react'
export const ChecksRadiosSwitchesExample = () => (
<>
<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
/>
</>
)import { CFormSwitch } from '@coreui/react'
export const ChecksRadiosSwitchesExample = () => (
<>
<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
import { CFormSwitch } from '@coreui/react'
export const ChecksRadiosSwitchSizesExample = () => (
<>
<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"
/>
</>
)import { CFormSwitch } from '@coreui/react'
export const ChecksRadiosSwitchSizesExample = () => (
<>
<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.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosStackedExample = () => (
<>
<CFormCheck id="defaultCheck1" label="Default checkbox" />
<CFormCheck id="defaultCheck2" label="Disabled checkbox" disabled />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosStackedExample = () => (
<>
<CFormCheck id="defaultCheck1" label="Default checkbox" />
<CFormCheck id="defaultCheck2" label="Disabled checkbox" disabled />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosStackedRadiosExample = () => (
<>
<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
/>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosStackedRadiosExample = () => (
<>
<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>.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosInlineExample = () => (
<>
<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 />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosInlineExample = () => (
<>
<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 />
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosInlineRadiosExample = () => (
<>
<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
/>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosInlineRadiosExample = () => (
<>
<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).
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosWithoutLabelsExample = () => (
<>
<div>
<CFormCheck id="checkboxNoLabel" value="" aria-label="..." />
</div>
<div>
<CFormCheck type="radio" name="radioNoLabel" id="radioNoLabel" value="" aria-label="..." />
</div>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosWithoutLabelsExample = () => (
<>
<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
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check"
autoComplete="off"
label="Single toggle"
/>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check"
autoComplete="off"
label="Single toggle"
/>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsCheckedExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check-2"
autoComplete="off"
label="Checked"
defaultChecked
/>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsCheckedExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check-2"
autoComplete="off"
label="Checked"
defaultChecked
/>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsDisabledExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check-3"
autoComplete="off"
label="Disabled"
disabled
/>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosCheckboxToggleButtonsDisabledExample = () => (
<CFormCheck
button={{ color: 'primary' }}
id="btn-check-3"
autoComplete="off"
label="Disabled"
disabled
/>
)Radio toggle buttons
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadioToggleButtonsExample = () => (
<>
<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"
/>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosRadioToggleButtonsExample = () => (
<>
<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.
import { CFormCheck } from '@coreui/react'
export const ChecksRadiosOutlinedStylesExample = () => (
<>
<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>
</>
)import { CFormCheck } from '@coreui/react'
export const ChecksRadiosOutlinedStylesExample = () => (
<>
<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-pro'CFormSwitch
import { CFormSwitch } from '@coreui/react-pro'