Slider

1.1.1

Permite selecionar um valor ou um intervalo de valores dentro de uma faixa conhecida, deslizando um controle sobre uma faixa horizontal.

  • Ajustar um valor dentro de uma faixa conhecida: quando o usuário se move entre um mínimo e um máximo definidos e pode se aproximar do valor desejado sem precisar digitá-lo. Ex.: "Raio de entrega em quilômetros", "Volume das notificações".
  • Filtrar por um intervalo de valores: usar a variante Range para definir um mínimo e um máximo ao mesmo tempo, com um único controle. Ex.: "Preço: R$0 - R$5.000".
  • Priorizar a velocidade de seleção em vez da precisão exata: quando basta se aproximar do valor desejado e não é necessário um número exato. Ex.: ajustar o brilho ou o volume.
  • Simplificar a entrada em telas touch: evitar o teclado numérico em ajustes frequentes e aproximados, nos quais arrastar é mais direto do que digitar.
  • Inserir um valor exato: quando o usuário precisa digitar um número preciso em vez de se aproximar arrastando um controle. Usar Input nesse caso. Ex.: "Preço de tabela", "Número de documento".
  • Escolher entre duas opções excludentes: uma decisão binária não precisa de um percurso de valores intermediários. Usar Toggle ou Checkbox nesse caso.
  • Escolher entre poucas opções discretas com nome próprio: quando os valores não formam uma escala contínua, e sim um conjunto reduzido de opções com nome. Usar Radio nesse caso. Ex.: tamanhos "P", "M", "G".
  • Mostrar um progresso não interativo: quando o usuário não controla o valor e só é necessário comunicar um avanço. Usar Progress Bar nesse caso.
1
2
3
  1. Track base: faixa que representa a totalidade dos valores disponíveis, entre min e max.
  2. Active track: porção da faixa que indica visualmente o valor ou o intervalo selecionado; sua cor muda de acordo com a prop appearance.
  3. Thumb: controle que o usuário arrasta, clica ou navega com o teclado para alterar o valor. No modo Single há um único Thumb; no Range há dois, um em cada extremo do intervalo. Sua borda sempre fica na cor primary, independentemente do appearance escolhido para o Active track.

Default: um único Thumb para selecionar um valor escalar dentro da faixa. Ex.: "Raio de entrega em km".

Range: dois Thumbs para definir um intervalo entre um mínimo e um máximo. Ex.: "Preço: R$0 - R$5.000".

Step: restringe o percurso a incrementos discretos definidos pela prop step, em vez de um deslocamento contínuo. Ex.: ajustar de 10 em 10 unidades.

Matriz de estados do Slider em sua aparência Primary: Rest, Hover, Active, Focus e Disabled.

O Slider aparece em formulários e painéis de configuração nos quais o usuário ajusta um valor ou um intervalo dentro de uma faixa conhecida, como filtros de busca, configurações de entrega ou preferências da loja. Como o componente não exibe por si só nem um rótulo nem o valor atual, ele sempre convive com um Label ou Text que identifica o que está sendo ajustado e com um Text que exibe o valor selecionado.

Raio de entrega

15 km

Desconto

50%

0

100

Acompanhar o slider com um rótulo e o valor atual, para que o usuário saiba o que está ajustando e quanto.

Evitar deixar o slider sem rótulo nem valor visível: o usuário perde a referência do que está ajustando.

Preço

R$0

R$5.000

Usar a variante Range quando ambos os extremos do intervalo são relevantes, como uma faixa de preço, e somar os valores limite (min/max) abaixo do track para dar contexto sem precisar arrastar.

Preço de tabela

R$1.234

Evitar pedir um valor exato com um Slider: usar Input quando o número não admite aproximação.

  • Navegação por teclado: o Thumb é renderizado como um button nativo focável; ArrowRight/ArrowUp aumenta o valor e ArrowLeft/ArrowDown o diminui de acordo com step, enquanto Home leva ao mínimo e End ao máximo.
  • Atributos ARIA: cada Thumb expõe role="slider" com aria-valuemin, aria-valuemax e aria-valuenow, além de um aria-label que por padrão fica em inglês ("Value", "Minimum value", "Maximum value"). Passar sempre ariaLabel (ou minAriaLabel/maxAriaLabel no Range) no idioma da interface.
  • Foco visível: ao navegar com o teclado, o Thumb exibe o anel de foco padrão do Nimbus em torno do controle.
  • Estado disabled: o atributo disabled bloqueia a interação por mouse, touch e teclado, e atenua a cor do Thumb e do Active track.
  • Valor que reforça a mensagem sem depender só da cor: a cor do Active track (definida por appearance) reforça visualmente o valor selecionado, mas como o Slider não exibe o número por si só, convém sempre acompanhá-lo de um Text que exiba o valor atual em vez de depender unicamente da posição do Thumb.

Instale o componente via terminal.

npm install @nimbus-ds/components
import React, { useState } from "react";
import { Slider } from "@nimbus-ds/components";

const Example: React.FC = () => {
  const [value, setValue] = useState(50);

  return (
    <Slider
      value={value}
      min={0}
      max={100}
      onChange={setValue}
    />
  );
};

export default Example;

As propriedades adicionais são passadas para o elemento <Slider>. Consulte a documentação de atributos do elemento input para ver a lista equivalente de atributos nativos.

  • Input — Para entrada de valores numéricos exatos, quando não admite aproximação.
  • Toggle — Para uma decisão binária, sem percurso de valores intermediários.
  • Radio — Para escolher entre poucas opções discretas com nome próprio.
  • Progress Bar — Para mostrar um progresso não interativo, sem controle do usuário.

Slider

NameTypeDefaultDescription

value*

number

The current value of the slider (single mode).

onChange

object

Callback fired when the value changes.

onChangeEnd

object

Callback fired when the user finishes interacting with the slider.

ariaLabel

string

'Value'

Accessible label for the slider thumb.

min

number

'0'

The minimum value of the slider range.

max

number

'100'

The maximum value of the slider range.

step

number

'1'

The step increment between values.

appearance

'danger'
'neutral'
'primary'
'success'
'warning'

'primary'

Visual appearance of the slider fill.

disabled

boolean

'false'

Whether the slider is disabled.

data-testid

string

This is an attribute used to identify a DOM node for testing purposes.

Slider.Range

NameTypeDefaultDescription

minValue*

number

The current minimum value selected on the slider.

maxValue*

number

The current maximum value selected on the slider.

onChange

object

Callback fired when the min or max value changes.

onMinChange

object

Callback fired when the min value changes.

onMaxChange

object

Callback fired when the max value changes.

onChangeEnd

object

Callback fired when the user finishes interacting with the slider.

minAriaLabel

string

'Minimum value'

Accessible label for the minimum value thumb.

maxAriaLabel

string

'Maximum value'

Accessible label for the maximum value thumb.

min

number

'0'

The minimum value of the slider range.

max

number

'100'

The maximum value of the slider range.

step

number

'1'

The step increment between values.

appearance

'danger'
'neutral'
'primary'
'success'
'warning'

'primary'

Visual appearance of the slider fill.

disabled

boolean

'false'

Whether the slider is disabled.

data-testid

string

This is an attribute used to identify a DOM node for testing purposes.

Ajude-nos a melhorar a documentação

Encontrou um problema ou tem uma sugestão? Conte para a gente.