Color
Disabled
Read-Only
Multiple Thumbs
Direction
API Reference
Root
flex flex-col gap-2 w-full| Prop | Default | Type |
|---|---|---|
ids | — | Partial<{ 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-label | — | string[] | undefined The aria-label of each slider thumb. Useful for providing an accessible name to the slider |
aria-labelledby | — | string[] | undefined The `id` of the elements that labels each slider thumb. Useful for providing an accessible name to the slider |
name | — | string | undefined The name associated with each slider thumb (when used in a form) |
form | — | string | undefined The associate form of the underlying input element. |
value | — | number[] | undefined The controlled value of the slider |
defaultValue | — | number[] | undefined The initial value of the slider when rendered. Use when you don't need to control the value of the slider. |
disabled | — | boolean | undefined Whether the slider is disabled |
readOnly | — | boolean | undefined Whether the slider is read-only |
invalid | — | boolean | 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 |
min | 0 | number | undefined The minimum value of the slider |
max | 100 | number | undefined The maximum value of the slider |
step | 1 | number | undefined The step value of the slider |
minStepsBetweenThumbs | 0 | number | 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
| Prop | Default | Type |
|---|---|---|
value | — | SliderApi<PropTypes> |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | (slider: SliderApi<PropTypes>) => ReactNode |
Label
label-text| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"label">) => Element) | undefined Render the element yourself |
ValueText
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"output">) => Element) | undefined Render the element yourself |
Control
flex items-center data-disabled:opacity-50| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Track
bg-surface-200-800 rounded-base h-2 overflow-hidden flex-1| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Range
bg-surface-950-50 h-full| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Thumb
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| Prop | Default | Type |
|---|---|---|
index | — | number |
name | — | string | undefined |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
HiddenInput
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"input">) => Element) | undefined Render the element yourself |
MarkerGroup
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Marker
text-xs text-surface-600-400| Prop | Default | Type |
|---|---|---|
value | — | number |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Root
flex flex-col gap-2 w-full| Prop | Default | Type |
|---|---|---|
ids | — | Partial<{ 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-label | — | string[] | undefined The aria-label of each slider thumb. Useful for providing an accessible name to the slider |
aria-labelledby | — | string[] | undefined The `id` of the elements that labels each slider thumb. Useful for providing an accessible name to the slider |
name | — | string | undefined The name associated with each slider thumb (when used in a form) |
form | — | string | undefined The associate form of the underlying input element. |
value | — | number[] | undefined The controlled value of the slider |
defaultValue | — | number[] | undefined The initial value of the slider when rendered. Use when you don't need to control the value of the slider. |
disabled | — | boolean | undefined Whether the slider is disabled |
readOnly | — | boolean | undefined Whether the slider is read-only |
invalid | — | boolean | 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 |
min | 0 | number | undefined The minimum value of the slider |
max | 100 | number | undefined The maximum value of the slider |
step | 1 | number | undefined The step value of the slider |
minStepsBetweenThumbs | 0 | number | 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 | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Provider
| Prop | Default | Type |
|---|---|---|
value | — | () => SliderApi<PropTypes> |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | Snippet<[() => SliderApi<PropTypes>]> |
Label
label-text| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"label">]> | undefined Render the element yourself |
ValueText
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"output">]> | undefined Render the element yourself |
Control
flex items-center data-disabled:opacity-50| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Track
bg-surface-200-800 rounded-base h-2 overflow-hidden flex-1| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Range
bg-surface-950-50 h-full| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Thumb
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| Prop | Default | Type |
|---|---|---|
index | — | number |
name | — | string | undefined |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
HiddenInput
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"input">]> | undefined Render the element yourself |
MarkerGroup
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Marker
text-xs text-surface-600-400| Prop | Default | Type |
|---|---|---|
value | — | number |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |