web
mobile
Edit these docs Rate these docs

Switch

Bootstrap switch / Bootstrap toggle

Bootstrap switch/toggle is a simple component used for activating one of two predefined options. Commonly used as an on/off button.

It's mostly used in a number of various forms since they are very simple to use and cut the time one needs to fill all the inputs.

Examples of Bootstrap switch use:

  • Forms
  • On/Off Functionality
  • Preference choice

Default switch

A switch has the markup of a custom checkbox but uses the .custom-switch class to render a toggle switch. Switches also support the disabled attribute.



            <!-- Default switch -->
            <div class="custom-control custom-switch">
              <input type="checkbox" class="custom-control-input" id="customSwitches">
              <label class="custom-control-label" for="customSwitches">Toggle this switch element</label>
            </div>
          

Material switch MDB Pro component

Material Design styling for the Bootstrap Switch component



            <!-- Material switch -->
            <div class="switch">
              <label>
                Off
                <input type="checkbox">
                <span class="lever"></span> On
              </label>
            </div>

          

Checked state

Add the checked attribute to the <input> element to pre-select the switch when the page loads.

The checked attribute is a boolean attribute.

Default switch



            <!-- Default checked -->
            <div class="custom-control custom-switch">
              <input type="checkbox" class="custom-control-input" id="customSwitch1" checked>
              <label class="custom-control-label" for="customSwitch1">Toggle this switch element</label>
            </div>
          

Material switch MDB Pro component



            <!-- Material checked -->
            <div class="switch">
              <label>
                Off
                <input type="checkbox" checked>
                <span class="lever"></span> On
              </label>
            </div>

          

Disabled state

Add the disabled boolean attribute to the <input> element and the custom indicator and the label description will be automatically styled and blocked.

A disabled <input> element is unusable and un-clickable.

Default switch



            <!-- Default disabled -->
            <div class="custom-control custom-switch">
              <input type="checkbox" class="custom-control-input" id="customSwitch2" disabled>
              <label class="custom-control-label" for="customSwitch2">Toggle this switch element</label>
            </div>
          

Material switch MDB Pro component



            <!-- Material disabled -->
            <div class="switch">
              <label>
                Off
                <input type="checkbox" disabled>
                <span class="lever"></span> On
              </label>
            </div>

          
Edit these docs Rate these docs

Getting started: download & setup


Download

All of the components and features are a part of the MDBootstrap package.

MDBootstrap (Material Design for Bootstrap) is an MIT Licensed framework - free for personal & commercial use.

It combines the esthetic of Material Design and the functionalities of the newest Bootstrap.

Click on the button below to visit the Getting Started Page, where you can download the latest MDBootstrap package.

MDBootstrap Download MDBootstrap About

MDB Pro

Using components and features labeled as MDB Pro component requires the MDB Pro package - a powerful UI Kit containing over 5,000 components, dozens of plugins and much more cool features.

Click the button below to learn more about the MDBootstrap Pro package.

MDBootstrap Pro

Tutorials

If you need any additional help, use our "5 min Quick Start" guide or start full Bootstrap tutorial.

5 min Quick Start Full Bootstrap Tutorial

Compilation & Customization

To reduce the weight of MDBootstrap package even more, you can compile your own, custom package containing only those components and features that you need.

If you need additional help with compiling your custom package, please use our Compilation & Customization tutorial.

Compilation & Customization tutorial

