Skip to content
+

Slider

A slider is a UI element that lets users select a single value or a range of values along a bar.

useSlider API

Import

import useSlider from '@mui/base/useSlider';
// or
import { useSlider } from '@mui/base';
Learn about the difference by reading this guide on minimizing bundle size.

Parameters

aria-labelledby

The id of the element containing a label for the slider.

Type:

string
defaultValue

The default value. Use when the component is not controlled.

Type:

number | number[]
disabled

If true, the component is disabled.

Type:

boolean

Default:

false
disableSwap

If true, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.

Type:

boolean

Default:

false
isRtl

If true the Slider will be rendered right-to-left (with the lowest value on the right-hand side).

Type:

boolean

Default:

false
marks

Marks indicate predetermined values to which the user can move the slider. If true the marks are spaced according the value of the step prop. If an array, it should contain objects with value and an optional label keys.

Type:

boolean | Mark[]

Default:

false
max

The maximum allowed value of the slider. Should not be equal to min.

Type:

number

Default:

100
min

The minimum allowed value of the slider. Should not be equal to max.

Type:

number

Default:

0
name

Name attribute of the hidden input element.

Type:

string
onChange

Callback function that is fired when the slider's value changed.

Type:

(event: Event, value: number | number[], activeThumb: number) => void
onChangeCommitted

Callback function that is fired when the mouseup is triggered.

Type:

(event: React.SyntheticEvent | Event, value: number | number[]) => void
orientation

The component orientation.

Type:

'horizontal' | 'vertical'

Default:

'horizontal'
rootRef

The ref attached to the root of the Slider.

Type:

React.Ref<Element>
scale

A transformation function, to change the scale of the slider.

Type:

(value: number) => number

Default:

function Identity(x) { return x; }
step

The granularity with which the slider can step through values. (A "discrete" slider.) The min prop serves as the origin for the valid values. We recommend (max - min) to be evenly divisible by the step. When step is null, the thumb can only be slid onto marks provided with the marks prop.

Type:

number | null

Default:

1
tabIndex

Tab index attribute of the hidden input element.

Type:

number
value

The value of the slider. For ranged sliders, provide an array with two values.

Type:

number | number[]

Return value

active

The active index of the slider.

Type:

number
axis

The orientation of the slider.

Type:

Axis
axisProps

Returns the offset and leap methods to calculate the positioning styles based on the slider axis.

Type:

{ [key in Axis]: AxisProps<key> }
dragging

If true, the slider is being dragged.

Type:

boolean
focusedThumbIndex

The index of the thumb which is focused on the slider.

Type:

number
getHiddenInputProps

Resolver for the hidden input slot's props.

Type:

<TOther extends EventHandlers = {}>(otherHandlers?: TOther) => UseSliderHiddenInputProps<TOther>
getRootProps

Resolver for the root slot's props.

Type:

<TOther extends EventHandlers = {}>(otherHandlers?: TOther) => UseSliderRootSlotProps<TOther>
getThumbProps

Resolver for the thumb slot's props.

Type:

<TOther extends EventHandlers = {}>(otherHandlers?: TOther) => UseSliderThumbSlotProps<TOther>
getThumbStyle

Resolver for the thumb slot's style prop.

Type:

(index: number) => object
marks

The marks of the slider. Marks indicate predetermined values to which the user can move the slider.

Type:

Mark[]
open

The thumb index for the current value when in hover state.

Type:

number
range

If true, the slider is a range slider when the value prop passed is an array.

Type:

boolean
rootRef

Ref to the root slot's DOM node.

Type:

React.RefCallback<Element> | null
trackLeap

The track leap for the current value of the slider.

Type:

number
trackOffset

The track offset for the current value of the slider.

Type:

number
values

The possible values of the slider.

Type:

number[]