Pular para o conteúdo

Slider

Escolhe um número ou uma faixa arrastando um cursor.

O Slider escolhe um valor numérico dentro de um intervalo, como o prazo total de uma rota ou um ajuste percentual. Para digitar o valor exato, use NumberField; os dois funcionam bem juntos.

import { Slider } from "@rastreio-x/ui";

Padrão

Informe minValue, maxValue e um Label. Slider.Output mostra o valor atual.

Faixa

Com um valor em lista, o slider tem dois cursores. Cada Slider.Thumb precisa de index e de aria-label próprio.

Passo e formato

step define o incremento e formatOptions formata o valor com Intl.NumberFormat.

Controlado

Com value e onChange, o estado mostra o efeito da escolha em texto.

Desabilitado

Anatomia

  • Slider.Output: o valor atual, em texto.
  • Slider.Track: o trilho.
  • Slider.Fill: o trecho preenchido.
  • Slider.Thumb: o cursor arrastável.
  • Slider.Marks: marcas opcionais ao longo do trilho.

Propriedades

Raiz (Slider):

Cursor (Slider.Thumb):

Animações

O cursor reage ao hover e ao arrastar com transições curtas (motion-reduce do tema as desliga). O preenchimento acompanha o cursor sem atraso, durante o arrasto.

Acessibilidade

  • Cada cursor é um input type="range" (papel slider) com aria-valuemin, aria-valuemax e aria-valuenow.
  • Setas ajustam por step; Page Up e Page Down saltam mais; Home e End vão aos limites.
  • Em faixa, dê um aria-label a cada cursor ("Mínimo de dias", "Máximo de dias").
  • Mostre o valor em texto (Slider.Output): o cursor sozinho não diz o número.

Boas práticas

Faça

Rótulo com unidade e valor visível: Prazo Total (dias corridos), 32.

Evite

Um slider sem valor visível, para intervalos grandes ou que exigem número exato.
  • Para precisão, ofereça também um NumberField.
  • Defina step coerente com a unidade (1 dia, 10%).
  • Evite sliders para intervalos muito grandes; prefira um campo numérico.
  • Mostre o efeito do valor em linguagem do domínio.

Relacionados

  • NumberField para digitar o valor exato.
  • Select para escolher entre poucas opções.
  • Switch para ligar ou desligar o efeito.