Slider
StablePrimitive de seleção para escolher um valor, ou um intervalo, ao longo de uma escala. Composto sobre Base UI Slider: cada thumb é um input range de verdade, com teclado e leitor de tela nativos. A quantidade de thumbs segue o valor — um número é um thumb, um array é um por entrada —, e um intervalo nomeia cada ponta com thumbLabels, porque dois controles com o mesmo nome não dizem qual extremo se está segurando. O knob visível tem 16px dentro de um thumb de 24px, que é o alvo real do toque.
Instalação
npx up-web-ds add sliderPreview
Basic
With Value
Range
Disabled
Vertical
Without Visible Label
All states
Basic
With Value
Range
Disabled
Vertical
Without Visible Label
Usage
Props
Slider
Estende SliderPrimitive.Root.Props. Aceita também os atributos padrão de um elemento React (275 não listados).
SliderLabel
Estende SliderPrimitive.Label.Props. Aceita também os atributos padrão de um elemento React (274 não listados).
SliderValue
Estende SliderPrimitive.Value.Props. Aceita também os atributos padrão de um elemento React (277 não listados).
Composition
Rótulo e leitura são filhos opcionais do Slider, desenhados antes do controle; trilha, preenchimento e thumbs são do próprio Slider, um thumb por valor.
Metadata
Notas de acessibilidade
Teclado verificado por teste: cada thumb é alcançável por Tab, as setas movem um passo (Direita e Cima aumentam, Esquerda e Baixo diminuem, inclusive no vertical), Page Up e Page Down dão o passo largo e Home e End levam às pontas; num intervalo cada thumb se move sozinho e o inferior vem primeiro na ordem de tabulação. Um slider desabilitado sai da sequência de tabulação e recusa o teclado sem deixar de reportar o valor. Leitor de tela verificado por teste: o papel é slider, com min, max e aria-valuenow; o nome vem do SliderLabel, ligado pelo Base UI sem id no exemplo, ou de aria-label — que o Base UI deixava só no group e aqui chega também ao thumb, que é onde o foco pousa. Num intervalo, thumbLabels nomeia cada ponta e o valor é lido sozinho; sem nomes próprios, o valor falado diz "início do intervalo" e "fim do intervalo" em vez do inglês "start range" do Base UI. O SliderValue é um output ligado aos thumbs e não é live region, porque o thumb já anuncia o próprio valor. Touch verificado em viewport de 375px com emulação de toque: o thumb mede 24x24 — o knob pintado tem 16px e o box que o Base UI posiciona, e que contém o input, é o alvo —, o controle tem ao menos a mesma altura e um toque na trilha move o valor. A origem pendurava a orientação em data-vertical, que o Base UI não emite; o vertical agora é de fato mais alto que largo, verificado em navegador. Reduced motion verificado em navegador com prefers-reduced-motion: reduce — a posição do thumb é escrita inline pelo Base UI e nunca teve tween, então chega ao destino na hora; o anel de hover e foco no knob é resposta de cor e sombra, não movimento, e permanece.
Classificação
- Layer
- Primitive
- Domínio
- Domain-free (compartilhado)
- Categoria
- selection
- Status
- Stable
Origem e distribuição
- Fonte
- shadcn registry / slider
- Licença
- MIT
- Distribuição
- Interna
Acessibilidade
- Teclado: revisado
- Leitor de tela: revisado
- Touch: revisado
- Reduced motion: revisado
Dependências
- Pacotes
- @base-ui/react
- Ícones
- Nenhum
- Construído sobre
- Nenhum
- Usado por
- Nenhum ainda