Slider
Atom
Drag (or tap) along a track to pick a value in a range; the keyboard and screen readers step it too. Controlled by value, bounded by min / max, and snapped to step.
Playground
Every control sets a real prop of SliderProps. The JSX below updates as you go.
Web
iOS
Android
JSX · SliderProps
Variants
7 examples from src/atoms/slider/slider.md, each rendered live from its own JSX.
Sizes
States
Hover, focus and press are pinned so they can be compared side by side; the rest are real props.
Anatomy
1
Track
2
Fill
3
Thumb
4
Label
5
Value
Dimmed parts appear only in some states or variants.
Props
18 props on SliderProps, grouped as they are declared in source. Required props are marked *.
MeasureProps · width steps xxxs 192 · xxs 256 · xs 320 · sm 384 · md 448 · lg 512 · xl 576 · xxl 672 · xxxl 768 · wide 896 · wider 1024 · widest 1152 · page 1280, plus start to pin to the leading edge.
Accessibility and keyboard
Keyboard
ArrowRight
ArrowUp
One step up
ArrowLeft
ArrowDown
One step down
PageUp
PageDown
A larger step
Home
End
Minimum · maximum
Semantics
Roles
adjustable
States
disabled
ARIA on web
aria-disabled
aria-hidden
aria-valuemax
aria-valuemin
aria-valuenow
aria-valuetext
Below the platform minimum, the touch area grows to 44 pt on iOS and 48 dp on Android without moving the layout.
From the docs
Drag (or tap) along a track to pick a value in a range; the keyboard and screen readers step it too. Controlled by value, bounded by min / max, and snapped to step.
Pass ref to access the interactive adjustable track, including when a header is shown. Use useRef<ComponentRef<typeof Slider>>(null) from React, or useRef<View>(null) with React Native's View type. Object and callback refs are supported and detach on unmount. Calling ref.current?.focus() or .blur() delegates to the host without activating the control. Browser focus is supported; native focus depends on the platform and React Native version, and is separate from accessibility focus.
Name the setting with string children, or pass accessibilityLabel when the visible title is omitted or contains rich content.
Platform skins
The playground's props on each platform: same tree, native shapes, type and touch sizes.
Usage
In glass mode the handle is a control-layer glass knob whose position is the authoritative value at every frame (a controlled value or a release can never lag behind the rail). Tapping the track puts the handle on the tapped value at once. The rail, the filled range, the value label and the hit target stay fixed. A disabled slider is inert; solid mode keeps the skin's own handle.
On iOS 26 the handle is a real Apple Liquid Glass control, with the material's edge-lensing and specular showing on a physical device. This is automatic from the glass surface, the platform default there, so there is no prop to set; under a solid surface, Reduce Transparency, or Increase Contrast the handle falls back to a solid knob. The Android and web handles keep their own look: on the web a 20 px white thumb (16 small, 26 large) on a 6 px rail (4, 8) whose accent range glows, ringed in the accent's soft wash while a pointer hovers or presses it, under a 13 px title with the value in the mono face; on Android Material 3 Expressive's split 16dp track (24dp large) and 4dp bar handle.
Like the other input-like controls, a slider fills the parent it is given; a step of its own (xs, lg, …, with start to pin it to the leading edge) or a Container step sets its measure.
Pass ref to access the interactive adjustable track, including when a header is shown. Use useRef<ComponentRef<typeof Slider>>(null) from React, or useRef<View>(null) with React Native's View type. Object and callback refs are supported and detach on unmount. Calling ref.current?.focus() or .blur() delegates to the host without activating the control. Browser focus is supported; native focus depends on the platform and React Native version, and is separate from accessibility focus.
Name the setting with string children, or pass accessibilityLabel when the visible title is omitted or contains rich content.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--fd
--fm
--ft
--ion
--ion-glow
--sf4
--tx2