DEV Community

Cover image for Styling Range Sliders with CSS
Kevin Lewis
Kevin Lewis

Posted on

Styling Range Sliders with CSS

Alt Text

In this post I will cover how to custom style a HTML range input (the slider). You can also get this to work in Internet Explorer, but this guide will just cover Webkit-based browsers and Firefox.

The only thing you need to know terminology wise is that the long bar which indicates the length of the slider is called the 'track' and the knob that you slide along it is called the thumb.

Getting rid of the main default styling



input[type="range"] {
 -webkit-appearance: none;
}

input[type="range"]:focus {
 outline: none;
}


Enter fullscreen mode Exit fullscreen mode

Styling the track



input[type="range"]::-webkit-slider-runnable-track {
 background: tomato;
 height: 5px;
}

input[type="range"]::-moz-range-track {
 background: tomato;
 height: 5px;
}


Enter fullscreen mode Exit fullscreen mode

Styling the thumb



input[type="range"]::-webkit-slider-thumb {
 -webkit-appearance: none;
 height: 15px;
 width: 15px;
 background: pink;
 margin-top: -5px;
 border-radius: 50%;
}

input[type="range"]::-moz-range-thumb {
 height: 15px;
 width: 15px;
 background: pink;
 margin-top: -5px;
 border-radius: 50%;
}


Enter fullscreen mode Exit fullscreen mode

You'll notice that the thumb requires a -webkit-appearance: none; in the webkit-prefixed version of these rules.

Alt Text

That's pretty much it! Have fun applying your own custom styles.

I recently added a border and box-shadow to the thumb, and a border-radius to the track, like so:

Alt Text

Top comments (0)