Guia de Uso - Slider / Range
Status: Implementado (Design System 1.1 • 05/11/2025) – disponível em versões simples, duplas e com steps.
📋 Índice
Introdução
O componente Slider / Range permite selecionar um valor dentro de um intervalo. É ideal para:
- Ajustes de volume/brightness
- Filtros e configurações
- Seleção de valores numéricos
- Qualquer controle contínuo
Quando Usar Slider
✅ Use slider quando:
- Você precisa selecionar um valor em um intervalo
- O valor é numérico
- Quer controle visual intuitivo
- O intervalo é conhecido (min/max)
❌ Evite usar slider quando:
- Você tem poucas opções (<5) - use select
- Precisa de precisão exata - use input number
- O intervalo é muito grande sem steps
Estrutura Base
HTML Básico
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Com Labels
html
<div class="slider">
<div class="slider-labels">
<span class="slider-min">0</span>
<span class="slider-label">Volume</span>
<span class="slider-value">50</span>
<span class="slider-max">100</span>
</div>
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Tamanhos
Small
html
<div class="slider slider--sm">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Medium (Padrão)
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Large
html
<div class="slider slider--lg">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Estados
Default
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Disabled
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50" disabled>
</div>Variantes
Default
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50">
</div>Success
html
<div class="slider slider--success">
<input type="range" class="slider-input" min="0" max="100" value="75">
</div>Warning
html
<div class="slider slider--warning">
<input type="range" class="slider-input" min="0" max="100" value="60">
</div>Error
html
<div class="slider slider--error">
<input type="range" class="slider-input" min="0" max="100" value="30">
</div>Steps
Com Steps
html
<div class="slider">
<input type="range" class="slider-input" min="0" max="100" value="50" step="10">
</div>Nota: O step define o incremento. Exemplo: step="10" permite valores 0, 10, 20, 30...
Dark Mode
O Dark Mode é aplicado automaticamente quando a classe .dark, .dark-mode ou [data-theme="dark"] está presente no elemento raiz.
html
<html class="dark">
<!-- Slider automaticamente em dark mode -->
</html>Exemplos Práticos
Exemplo 1: Controle de Volume
html
<div class="slider">
<div class="slider-labels">
<span class="slider-min">0</span>
<span class="slider-label">Volume</span>
<span class="slider-value" id="volume-value">50</span>
<span class="slider-max">100</span>
</div>
<input type="range" class="slider-input" id="volume" min="0" max="100" value="50">
</div>javascript
const volumeSlider = document.getElementById('volume');
const volumeValue = document.getElementById('volume-value');
volumeSlider.addEventListener('input', function() {
volumeValue.textContent = this.value;
// Aplicar volume
setVolume(this.value);
});Exemplo 2: Filtro de Preço
html
<div class="slider">
<div class="slider-labels">
<span class="slider-min">R$ 0</span>
<span class="slider-label">Preço máximo</span>
<span class="slider-value" id="price-value">R$ 500</span>
<span class="slider-max">R$ 1000</span>
</div>
<input type="range" class="slider-input" id="price" min="0" max="1000" value="500" step="50">
</div>javascript
const priceSlider = document.getElementById('price');
const priceValue = document.getElementById('price-value');
priceSlider.addEventListener('input', function() {
priceValue.textContent = 'R$ ' + this.value;
// Filtrar produtos
filterProducts(this.value);
});Exemplo 3: Controle de Brightness
html
<div class="slider slider--success">
<div class="slider-labels">
<span class="slider-min">0%</span>
<span class="slider-label">Brilho</span>
<span class="slider-value" id="brightness-value">75%</span>
<span class="slider-max">100%</span>
</div>
<input type="range" class="slider-input" id="brightness" min="0" max="100" value="75">
</div>Boas Práticas
- Use labels descritivos: Seja claro sobre o que o slider controla
- Mostre valor atual: Exiba o valor selecionado
- Use steps quando apropriado: Para valores discretos
- Considere min/max: Sempre defina limites claros
- Feedback visual: Atualize valor em tempo real
Versão: 1.0.0
Data: 2025-01-27
Documentação: /public/css/design-system/GUIA_SLIDER.md
Exemplos: /public/css/design-system/exemplos-slider.html