Map of dependencies of SCSS files in MDBootstrap:


    Legend:

    '-->' means 'required'

    All free and pro files require files from 'core' catalog

    'none' means 'this component doesn't require anything except core files'

    A file wrapped by `< >` means that this file make the base component prettier but it isn't necessary for the proper working

    All PRO components require 'pro/_variables.scss' file

    scss/
    |
    |-- core/
    |   |
    |   |-- bootstrap/
    |   |	|-- _functions.scss
    |   |	|-- _variables.scss
    |   |
    |   |-- _colors.scss
    |   |-- _global.scss
    |   |-- _helpers.scss
    |   |-- _masks.scss
    |   |-- _mixins.scss
    |   |-- _typography.scss
    |   |-- _variables.scss
    |   |-- _waves.scss
    |
    |-- free/
    |   |-- _animations-basic.scss --> none
    |   |-- _animations-extended.scss --> _animations-basic.scss
    |   |-- _buttons.scss --> none
    |   |-- _cards.scss --> none <_buttons.scss>
    |   |-- _dropdowns.scss --> none <_buttons.scss>
    |   |-- _input-group.scss --> _forms.scss, _buttons.scss, _dropdowns.scss
    |   |-- _navbars.scss --> none <_buttons.scss, _forms.scss, _input-group.scss>
    |   |-- _pagination.scss --> none
    |   |-- _badges.scss --> none
    |   |-- _modals.scss --> _buttons.scss, _forms.scss (PRO --> _tabs.scss)
    |   |-- _carousels.scss --> <_buttons.scss>
    |   |-- _forms.scss --> none
    |   |-- _msc.scss --> none <_buttons.scss, _forms.scss, _cards.scss>
    |   |-- _footers.scss none <_buttons.scss> (PRO: )
    |   |-- _list-group.scss --> none
    |   |-- _tables.scss --> none (PRO: _material-select.scss, pro/_forms.scss, _checkbox.scss, pro/_buttons.scss, pro/_cards.scss, _pagination.scss, pro/_msc.scss)
    |   |-- _depreciated.scss
    |
    |-- pro/
    |   |
    |   |-- picker/
    |   |   |-- _default.scss --> none
    |   |   |-- _default-time.scss --> _default.scss, free/_forms.scss, free/_buttons.scss, pro/_buttons.scss, free/_cards.scss
    |   |   |-- _default-date.scss --> _default.scss, free/_forms.scss
    |   |
    |   |-- sections/
    |   |   |-- _templates.scss --> _sidenav.scss
    |   |   |-- _social.scss --> free/_cards.scss, free/ _forms.scss, free/_buttons.scss, pro/_buttons.scss,
    |   |   |-- _team.scss --> free/_buttons.scss, pro/_buttons.scss, free/_cards.scss, pro/_cards.scss
    |   |   |-- _testimonials.scss --> free/_carousels.scss, pro/_carousels.scss, free/_buttons.scss, pro/_buttons.scss
    |   |   |-- _magazine.scss --> _badges.scss
    |   |   |-- _pricing.scss --> free/_buttons.scss, pro/_buttons.scss
    |   |   |-- _contacts.scss --> free/_forms.scss, pro/_forms.scss, free/_buttons.scss, pro/_buttons.scss
    |   |
    |   |-- _variables.scss
    |   |-- _buttons.scss --> free/_buttons.scss, pro/_msc.scss, _checkbox.scss, _radio.scss
    |   |-- _social-buttons.scss --> free/_buttons.scss, pro/_buttons.scss
    |   |-- _tabs.scss --> _cards.scss
    |   |-- _cards.scss --> free/_cards.scss <_buttons.scss, _social-buttons.scss>
    |   |-- _dropdowns.scss --> free/_dropdowns.scss, free/_buttons.scss
    |   |-- _navbars.scss --> free/_navbars.scss  (PRO: )
    |   |-- _scrollspy.scss --> none
    |   |-- _lightbox.scss --> none
    |   |-- _chips.scss --> none
    |   |-- _msc.scss --> none
    |   |-- _forms.scss --> none
    |   |-- _radio.scss --> none
    |   |-- _checkbox.scss --> none
    |   |-- _material-select.scss --> none
    |   |-- _switch.scss --> none
    |   |-- _file-input.scss --> free/_forms.scss, free/_buttons.scss
    |   |-- _range.scss --> none
    |   |-- _input-group.scss --> free/_input-group.scss and the same what free input group, _checkbox.scss, _radio.scss
    |   |-- _autocomplete.scss --> free/_forms.scss
    |   |-- _accordion.scss --> pro/_animations.scss, free/_cards.scss
    |   |-- _parallax.scss --> none
    |   |-- _sidenav.scss --> free/_forms.scss, pro/_animations.scss, sections/_templates.scss
    |   |-- _ecommerce.scss --> free/_cards.scss, pro/_cards.scss, free/_buttons.scss, pro/_buttons.scss, pro/_msc.scss
    |   |-- _carousels.scss --> free/_carousels.scss, free/_cards.scss, free/_buttons.scss 
    |   |-- _steppers.scss --> free/_buttons.scss
    |   |-- _blog.scss --> none
    |   |-- _toasts.scss --> free/_buttons.scss
    |   |-- _animations.scss --> none
    |   |-- _charts.scss --> none
    |   |-- _progress.scss --> none
    |   |-- _scrollbar.scss --> none
    |   |-- _skins.scss --> none
    |   |-- _depreciated.scss
    |
    `-- _custom-skin.scss
    `-- _custom-styles.scss
    `-- _custom-variables.scss
    `-- mdb.scss

  

