componentes / formulário
Slider
Escolha um número ou uma faixa arrastando o polegar ou usando as setas.
667 B gzip client componentbase ui · slider
slider-default.tsx
import { Slider } from "@/components/ui/slider";
export default function SliderDefault() {
return (
<div className="flex w-full max-w-xs flex-col gap-6">
<Slider defaultValue={40} thumbLabel="Volume" />
<Slider defaultValue={[20, 70]} thumbLabel={["Minimum price", "Maximum price"]} />
<Slider defaultValue={60} disabled thumbLabel="Disabled" />
</div>
);
}Instalação
$ npx shadcn@latest add https://cd-ui.vercel.app/r/slider.jsonprimeira vez? configure o components.json e o tema antes: veja instalação.
Uso
import { Slider } from "@/components/ui/slider"
<Slider defaultValue={40} thumbLabel="Volume" />
<Slider defaultValue={[20, 70]} thumbLabel={["Min", "Max"]} />API
Slider
Base UI · Slider.RootUm número renderiza um polegar; um array renderiza um polegar por valor (uma faixa).
| prop | tipo | padrão |
|---|---|---|
value · defaultValueValor controlado ou inicial: um número ou um array de números. | number | number[] | - |
onValueChangeChamado enquanto arrasta. | (value) => void | - |
onValueCommittedChamado ao soltar. | (value) => void | - |
min · max · stepLimites e passo. | number | 0 · 100 · 1 |
thumbLabelNome acessível de cada polegar. Use um array para uma faixa. | string | string[] | - |
name · disabledEstados desativado e obrigatório. | string / boolean | - |
classNameClasses extras, mescladas com | string | - |
Teclado
| tecla | ação |
|---|---|
| ←→↑↓ | Muda o valor em um passo. |
| PageUpPageDown | Muda o valor em um passo maior. |
| HomeEnd | Vai para o mínimo ou o máximo. |
Acessibilidade
- Cada polegar precisa de um nome acessível: use
thumbLabelou um label visível.