Slider
A range input with a draggable thumb. Supports keyboard navigation, number formatting, custom ranges, and step values.
Import
import { Slider } from '@proyecto-viviana/solid-spectrum';Basic Usage
A controlled slider with a label and current value display.
Value: 50
const [volume, setVolume] = createSignal(50);
<Slider label="Volume" value={volume()} onChange={setVolume} />Sizes
Three track/thumb sizes.
<Slider label="Small" defaultValue={40} size="sm" />
<Slider label="Medium" defaultValue={60} size="md" />
<Slider label="Large" defaultValue={80} size="lg" />Variants
Default and accent color variants.
<Slider label="Default" defaultValue={50} variant="default" />
<Slider label="Accent" defaultValue={70} variant="accent" />Custom Range and Step
Set min, max, and step to control the allowed values.
1630
15
<Slider
label="Temperature (°C)"
defaultValue={22}
minValue={16}
maxValue={30}
step={0.5}
showMinMax
/>With Number Formatting
Display values in currency or percent format.
<Slider
label="Price"
defaultValue={500}
minValue={0}
maxValue={1000}
step={50}
formatOptions={{ style: 'currency', currency: 'USD' }}
/>Disabled
A disabled slider cannot be interacted with.
<Slider label="Disabled" defaultValue={50} isDisabled />Props
| Prop | Type | Default | Description |
|---|---|---|---|
label | string | — | Visible label |
value | number | — | Controlled value |
defaultValue | number | — | Uncontrolled initial value |
onChange | (value: number) => void | — | Called when the value changes |
minValue | number | 0 | Minimum allowed value |
maxValue | number | 100 | Maximum allowed value |
step | number | 1 | Step increment |
size | 'sm' | 'md' | 'lg' | 'md' | Track/thumb size |
variant | 'default' | 'accent' | 'default' | Color variant |
formatOptions | Intl.NumberFormatOptions | — | Number formatting (currency, percent, etc.) |
isDisabled | boolean | false | Prevents interaction |
showOutput | boolean | true | Shows current value label |
showMinMax | boolean | false | Shows min/max labels at track ends |
Accessibility
- Keyboard: Arrow keys adjust by one step, Page Up/Down by 10%, Home/End go to min/max
- Value is announced to screen readers via
aria-valuetext - Formatted values (currency, percent) are properly announced
- Disabled state communicated via
aria-disabled