Map of dependencies of JavaScript modules in MDBootstrap:


    Legend:

    '-->' means 'required'

    All files require jQuery and bootstrap.js

    js/
    ├── dist/
    │   ├── buttons.js
    │   ├── cards.js
    │   ├── character-counter.js
    │   ├── chips.js
    │   ├── collapsible.js --> vendor/velocity.js
    │   ├── dropdown.js --> Popper.js, jquery.easing.js
    │   ├── file-input.js
    │   ├── forms-free.js
    │   ├── material-select.js --> dropdown.js
    │   ├── mdb-autocomplete.js
    │   ├── preloading.js
    │   ├── range-input.js --> vendor/velocity.js
    │   ├── scrolling-navbar.js
    │   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
    │   └── smooth-scroll.js
    ├── _intro-mdb-pro.js
    ├── modules.js
    ├── src/
    │   ├── buttons.js
    │   ├── cards.js
    │   ├── character-counter.js
    │   ├── chips.js
    │   ├── collapsible.js --> vendor/velocity.js
    │   ├── dropdown.js --> Popper.js, jquery.easing.js
    │   ├── file-input.js
    │   ├── forms-free.js
    │   ├── material-select.js --> dropdown.js
    │   ├── mdb-autocomplete.js
    │   ├── preloading.js
    │   ├── range-input.js --> vendor/velocity.js
    │   ├── scrolling-navbar.js
    │   ├── sidenav.js --> vendor/velocity.js, vendor/hammer.js, vendor/jquery.hammer.js
    │   └── smooth-scroll.js
    └── vendor/
        ├── addons/
        │   ├── datatables.js
        │   └── datatables.min.js
        ├── chart.js
        ├── enhanced-modals.js
        ├── hammer.js
        ├── jarallax.js
        ├── jarallax-video.js --> vendor/jarallax.js
        ├── jquery.easing.js
        ├── jquery.easypiechart.js
        ├── jquery.hammer.js --> vendor/hammer.js
        ├── jquery.sticky.js
        ├── lightbox.js
        ├── picker-date.js --> vendor/picker.js
        ├── picker.js
        ├── picker-time.js --> vendor/picker.js
        ├── scrollbar.js
        ├── scrolling-navbar.js
        ├── toastr.js
        ├── velocity.js
        ├── waves.js
        └── wow.js
  

Integrations with Angular, React or Vue

Apart from the standard Bootstrap integration (using jQuery), MDBootstrap also integrates with Angular, React and Vue.

About MDB Angular About MDB React About MDB Vue

Exclusive resources

MDBootstrap is a platform for web creators and MDB packages are only a part of it.

If you sign up you'll gain free access to other useful tools & resources including:

  • Community developed components & design projects
  • Technical support & community forum
  • CLI interface & free project hosting
  • Helpful articles & news agregators

...and much more!

