1. framework components
  2. slider

Slider

Capture input from a range of values.

Color

Change the track, range, and thumb color using utility classes or custom CSS variables to match your design system.

Disabled

Set the disabled prop to enable the disabled state.

Read-Only

Set the readOnly prop to enable the disabled state.

Multiple Thumbs

Set a value array of two values to enable start and end thumbs.

Direction

Set the text direction (ltr or rtl) using the dir prop.

API Reference

Root

txt
flex flex-col gap-2 w-full
PropDefaultType
idsPartial<{ root: string; thumb: (index: number) => string; hiddenInput: (index: number) => string; control: string; track: string; range: string; label: string; valueText: string; marker: (index: number) => string; }> | undefined

The ids of the elements in the slider. Useful for composition.

aria-labelstring[] | undefined

The aria-label of each slider thumb. Useful for providing an accessible name to the slider

aria-labelledbystring[] | undefined

The `id` of the elements that labels each slider thumb. Useful for providing an accessible name to the slider

namestring | undefined

The name associated with each slider thumb (when used in a form)

formstring | undefined

The associate form of the underlying input element.

valuenumber[] | undefined

The controlled value of the slider

defaultValuenumber[] | undefined

The initial value of the slider when rendered. Use when you don't need to control the value of the slider.

disabledboolean | undefined

Whether the slider is disabled

readOnlyboolean | undefined

Whether the slider is read-only

invalidboolean | undefined

Whether the slider is invalid

onValueChange((details: ValueChangeDetails) => void) | undefined

Function invoked when the value of the slider changes

onValueChangeEnd((details: ValueChangeDetails) => void) | undefined

Function invoked when the slider value change is done

onFocusChange((details: FocusChangeDetails) => void) | undefined

Function invoked when the slider's focused index changes

getAriaValueText((details: ValueTextDetails) => string) | undefined

Function that returns a human readable value for the slider thumb

min0number | undefined

The minimum value of the slider

max100number | undefined

The maximum value of the slider

step1number | undefined

The step value of the slider

minStepsBetweenThumbs0number | undefined

The minimum permitted steps between multiple thumbs. `minStepsBetweenThumbs` * `step` should reflect the gap between the thumbs. - `step: 1` and `minStepsBetweenThumbs: 10` => gap is `10` - `step: 10` and `minStepsBetweenThumbs: 2` => gap is `20`

orientation"horizontal""vertical" | "horizontal" | undefined

The orientation of the slider

origin"start""start" | "center" | "end" | undefined

The origin of the slider range. The track is filled from the origin to the thumb for single values. - "start": Useful when the value represents an absolute value - "center": Useful when the value represents an offset (relative) - "end": Useful when the value represents an offset from the end

thumbAlignment"contain""center" | "contain" | undefined

The alignment of the slider thumb relative to the track - `center`: the thumb will extend beyond the bounds of the slider track. - `contain`: the thumb will be contained within the bounds of the track.

thumbSize{ width: number; height: number; } | undefined

The slider thumbs dimensions

dir"ltr""ltr" | "rtl" | undefined

The document's text/writing direction.

getRootNode(() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Provider

PropDefaultType
valueSliderApi<PropTypes>

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Context

PropDefaultType
children(slider: SliderApi<PropTypes>) => ReactNode

Label

txt
label-text
PropDefaultType
element((attributes: HTMLAttributes<"label">) => Element) | undefined

Render the element yourself

ValueText

PropDefaultType
element((attributes: HTMLAttributes<"output">) => Element) | undefined

Render the element yourself

Control

txt
flex items-center data-disabled:opacity-50
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Track

txt
bg-surface-200-800 rounded-base h-2 overflow-hidden flex-1
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Range

txt
bg-surface-950-50 h-full
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Thumb

txt
size-5 bg-surface-50-950 ring-inset ring-2 ring-surface-950-50 rounded-full focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-surface-950-50
PropDefaultType
indexnumber

namestring | undefined

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

HiddenInput

PropDefaultType
element((attributes: HTMLAttributes<"input">) => Element) | undefined

Render the element yourself

MarkerGroup

PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Marker

txt
text-xs text-surface-600-400
PropDefaultType
valuenumber

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

View page on GitHub