Capítulo 31 de 108
Input onde o usuário seleciona um valor (ou faixa de valores) dentro de um intervalo, arrastando um ou mais "thumbs" sobre uma trilha.
onValueChange recebe o array atualizado."horizontal" (padrão) ou "vertical"; slider vertical precisa de altura explícita via className."ltr" ou "rtl", controla direção do slider para suporte RTL.@base-ui/react).import { Slider } from "@/components/ui/slider"
<Slider defaultValue={[33]} max={100} step={1} />
<Slider defaultValue={[25, 50]} max={100} step={5} className="mx-auto w-full max-w-xs" />
<Slider defaultValue={[10, 20, 70]} max={100} step={10} className="mx-auto w-full max-w-xs" />
const [value, setValue] = React.useState([0.3, 0.7])
<Slider
value={value}
onValueChange={(value) => setValue(value as number[])}
min={0}
max={1}
step={0.1}
/>
<span> separado via value.join(", ").orientation="vertical" precisa de uma classe de altura (ex: h-40) no componente, senão o slider colapsa.defaultValue/value sempre gera N thumbs; não existe prop separada para "quantidade de thumbs".onValueChange retorna number[], exigindo cast (as number[]) em TypeScript estrito quando o estado é tipado como array literal.Label associado via htmlFor/id para acessibilidade em sliders controlados (ver exemplo Controlled).dir.