Range

Bootstrap 5 Range component

A Range is an interactive component that lets the user swiftly slide through possible values spread over the desired range.

Note: Read the API tab to find all available options and advanced customization

Required ES init: Range *
* UMD autoinits are enabled by default. This means that you don't need to initialize the component manually. However if you are using MDBootstrap ES format then you should pass the required components to the initMDB method.

Basic example

Create custom <input type="range"> controls with .form-range. The track (the background) and thumb (the value) are both styled to appear the same across browsers. As only Firefox supports “filling” their track from the left or right of the thumb as a means to visually indicate progress, we do not currently support it.

        
            
          <label class="form-label" for="customRange1">Example range</label>
          <div class="range" data-mdb-range-init>
            <input type="range" class="form-range" id="customRange1" />
          </div>
        
        
    
        
            
          // Initialization for ES Users
          import { Range, initMDB } from "mdb-ui-kit";
          
          initMDB({ Range });
        
        
    

Disabled

Add the disabled boolean attribute on an input to give it a grayed out appearance and remove pointer events.

        
            
          <label class="form-label" for="customRange1">Example range</label>
          <div class="range" data-mdb-range-init>
            <input type="range" class="form-range" id="customRange1" disabled />
          </div>
        
        
    
        
            
          // Initialization for ES Users
          import { Range, initMDB } from "mdb-ui-kit";
          
          initMDB({ Range });
        
        
    

Min and max

Range inputs have implicit values for min and max0 and 100, respectively. You may specify new values for those using the min and max attributes.

        
            
          <label class="form-label" for="customRange2">Example range</label>
          <div class="range" data-mdb-range-init>
            <input type="range" class="form-range" min="0" max="5" id="customRange2" />
          </div>
        
        
    
        
            
          // Initialization for ES Users
          import { Range, initMDB } from "mdb-ui-kit";
          
          initMDB({ Range });
        
        
    

Steps

By default, range inputs “snap” to integer values. To change this, you can specify a step value. In the example below, we double the number of steps by using step="0.5".

        
            
          <label for="customRange3" class="form-label">Example range</label>
          <div class="range" data-mdb-range-init>
            <input type="range" class="form-range" min="0" max="5" step="0.5" id="customRange3" />
          </div>
        
        
    
        
            
          // Initialization for ES Users
          import { Range, initMDB } from "mdb-ui-kit";
          
          initMDB({ Range });
        
        
    

Range - API


Import

Importing components depends on how your application works. If you intend to use the MDBootstrap ES format, you must first import the component and then initialize it with the initMDB method. If you are going to use the UMD format, just import the mdb-ui-kit package.

        
            
          import { Range, initMDB } from "mdb-ui-kit";
          initMDB({ Range });
        
        
    
        
            
          import "mdb-ui-kit"
        
        
    

Usage

Via data attributes

Using the Range component doesn't require any additional JavaScript code - simply add data-mdb-range-init attribute to .range and use other data attributes to set all options. For ES format, you must first import and call the initMDB method.

        
            
          <label class="form-label" for="customRange1">Example range</label>
          <div class="range" data-mdb-range-init>
            <input type="range" class="form-range" id="customRange1" />
          </div>
        
        
    

Via JavaScript

        
            
        const range = new Range(document.getElementById('range'));
        
        
    
        
            
        const range = new mdb.Range(document.getElementById('range'));
        
        
    

Via jQuery

Note: By default, MDB does not include jQuery and you have to add it to the project on your own.

        
            
            $(document).ready(() => {
              $('.example-class').range(options);
            });
          
        
    

Methods

Name Description Example
init Initialize a range instance myRange.init()
dispose Disposes a range instance myRange.dispose()
getInstance Static method which allows you to get the range instance associated with a DOM element. Range.getInstance(element)
getOrCreateInstance Static method which returns the range instance associated to a DOM element or create a new one in case it wasn't initialized. Range.getOrCreateInstance(element)
        
            
        const range = document.getElementById('range');
        const rangeInstance = Range.getInstance(range);
        rangeInstance.dispose();
        
        
    
        
            
        const range = document.getElementById('range');
        const rangeInstance = mdb.Range.getInstance(range);
        rangeInstance.dispose();
        
        
    

CSS variables

        
            
        // .range
        --#{$prefix}range-thumb-height: #{$range-thumb-height};
        --#{$prefix}range-thumb-width: #{$range-thumb-width};
        --#{$prefix}range-thumb-top: #{$range-thumb-top};
        --#{$prefix}range-thumb-margin-left: #{$range-thumb-margin-left};
        --#{$prefix}range-thumb-border-radius: #{$range-thumb-border-radius};
        --#{$prefix}range-thumb-transform: #{$range-thumb-transform};
        --#{$prefix}range-thumb-transition: #{$range-thumb-transition};
        --#{$prefix}range-thumb-value-font-size: #{$range-thumb-value-font-size};
        --#{$prefix}range-thumb-value-line-height: #{$range-thumb-value-line-height};
        --#{$prefix}range-thumb-value-color: #{$range-thumb-value-color};
        --#{$prefix}range-thumb-value-font-weight: #{$range-thumb-value-font-weight};
        --#{$prefix}range-thumb-background: #{$range-thumb-background};
        
        
    

SCSS variables

        
            
        $range-thumb-height: 30px;
        $range-thumb-width: 30px;
        $range-thumb-top: -35px;
        $range-thumb-background: $primary;
        $range-thumb-active-background: var(--#{$prefix}primary-bg-subtle);
        $range-thumb-margin-left: -15px;
        $range-thumb-border-radius: 50% 50% 50% 0;
        $range-thumb-transform: scale(0);
        $range-thumb-transition: transform 0.2s ease-in-out;
        $range-thumb-value-font-size: 12px;
        $range-thumb-value-line-height: 30px;
        $range-thumb-value-color: color-contrast($primary);
        $range-thumb-value-font-weight: 500;
        // override default bootstrap values for form range
        $form-range-thumb-bg: $range-thumb-background;
        $form-range-thumb-disabled-bg: var(--#{$prefix}form-control-disabled-bg);