Shards React
DocumentationThe slider component is powered behind the scenes by the NoUiSlider library.
You can create basic sliders using the Slider
component.
import React from "react";
import { Slider } from "shards-react";
export default function BasicSliderExample() {
return (
<Slider connect={[true, false]} start={[20]} range={{ min: 0, max: 100 }} />
);
}
You can provide a custom range for the slider using the range
prop.
Value: 1300
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: 1300 };
}
handleSlide(e) {
this.setState({
value: parseFloat(e[0])
});
}
render() {
return (
<div>
<p>Value: {this.state.value}</p>
<Slider
onSlide={this.handleSlide}
connect={[true, false]}
start={[this.state.value]}
range={{ min: 0, max: 2500 }}
/>
</div>
);
}
}
Adjusting the theme color of the slider can be achieved via the theme
prop.
import React from "react";
import { Slider } from "shards-react";
export default function BasicSliderExample() {
return (
<Slider
theme="success"
connect={[true, false]}
start={[50]}
range={{ min: 0, max: 100 }}
/>
);
}
You can provide a custom range for the slider using the range
prop.
Value: 1300
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: 1300 };
}
handleSlide(e) {
this.setState({
value: parseFloat(e[0])
});
}
render() {
return (
<div>
<p>Value: {this.state.value}</p>
<Slider
onSlide={this.handleSlide}
connect={[true, false]}
start={[this.state.value]}
range={{ min: 0, max: 2500 }}
/>
</div>
);
}
}
If you'd like to control multiple values, you can use an Array
for the start
prop.
Value: [20,80]
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: [20, 80] };
}
handleSlide(e) {
this.setState({
value: [parseFloat(e[0]), parseFloat(e[1])]
});
}
render() {
return (
<div>
<p>Value: {JSON.stringify(this.state.value)}</p>
<Slider
connect
onSlide={this.handleSlide}
start={this.state.value}
range={{ min: 0, max: 100 }}
/>
</div>
);
}
}
If you'd like to control multiple values, you can use an Array
for the start
prop.
Value: [20,80]
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: [20, 80] };
}
handleSlide(e) {
this.setState({
value: [parseFloat(e[0]), parseFloat(e[1])]
});
}
render() {
return (
<div>
<p>Value: {JSON.stringify(this.state.value)}</p>
<Slider
connect
onSlide={this.handleSlide}
start={this.state.value}
range={{ min: 0, max: 100 }}
/>
</div>
);
}
}
Pips can also be enabled using the pips
prop.
Value: [20,80]
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: [20, 80] };
}
handleSlide(e) {
this.setState({
value: [parseFloat(e[0]), parseFloat(e[1])]
});
}
render() {
return (
<div>
<p>Value: {JSON.stringify(this.state.value)}</p>
<Slider
connect
pips={{ mode: "steps", stepped: true, density: 3 }}
onSlide={this.handleSlide}
start={this.state.value}
range={{ min: 0, max: 100 }}
/>
</div>
);
}
}
Pips can also be enabled using the pips
prop.
Value: [20,80]
import React from "react";
import { Slider } from "shards-react";
export default class SliderCustomRange extends React.Component {
constructor(props) {
super(props);
this.handleSlide = this.handleSlide.bind(this);
this.state = { value: [20, 80] };
}
handleSlide(e) {
this.setState({
value: [parseFloat(e[0]), parseFloat(e[1])]
});
}
render() {
return (
<div>
<p>Value: {JSON.stringify(this.state.value)}</p>
<Slider
connect
pips={{ mode: "steps", stepped: true, density: 3 }}
onSlide={this.handleSlide}
start={this.state.value}
range={{ min: 0, max: 100 }}
/>
</div>
);
}
}
The following props are available for the Slider
component.
Prop | Description | Type | Default | Required |
---|---|---|---|---|
className | - | String | - | No |
theme | - | String | - | No |
animate | - | Bool | - | No |
behaviour | - | String | - | No |
cssPrefix | - | String | - | No |
disabled | - | Bool | - | No |
limit | - | Number | - | No |
margin | - | Number | - | No |
onChange | - | Func | - | No |
onEnd | - | Func | - | No |
onSet | - | Func | - | No |
onSlide | - | Func | - | No |
onStart | - | Func | - | No |
onUpdate | - | Func | - | No |
pips | - | Object | - | No |
range | - | Object | - | Yes |
start | - | ArrayOf | - | Yes |
step | - | Number | - | No |
direction | - | Enum | - | No |
orientation | - | Enum | - | No |
connect | - | Array[Bool] Bool | - | No |
tooltips | - | Bool Array[Shape] | - | No |