Slider

Slider for fine-tuning numeric values with single or range thumbs, marks, an editable value input, and vertical orientation.

import { Slider } from "@plexui/ui/components/Slider";

Examples

Overview

Adding a tooltip

Marks

Range

Multiple thumbs

Vertical

Disabled

API

PropTypeDefaultDescription
valuenumber | number[]—Required. Current value; array when range is true
minnumber—Required. Minimum value
maxnumber—Required. Maximum value
stepnumber—Required. Step increment
rangebooleanfalseEnable multi-thumb range mode
orientation"horizontal" | "vertical""horizontal"Layout direction of the slider
resetValuenumber—Value for reset option (single mode only)
resetTooltipstring"Reset to default"Tooltip and accessible name of the reset button
unitstring—Unit displayed (e.g. ms, px)
prefixUnitstring—Unit displayed before the value (e.g. $)
labelReactNode—Label (string or JSX). Also names the slider thumbs for assistive technology
aria-labelstring—Accessible name when there is no visible label. Range thumbs add Minimum / Maximum (or Value n of m)
aria-labelledbystring—Id of an element that names the slider; takes precedence over label
marksArray<{ value: number, label: string }>—Marks below track (horizontal only)
onChange(value: number | number[]) => void—Required. Change handler; receives array when range is true
minStepsBetweenThumbsnumber—Minimum steps between thumbs (range mode only)
disabledbooleanfalseDisable slider
trackColorstring—Color of the slider track
rangeColorstring—Color of the filled range
classNamestring—Applied to the root element
onFocus(event: FocusEvent) => void—Called when the value input or a thumb gains focus
onBlur(event: FocusEvent) => void—Called when the value input or a thumb loses focus

Typing in the value input reports the parsed value after 250ms; Enter, Escape or leaving the input commits it right away, and Home, End and the arrow keys (Shift for ten steps) change it at once. The input accepts a minus sign when min is below zero. Inside a <form>, a hidden input per thumb fires an input event when its value changes.

Styling

Slider reads these component tokens. Override them at any scope to restyle it:

  • --slider-range-color: range color (default light-dark(var(--gray-450), var(--gray-600)))
  • --slider-track-color: track color (default light-dark(var(--gray-150), var(--gray-400)))