Don't hesitate and sign up now!

Sign up now
Edit these docs Rate these docs

Switch examples & customization


Switch colors variations MDB Pro component

Add one of the following classes:

  • primary-switch
  • secondary-switch
  • default-switch
  • info-switch
  • warning-switch
  • danger-switch
  • success-switch
  • blue-white-switch
  • teal-switch
  • pink-switch
  • amber-switch
  • blue-switch
  • indigo-switch
  • mdb-color-switch


        <!-- Switch -->
        <div class="switch primary-switch">
          <label>
            Off
            <input type="checkbox" checked="checked">
            <span class="lever"></span> On
          </label>
        </div>

      


        .switch.primary-switch label input[type=checkbox]:checked + .lever {
          background-color: #689DF6;
        }
        .switch.primary-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #4285F4;
        }
        .switch.default-switch label input[type=checkbox]:checked + .lever {
          background-color: #4DCCBF;
        }
        .switch.default-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #2BBBAD;
        }
        .switch.secondary-switch label input[type=checkbox]:checked + .lever {
          background-color: #C791E2;
        }
        .switch.secondary-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #a6c;
        }
        .switch.success-switch label input[type=checkbox]:checked + .lever {
          background-color: #2ACC6C;
        }
        .switch.success-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #00C851;
        }
        .switch.info-switch label input[type=checkbox]:checked + .lever {
          background-color: #59C3EB;
        }
        .switch.info-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #33b5e5;
        }
        .switch.warning-switch label input[type=checkbox]:checked + .lever {
          background-color: #FFA339;
        }
        .switch.warning-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #F80;
        }
        .switch.danger-switch label input[type=checkbox]:checked + .lever {
          background-color: #FF606F;
        }
        .switch.danger-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #ff3547;
        }
        .switch.teal-switch label input[type=checkbox]:checked + .lever {
          background-color: #b2dfdb;
        }
        .switch.teal-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #80cbc4;
        }
        .switch.pink-switch label input[type=checkbox]:checked + .lever {
          background-color: #f8bbd0;
        }
        .switch.pink-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #f48fb1;
        }
        .switch.blue-switch label input[type=checkbox]:checked + .lever {
          background-color: #b3e5fc;
        }
        .switch.blue-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #81d4fa;
        }
        .switch.amber-switch label input[type=checkbox]:checked + .lever {
          background-color: #ffe082;
        }
        .switch.amber-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #ffd54f;
        }
        .switch.mdb-color-switch label input[type=checkbox]:checked + .lever {
          background-color: #618FB5;
        }
        .switch.mdb-color-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #3F729B;
        }
        .switch.indigo-switch label input[type=checkbox]:checked + .lever {
          background-color: #9fa8da;
        }
        .switch.indigo-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #7986cb;
        }
        .switch.blue-white-switch label input[type=checkbox]:checked + .lever {
          background-color: #2196f3;
        }
        .switch.blue-white-switch label input[type=checkbox]:checked + .lever:after {
          background-color: #fff;
        }
        .switch.blue-white-switch label .lever  {
          background-color: #ccc;
        }
        .switch.blue-white-switch label .lever:after {
          background-color: #fff;
        }

      

Switch shapes variations

Switch without labels



        <!-- Switch -->
        <div class="switch square blue-white-switch">
          <label>
            Off
            <input type="checkbox" checked="checked">
            <span class="lever"></span> On
          </label>
        </div>

        <!-- Switch -->
        <div class="switch round blue-white-switch">
          <label>
            Off
            <input type="checkbox" checked="checked">
            <span class="lever"></span> On
          </label>
        </div>

      


        .switch.round label .lever {
          width: 54px;
          height: 34px;
          border-radius: 10em;
        }
        .switch.round label .lever:after {
          width: 26px;
          height: 26px;
          border-radius: 50%;
          left: 4px;
          top: 4px;
        }
        .switch.square label .lever {
          width: 54px;
          height: 34px;
          border-radius: 0px;
        }
        .switch.square label .lever:after {
          width: 26px;
          height: 26px;
          border-radius: 0px;
          left: 4px;
          top: 4px;
        }

      

