Slider
A Slider component for displaying current value
<Slider>
Slide input controls.<RangeSlider>
Slide range input controls.
Import
import { Slider, RangeSlider } from 'rsuite';
// or
import Slider from 'rsuite/Slider';
import RangeSlider from 'rsuite/RangeSlider';
Examples
Default
Progress
Graduated
Vertical
Disabled and read only
Show value (Controlled)
Constraint
Limit starting value to be no greater than 25 and ending value to be no smaller than 35.
Custom
Size
Accessibility
WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#slider
Keyboard Interaction
- ArrowRight, ArrowUp: Increase the value of the slider by one step.
- ArrowLeft, ArrowDown: Decrease the value of the slider by one step.
- Home: Set the slider to the first allowed value in its range.
- End: Set the slider to the last allowed value in its range.
WAI-ARIA Roles, States, and Properties
- The element serving as the focusable slider control has role
slider
. - The slider element has the
aria-valuenow
property set to a decimal value representing the current value of the slider. - If the value of aria-valuenow is not user-friendly, the
aria-valuetext
property is set to a string that makes the slider value understandable. You can change the name with thegetAriaValueText
oraria-valuetext
prop.
<Slider getAriaValueText={value => `${value}MB`} />
- The slider element has the
aria-valuemin
property set to a decimal value representing the minimum allowed value of the slider. The slider element has the
aria-valuemax
property set to a decimal value representing the maximum allowed value of the slider.If the slider is vertically oriented, it has
aria-orientation
set tovertical
. The default value ofaria-orientation
for a slider ishorizontal
.If the slider has a visible label, it is referenced by
aria-labelledby
on the slider element. Otherwise, the slider element has a label provided byaria-label
.
<>
<label id="slider-label">Memory size</label>
<Slider aria-labelledby="slider-label" />
</>
Props
<Slider>
Property | Type (Default) |
Description |
---|---|---|
barClassName | string | A css class to apply to the Bar DOM node |
defaultValue | number | Default value |
disabled | boolean | The disabled of component |
getAriaValueText | (value: number) => string; | Provide a user-friendly name for the current value of the slider |
graduated | boolean | Show Ticks |
handleClassName | string | A css class to apply to the Handle node |
handleStyle | CSSProperties | A css style to apply to the Handle node |
handleTitle | ReactNode | Customizing what is displayed inside a handle |
max | number(100) |
Maximum sliding range |
min | number(0) |
Minimum value of sliding range |
onChange | (value: number) => void | Callback function that changes data |
onChangeCommitted | (value: number, event) => void; | Callback function that is fired when the mouseup is triggered |
progress | boolean | Show sliding progress bar |
renderMark | (mark: number) => ReactNode | Customize labels on the render ruler |
step | number(1) |
Slide the value of one step |
tooltip | boolean(true) |
Whether to show Tooltip when sliding |
value | number | Value (Controlled) |
vertical | boolean | Vertical Slide |
<RangeSlider>
Property | Type (Default) |
Description |
---|---|---|
barClassName | string | A css class to apply to the Bar DOM node |
constraint | (value: [number, number]) => boolean |
Validate next value before onChange is triggered. Prevent onChange being triggered if constraint returns false |
defaultValue | [number,number] | Default value |
disabled | boolean | The disabled of component |
getAriaValueText | (value: number,eventKey:'start'|'end') => string; | Provide a user-friendly name for the current value of the slider |
graduated | boolean | Show Ticks |
handleClassName | string | A css class to apply to the Handle node |
handleStyle | CSSProperties | A css style to apply to the Handle node |
handleTitle | ReactNode | Customizing what is displayed inside a handle |
max | number(100) |
Maximum sliding range |
min | number(0) |
Minimum value of sliding range |
onChange | (value: [number,number]) => void | Callback function that changes data |
onChangeCommitted | (value: [number,number], event) => void; | Callback function that is fired when the mouseup is triggered |
progress | boolean | Show sliding progress bar |
renderMark | (mark: number) => ReactNode | Customize labels on the render ruler |
step | number(1) |
Slide the value of one step |
tooltip | boolean(true) |
Whether to show Tooltip when sliding |
value | [number,number] | Value (Controlled) |
vertical | boolean | Vertical Slide |