Checkbox Toggle
- HTML/CSS:Dev Ready
- Layout:Responsive
A checkable input that communicates if an option is true, false or indeterminate
Base
Preview
About Checkbox Toggle
The ability to style checkboxes with CSS varies across browsers. To ensure that checkboxes look the same everywhere, we use a custom DOM. Pay close attention to the markup, because all elements must exist for the styles to work.
Accessibility
Groups of checkboxes should be marked up using the fieldset and legend element. This helps someone using assistive technology to understand the question they're answering with the group of checkboxes. The fieldset is placed around the whole group and the legend contains the question.
Custom checkboxes are created by applying the .slds-checkbox class to
a <label> element. To remain accessible to all user agents, place
<input> with type="checkbox" inside the <label> element. The <input>
is then visually hidden, and the styling is placed on a span with
the .slds-checkbox_faux class. The styling of the span changes based
on whether the checkbox is selected or focused by using a pseudo-element.
A second span with .slds-form-element__label contains the label text.
When a single checkbox is required, <div class="slds-checkbox"> should
get <abbr class="required" title="required">*</abbr> added to the DOM,
directly before the <input type="checkbox" /> for visual indication
that the checkbox is required.
When a checkbox group is required, the <fieldset> should receive the
class .slds-is-required. The <legend> should then get
<abbr class="required" title="required">*</abbr> added to the DOM for
visual indication that the checkbox group is required.
As SLDS checkboxes rely on the :checked psuedo selector, and the indeterminate state is only accessible via JavaScript, the use of a CSS class on the input will be necessary to implement this in SLDS. Use JavaScript to add the class when the indeterminate property is set to true on the input.
The following JavaScript demonstrates how to set a checkbox to be indeterminate:
var checkbox = document.getElementById('checkbox-indeterminate-01');
checkbox.indeterminate = true;
Overview of CSS Classes
- Selector
- The CSS class being referred to.
- Summary
- A description of what the class does.
- Support
- Whether the class name is dev-ready (meaning it's fully vetted and tested and safe to use) or prototype (which means it's not fully vetted yet).
- Restrict
- The selector that the class name is allowed to be used on.
- Variant
- The base level pattern for a component. A variant can be extended to create another variant of that component, for example, a stateful button is a derivative of the base button.
- Modifier
- A single class that can be added to an HTML element of a component to modify its output. Typically these will be colors, sizing and positioning.
| Selector | .slds-checkbox_toggle |
|---|---|
| Summary | Initializes checkbox toggle |
| Support | dev-ready |
| Restrict | label |
| Variant | True |
| Selector | .slds-checkbox_faux |
|---|---|
| Summary | Creates a custom styled checkbox |
| Restrict | .slds-checkbox_toggle span |
| Selector | .slds-checkbox_faux_container |
|---|---|
| Summary | Container for faux checkbox element |
| Restrict | .slds-checkbox_toggle span |
| Selector | .slds-checkbox_off |
|---|---|
| Summary | Container for text to show when checkbox is toggle off |
| Restrict | .slds-checkbox_faux_container span |
| Selector | .slds-checkbox_off |
|---|---|
| Summary | Container for text to show when checkbox is toggle on |
| Restrict | .slds-checkbox_faux_container span |