Switch within form

Sign up

Would you like to receive our newsletter?



        <div class="card">
          <div class="card-body">

            <!-- Form register -->
            <form>
              <p class="h3 text-center my-4 blue-text">Sign up</p>
              <div class="md-form">
                <i class="fas fa-user prefix grey-text"></i>
                <input type="text" id="switchForm-name2" class="form-control">
                <label for="switchForm-name2">Your name</label>
              </div>
              <div class="md-form">
                <i class="fas fa-envelope prefix grey-text"></i>
                <input type="text" id="switchForm-email2" class="form-control">
                <label for="switchForm-email2">Your email</label>
              </div>
              <div class="md-form">
                <i class="fas fa-lock prefix grey-text"></i>
                <input type="password" id="switchForm-pass2" class="form-control">
                <label for="switchForm-pass2">Your password</label>
              </div>
              <div class="col-md-12 text-center">
                <p class="font-small text-muted">Would you like to receive our newsletter?</p>
                <!-- Switch -->
                <div class="switch primary-switch text-muted font-small">
                  <label>
                    No
                    <input type="checkbox" checked="checked">
                    <span class="lever"></span>
                    Yes
                  </label>
                </div>
              </div>
              <div class="text-center my-3">
                <button class="btn btn-primary btn-rounded">Sign up</button>
              </div>
            </form>
            <!-- Form register -->

          </div>
        </div>

      

Switch within modal



        <!-- Button trigger modal -->
        <button type="button" class="btn btn-primary btn-rounded" data-toggle="modal" data-target="#basicExample1">
          Launch modal with switch
        </button>

        <!-- Modal -->
        <div class="modal fade" id="basicExample1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1" aria-hidden="true">
          <div class="modal-dialog" role="document">
            <!-- Content -->
            <div class="modal-content">
              <!-- Header -->
              <div class="modal-header text-center">
                <h4 class="modal-title w-100 font-weight-bold blue-text h3" id="myModalLabel1">Subscription</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                  <span aria-hidden="true">&times;</span>
                </button>
              </div>
              <!-- Body -->
              <div class="modal-body mx-4">
                <form name="form11" id="form11" method="post">
                  <div class="md-form">
                    <i class="fas fa-user prefix grey-text"></i>
                    <input type="text" id="switchForm-name22" class="form-control">
                    <label for="switchForm-name22">Your name</label>
                  </div>
                  <div class="md-form">
                    <i class="fas fa-envelope prefix grey-text"></i>
                    <input type="email" id="switchForm-email22" class="form-control">
                    <label for="switchForm-email22">Your email</label>
                  </div>
                  <div class="d-flex justify-content-start pt-3">
                    <p class="mr-4 mt-1">Notification 1</p>
                    <!-- Switch -->
                    <div class="switch round primary-switch text-muted font-small">
                      <label>
                        Off
                        <input type="checkbox">
                        <span class="lever"></span>
                        On
                      </label>
                    </div>
                  </div>
                  <div class="d-flex justify-content-start pb-3">
                    <p class="mr-4 mt-1">Notification 2</p>
                    <!-- Switch -->
                    <div class="switch round primary-switch text-muted font-small">
                      <label>
                        Off
                        <input type="checkbox">
                        <span class="lever"></span>
                        On
                      </label>
                    </div>
                  </div>
                </form>
              </div>
              <!-- Footer -->
              <div class="modal-footer">
                <button type="button" id="resetBtn" value="Reset" class="btn btn-elegant btn-block">Reset</button>
              </div>
            </div>
            <!-- Content -->
          </div>
        </div>

      


        function Reset() {
            document.getElementById("form1").reset();
        }
        // Please do not use inline event handlers, use this instead:
        document.getElementById("resetBtn").onclick = function () {
            Reset();
        }