Skip to main contentCarbon Design System

Toggle

Toggle

Code:
<!--
  Copyright IBM Corp. 2016, 2018

  This source code is licensed under the Apache-2.0 license found in the
  LICENSE file in the root directory of this source tree.
-->

<div class="bx--form-item">
  <input class="bx--toggle-input" id="toggle0" type="checkbox">
  <label class="bx--toggle-input__label" for="toggle0" aria-label="example toggle with state indicator text">
    <span class="bx--toggle__switch">
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input" id="toggle1" type="checkbox">
  <label class="bx--toggle-input__label" for="toggle1">
    Toggle with visible label
    <span class="bx--toggle__switch">
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input" id="toggle3" type="checkbox" disabled>
  <label class="bx--toggle-input__label" for="toggle3"
    aria-label="example disabled toggle with state indicator text">
    <span class="bx--toggle__switch">
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input" id="toggle4" type="checkbox" disabled>
  <label class="bx--toggle-input__label" for="toggle4">
    Toggle with visible label
    <span class="bx--toggle__switch">
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

Small toggle

Code:
<!--
  Copyright IBM Corp. 2016, 2018

  This source code is licensed under the Apache-2.0 license found in the
  LICENSE file in the root directory of this source tree.
-->

<div class="bx--form-item">
  <input class="bx--toggle-input bx--toggle-input--small" id="smalltoggle1" type="checkbox">
  <label class="bx--toggle-input__label" for="smalltoggle1"
    aria-label="example toggle with state indicator text">
    <span class="bx--toggle__switch">
      <svg class="bx--toggle__check" width="6px" height="5px" viewBox="0 0 6 5">
        <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
      </svg>
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input bx--toggle-input--small" id="smalltoggle2" type="checkbox">
  <label class="bx--toggle-input__label" for="smalltoggle2">
    Toggle with visible label
    <span class="bx--toggle__switch">
      <svg class="bx--toggle__check" width="6px" height="5px" viewBox="0 0 6 5">
        <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
      </svg>
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input bx--toggle-input--small" id="smalltoggle4" type="checkbox" disabled>
  <label class="bx--toggle-input__label" for="smalltoggle4"
    aria-label="example disabled toggle with state indicator text">
    <span class="bx--toggle__switch">
      <svg class="bx--toggle__check" width="6px" height="5px" viewBox="0 0 6 5">
        <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
      </svg>
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

<div class="bx--form-item">
  <input class="bx--toggle-input bx--toggle-input--small" id="smalltoggle5" type="checkbox" disabled>
  <label class="bx--toggle-input__label" for="smalltoggle5">
    Toggle with visible label
    <span class="bx--toggle__switch">
      <svg class="bx--toggle__check" width="6px" height="5px" viewBox="0 0 6 5">
        <path d="M2.2 2.7L5 0 6 1 2.2 5 0 2.7 1 1.5z" />
      </svg>
      <span class="bx--toggle__text--off" aria-hidden="true">Off</span>
      <span class="bx--toggle__text--on" aria-hidden="true">On</span>
    </span>
  </label>
</div>

Documentation

SCSS

Modifiers

Use these modifiers with .bx--toggle class.

Selector Description
.bx--toggle-input--small Selector for applying small toggle styles

FAQ

Best practice

.bx--toggle-input__label must always have a value for the aria-label attribute. This makes it visible to screen readers.

The .bx--toggle__text--off and .bx--toggle__text--on elements are completely optional. If they are present, they can be hidden from screen readers with aria-hidden="true" since the checked state of the checkbox will indicate this information already.