Checks and radios
Checks
<div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="flexCheckDefault"> <label class="form-check-label" for="flexCheckDefault">Default checkbox</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="flexCheckChecked" checked> <label class="form-check-label" for="flexCheckChecked">Checked checkbox</label> </div>
Indeterminate
Checkboxes can utilize the :indeterminate pseudo class when manually set via JavaScript (there is no available HTML attribute for specifying it).
<div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="demo" onclick="toggle(this)"> <label class="form-check-label" for="demo">Indeterminate checkbox</label> </div> <script> // Setting initial state var checkbox = document.getElementById("demo"); checkbox.indeterminate = true; // Toggle states function toggle(demo) { if (demo.readOnly) demo.checked=demo.readOnly=false; else if (!demo.checked) demo.readOnly=demo.indeterminate=true; } </script>
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.
<div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="flexCheckDisabled" disabled> <label class="form-check-label" for="flexCheckDisabled">Default checkbox</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" value="" id="flexCheckCheckedDisabled" checked disabled> <label class="form-check-label" for="flexCheckCheckedDisabled">Checked checkbox</label> </div>
Radios
<div class="form-check"> <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault1"> <label class="form-check-label" for="flexRadioDefault1">Default radio</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault2" checked> <label class="form-check-label" for="flexRadioDefault2">Default checked radio</label> </div>
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.
<div class="form-check"> <input class="form-check-input" type="radio" name="flexRadioDisabled" id="flexRadioDisabled" disabled> <label class="form-check-label" for="flexRadioDisabled">Default radio</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="flexRadioDisabled" id="flexRadioCheckedDisabled" checked disabled> <label class="form-check-label" for="flexRadioCheckedDisabled">Default checked radio</label> </div>
Switches
A switch has the markup of a custom checkbox but uses the .form-switch class to render a toggle switch. Switches also support the disabled attribute.
<div class="form-check form-switch"> <input class="form-check-input" type="checkbox" id="flexSwitchCheckDefault"> <label class="form-check-label" for="flexSwitchCheckDefault">Default switch checkbox input</label> </div> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" id="flexSwitchCheckChecked" checked> <label class="form-check-label" for="flexSwitchCheckChecked">Checked switch checkbox input</label> </div> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" id="flexSwitchCheckDisabled" disabled> <label class="form-check-label" for="flexSwitchCheckDisabled">Disabled switch checkbox input</label> </div> <div class="form-check form-switch"> <input class="form-check-input" type="checkbox" id="flexSwitchCheckCheckedDisabled" checked disabled> <label class="form-check-label" for="flexSwitchCheckCheckedDisabled">Disabled checked switch checkbox input</label> </div>
Styling Beets Exclusive
You can use the theme and contextual colors to style you checkboxes, radios and switches. Just add .form-check-{style} to the .form-check.
If you do not set any stile, the default color will be "primary", just like normal Bootstrap.
The styling works with the validation styles as well, meaning that the colors for the validation states will take over the styling, just like if there was no styling at all.
<div class="form-check form-check-secondary"> <input class="form-check-input" type="checkbox" id="styledCheckbox"> <label class="form-check-label" for="styledCheckbox">Secondary</label> </div> <div class="form-check form-check-dark"> <input class="form-check-input" type="radio" name="styledRadioName" id="styledRadio"> <label class="form-check-label" for="styledRadio">Dark</label> </div> <div class="form-check form-check-beets form-switch"> <input class="form-check-input" type="checkbox" id="styledSwitch"> <label class="form-check-label" for="styledSwitch">Beets</label> </div>
Inline
By default, any number of checkboxes and radios that are immediate sibling will be vertically stacked and appropriately spaced with .form-check. Group checkboxes or radios on the same horizontal row by adding .form-check-inline.
<div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1"> <label class="form-check-label" for="inlineCheckbox1">1</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2"> <label class="form-check-label" for="inlineCheckbox2">2</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled> <label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label> </div>
<div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> <label class="form-check-label" for="inlineRadio1">1</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> <label class="form-check-label" for="inlineRadio2">2</label> </div> <div class="form-check form-check-inline"> <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled> <label class="form-check-label" for="inlineRadio3">3 (disabled)</label> </div>
Without labels
Omit the wrapping .form-check for checkboxes and radios that have no label text.
<div> <input class="form-check-input" type="checkbox" id="checkboxNoLabel" value=""> </div> <div> <input class="form-check-input" type="radio" name="radioNoLabel" id="radioNoLabel1" value=""> </div>
Toggle buttons
Create button-like checkboxes and radio buttons by using .btn styles rather than .form-check-label on the <label> elements. These toggle buttons can further be grouped in a button group if needed.
Checkbox toggle buttons
<input type="checkbox" class="btn-check" id="btn-check" autocomplete="off"> <label class="btn btn-primary" for="btn-check">Single toggle</label> <input type="checkbox" class="btn-check" id="btn-check-2" autocomplete="off" checked> <label class="btn btn-primary" for="btn-check-2">Checked</label> <input type="checkbox" class="btn-check" id="btn-check-3" autocomplete="off" disabled> <label class="btn btn-primary" for="btn-check-3">Disabled</label>
Radio toggle buttons
<input type="radio" class="btn-check" name="options" id="option1" autocomplete="off" checked> <label class="btn btn-secondary" for="option1">Checked</label> <input type="radio" class="btn-check" name="options" id="option2" autocomplete="off"> <label class="btn btn-secondary" for="option2">Radio</label> <input type="radio" class="btn-check" name="options" id="option3" autocomplete="off" disabled> <label class="btn btn-secondary" for="option3">Disabled</label> <input type="radio" class="btn-check" name="options" id="option4" autocomplete="off"> <label class="btn btn-secondary" for="option4">Radio</label>