A professional slider component with smooth drag interaction, keyboard navigation, and modifier key support. Designed for precise value control in editor workflows.
Import
import { Slider } from ' entangle-ui ' ;
Usage
const [ opacity , setOpacity ] = useState ( 100 );
< Slider value = { opacity } onChange = { setOpacity } min = { 0 } max = { 100 } /> ;
With Label and Unit
Sizes
< Slider size = " sm " value = { 50 } onChange = { setValue } label = " Small " />
< Slider size = " md " value = { 50 } onChange = { setValue } label = " Medium " />
< Slider size = " lg " value = { 50 } onChange = { setValue } label = " Large " />
Precision Control with Modifier Keys
Hold modifier keys while dragging or using arrow keys for different step sizes:
Modifier Behavior Default Step None Normal step (1)Shift Fine step / 10Ctrl/Cmd Coarse step * 10
Tick Marks
formatValue = { v => ` ${ v } % ` }
helperText = " Adjust display brightness "
errorMessage = " High contrast may cause clipping "
Keyboard Navigation
Key Action Arrow Right/Up Increment by step Arrow Left/Down Decrement by step Home Jump to minimum End Jump to maximum Page Up Increment by large step Page Down Decrement by large step
Props
Prop Type Default Description value * number — Current numeric value. onChange * (value: number) => void — Callback when value changes. min number 0 Minimum allowed value. max number 100 Maximum allowed value. step number 1 Step size for value increments. precisionStep number step / 10 Step size when Shift is held (fine control). largeStep number step * 10 Step size when Ctrl/Cmd is held (coarse control). precision number 2 Number of decimal places to round to. size 'sm' | 'md' | 'lg' 'md' Slider size variant. disabled boolean false Whether the slider is disabled. readOnly boolean false Whether the slider is read-only. label string — Label text displayed above the slider. helperText string — Helper text displayed below the slider. error boolean false Whether the slider has an error state. errorMessage string — Error message displayed when error is true. required boolean false Whether the slider is required. unit string — Unit suffix to display (e.g., "px", "%", "°"). formatValue (value: number) => string — Custom value formatter for display. showTooltip boolean true Show value tooltip while dragging. showTicks boolean false Show tick marks along the track. tickCount number 5 Number of tick marks to show. className string — Additional CSS class names. testId string — Test identifier for automated testing.
Accessibility
Uses role="slider" with proper ARIA attributes
aria-valuemin, aria-valuemax, aria-valuenow, aria-valuetext
Full keyboard navigation with arrow keys, Home, End, Page Up/Down
Disabled and read-only states reflected via aria-disabled and aria-readonly