Skip to content

Slider ​

Controle deslizante para seleção de um valor ou intervalo.

Uso ​

vue
<script setup lang="ts">
import { Slider } from '@halfbyte/maka'
import { ref } from 'vue'

const volume = ref(50)
</script>

<template>
  <Slider v-model="volume" label="Volume" />
</template>

Exemplos ​

Básico ​

vue
<Slider v-model="val" label="Padrão" />
<Slider v-model="val" label="Sem valor" :show-value="false" />
<Slider v-model="val" label="Passo de 10" :step="10" :show-ticks="true" />
<Slider v-model="val" label="Desabilitado" :disabled="true" />

Range ​

Passe um array [lo, hi] em v-model para ativar o modo de dois thumbs.

vue
<Slider v-model="range" label="Intervalo" />
<Slider v-model="price" label="Preço" :min="0" :max="1000" :step="50"
  :format-value="v => `R$${v}`" />

Tamanhos ​

vue
<Slider size="sm" v-model="val" label="Small" />
<Slider size="md" v-model="val" label="Medium" />
<Slider size="lg" v-model="val" label="Large" />

Cores ​

vue
<Slider color="blue"  v-model="val" label="Blue" />
<Slider color="black" v-model="val" label="Black" />
<Slider color="lime"  v-model="val" label="Lime" />

Error ​

vue
<Slider tone="error" v-model="val" label="Valor inválido" />

Com input numérico ​

vue
<Slider v-model="val" label="Com input" :with-input="true" />
<Slider v-model="range" label="Range + input" :with-input="true" />

Ticks e labels de limites ​

vue
<Slider
  v-model="temp"
  label="Temperatura"
  :min="1" :max="5" :step="1"
  :show-ticks="true"
  min-label="Frio"
  max-label="Quente"
  :format-value="v => ['','❄️','','🌤','','🔥'][v]"
/>

Props ​

PropTipoPadrão
modelValuenumber | [number, number]—
defaultValuenumber | [number, number]—
minnumber0
maxnumber100
stepnumber1
size"sm" | "md" | "lg""md"
color"blue" | "black" | "lime""blue"
tone"default" | "error""default"
labelstring—
showValuebooleantrue
formatValue(v: number) => string—
minLabelstring—
maxLabelstring—
showTicksbooleanfalse
withInputbooleanfalse
disabledbooleanfalse
namestring—
aria-labelstring—
aria-labelledbystring—

Events ​

EventoPayloadDescrição
update:modelValuenumber | [number, number]Emitido ao mover o controle

Teclado ​

TeclaAção
→ / ↑+step
← / ↓−step
Page Up+10×step
Page Down−10×step
HomeValor mínimo
EndValor máximo
TabPróximo knob