A fast & lightweight react component as a drop in replacement for HTML5 input range slider element.
Using npm (use --save to include it in your package.json)
$ npm install react-rangeslider --saveUsing yarn (this command also adds react-rangeslider to your package.json dependencies)
$ yarn add react-rangesliderReact-Rangeslider is bundled with a slider component & default styles which can be overridden depending on your design requirements.
With a module bundler like webpack that supports either CommonJS or ES2015 modules, use as you would anything else:
// Using an ES6 transpiler like BabelimportSliderfrom'react-rangeslider'// To include the default stylesimport'react-rangeslider/lib/index.css'// Not using an ES6 transpilervarSlider=require('react-rangeslider')The UMD build is also available on unpkg:
<scriptsrc="https://unpkg.com/react-rangeslider/umd/rangeslider.min.js"></script>You can find the library on window.ReactRangeslider. Optionally you can drop in the default styles by adding the stylesheet.
<linkrel="stylesheet" href="https://unpkg.com/react-rangeslider/umd/rangeslider.min.css" />Check out docs & examples.
importReact,{Component}from'react'importSliderfrom'react-rangeslider'classVolumeSliderextendsComponent{constructor(props,context){super(props,context)this.state={volume: 0}}handleOnChange=(value)=>{this.setState({volume: value})}render(){let{ volume }=this.statereturn(<Slidervalue={volume}orientation="vertical"onChange={this.handleOnChange}/>)}}Rangeslider is bundled as a single component, that accepts data and callbacks only as props.
importSliderfrom'react-rangeslider'// inside render<Slidermin={Number}max={Number}step={Number}value={Number}orientation={String}reverse={Boolean}tooltip={Boolean}labels={Object}handleLabel={String}format={Function}onChangeStart={Function}onChange={Function}onChangeComplete={Function}/>| Prop | Type | Default | Description |
|---|---|---|---|
min | number | 0 | minimum value the slider can hold |
max | number | 100 | maximum value the slider can hold |
step | number | 1 | step in which increments/decrements have to be made |
value | number | current value of the slider | |
orientation | string | horizontal | orientation of the slider |
tooltip | boolean | true | show or hide tooltip |
reverse | boolean | false | reverse direction of vertical slider (top-bottom) |
labels | object | {} | object containing key-value pairs. { 0: 'Low', 50: 'Medium', 100: 'High'} |
handleLabel | string | '' | string label to appear inside slider handles |
format | function | function to format and display the value in label or tooltip | |
onChangeStart | function | function gets called whenever the user starts dragging the slider handle | |
onChange | function | function gets called whenever the slider handle is being dragged or clicked | |
onChangeComplete | function | function gets called whenever the user stops dragging the slider handle. |
To work on the project locally, you need to pull its dependencies and run npm start.
$ npm install
$ npm startFeel free to contribute. Submit a Pull Request or open an issue for further discussion.
MIT
