This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Slider
A Jetpack Compose Slider component for selecting values from a range.
For cross-platform usage, see the universal
Slider— it renders the appropriate native component per platform.
Expo UI Slider matches the official Jetpack Compose Slider API and allows selecting values from a bounded range.


Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Basic slider
Slider with custom range
Use the min and max props to define the slider's value range.
Slider with steps
Use the steps prop to define discrete increments. Set steps to 0 for continuous values.
Custom colors
Use the colors prop to override the default Material3 colors for the slider's thumb, track, and tick marks.
Custom thumb and track
Use both Slider.Thumb and Slider.Track slots for a fully custom slider appearance.
API
import { Slider } from '@expo/ui/jetpack-compose';
Component
Type: React.Element<SliderProps>
A slider component that wraps Material3's Slider.
SliderColorsColors for slider elements. Maps to Material3's SliderDefaults.colors().
boolean • Default: trueWhether the slider is enabled for user interaction.
numberLower limit the user can drag the thumb to. The visible track still
spans min..max, but the thumb stops at lowerLimit during drag.
number • Default: 1The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above max.
number • Default: 0The minimum value of the slider. Updating this value does not trigger callbacks if the current value is below min.
(value: number) => voidCallback triggered on dragging along the slider.
() => voidCallback triggered when the user finishes changing the value (for example, lifts a finger).
Maps to Material3's onValueChangeFinished.
number • Default: 0The number of steps between the minimum and maximum values, 0 signifies infinite steps.
numberUpper limit the user can drag the thumb to. The visible track still
spans min..max, but the thumb stops at upperLimit during drag.