About this set
Three everyday range sliders that cover most settings pages and filters. Thin pairs a 4 pixel track with an 18 pixel ringed thumb and a 0 to 100 percent scale underneath, for layer opacity or any percentage. Thick uses a 12 pixel track and a solid 28 pixel thumb with a white rim, a good fit for touch screens and for a single important control such as a storage limit. Value bubble moves the readout into a small tooltip that rides above the thumb, useful for money amounts like a monthly ad budget where the number matters more than the position. Every slider is a real input type=”range” styled through the ::-webkit-slider-runnable-track, ::-webkit-slider-thumb, ::-moz-range-track and ::-moz-range-thumb pseudo-elements, so dragging, clicking the track, arrow keys, Page Up and Down, Home and End and form submission all come from the browser. A dozen lines of JavaScript set one custom property, –p, from 0 to 1, which paints the filled part of the track and positions the bubble, and they copy the formatted value into the visible output and into aria-valuetext.
What’s included
- Thin, thick and value-bubble variants
- Real input type="range" styled for WebKit and Firefox
- Filled track driven by one --p custom property
- Formatted value in an output element and in aria-valuetext
- Unfilled track at 3:1 against the card
- Plain CSS, Bootstrap .form-range and Tailwind versions of the same design
Accessibility
Each slider has a visible label tied to it with for and id, and the script writes the formatted value, such as $1,850 or 120 GB, into aria-valuetext so screen readers announce the unit rather than a bare number. Arrow keys, Page Up, Page Down, Home and End work as on any range input. Keyboard focus draws a two-colour ring around the thumb, and nothing animates.
Customise it
Change --rs-accent, --rs-track, --rs-thumb and --rs-h on .rs in the plain CSS and Bootstrap versions. In Tailwind edit the --color-rs-accent and --color-rs-track theme colours, and the size-, h- and -mt- utilities on the thumb and track variants.






