import { Slider } from "@/components/ui/slider";
export function SliderDemo() { return ( <Slider defaultValue={[75]} max={100} step={1} className="mx-auto w-full max-w-xs" /> );}pnpm dlx shadcn@latest add @herocn/sliderimport { Slider } from "@/components/ui/slider"<Slider defaultValue={[33]} max={100} step={1} />Use an array with two values for a range slider.
import { Slider } from "@/components/ui/slider";
export function SliderRange() { return ( <Slider defaultValue={[25, 75]} max={100} step={5} className="mx-auto w-full max-w-xs" /> );}Use an array with multiple values for multiple thumbs.
import { Slider } from "@/components/ui/slider";
export function SliderMultiple() { return ( <Slider defaultValue={[10, 40, 70]} max={100} step={10} className="mx-auto w-full max-w-xs" /> );}Use orientation="vertical" for a vertical slider.
import { Slider } from "@/components/ui/slider";
export function SliderVertical() { return ( <div className="mx-auto flex w-full max-w-xs items-center justify-center gap-6"> <Slider defaultValue={[50]} max={100} step={1} orientation="vertical" className="h-40" /> <Slider defaultValue={[25]} max={100} step={1} orientation="vertical" className="h-40" /> </div> );}"use client";
import * as React from "react";
import { Label } from "@/components/ui/label";import { Slider } from "@/components/ui/slider";
export function SliderControlled() { const [value, setValue] = React.useState([0.3, 0.7]);
return ( <div className="mx-auto grid w-full max-w-xs gap-3"> <div className="flex items-center justify-between gap-2"> <Label htmlFor="slider-controlled-temperature">Temperature</Label> <span className="text-muted-foreground text-sm"> {value.join(", ")} </span> </div> <Slider id="slider-controlled-temperature" value={value} onValueChange={(val) => setValue(val as number[])} min={0} max={1} step={0.1} /> </div> );}Use the disabled prop to disable the slider.
import { Slider } from "@/components/ui/slider";
export function SliderDisabled() { return ( <Slider defaultValue={[50]} max={100} step={1} disabled className="mx-auto w-full max-w-xs" /> );}"use client";
import { type Translations, useTranslation,} from "@/components/language-selector";import { Slider } from "@/components/ui/slider";
const translations: Translations = { en: { dir: "ltr", values: {}, }, ar: { dir: "rtl", values: {}, }, he: { dir: "rtl", values: {}, },};
export function SliderRtl() { const { dir } = useTranslation(translations, "ar");
return ( <Slider defaultValue={[75]} max={100} step={1} className="mx-auto w-full max-w-xs" dir={dir} /> );}| Prop | Type | Default |
|---|---|---|
| defaultValue | number[] | — |
The initial value of the slider (uncontrolled mode). Use an array with two values for a range slider. | ||
| value | number[] | — |
The controlled value of the slider. Must be used with `onValueChange`. | ||
| onValueChange | (value: number[]) => void | — |
Callback fired when the slider value changes. | ||
| min | number | 0 |
The minimum allowed value. | ||
| max | number | 100 |
The maximum allowed value. | ||
| step | number | 1 |
The stepping interval between values. | ||
| orientation | "horizontal" | "vertical" | "horizontal" |
The orientation of the slider. | ||
| disabled | boolean | false |
Prevents user interaction with the slider. | ||
| dir | "ltr" | "rtl" | — |
The reading direction of the slider for RTL support. | ||
See the Base UI Slider documentation for the full API reference.