Volume level
Choose a value in a familiar bounded 0–100 range.
Components / Forms
A styled native range input with optional visible value formatting.
npx @getweini/cli@latest add sliderChoose a value in a familiar bounded 0–100 range.
Show a formatted value while keeping the model numeric.
<script setup lang="ts">
import { ref } from 'vue'
import Slider from './components/ui/slider/Slider.vue'
const volume = ref(40)
</script>
<template>
<Slider v-model="volume" :min="0" :max="100" show-value aria-label="Volume" />
</template>The native range input supports keyboard adjustments.
<script setup lang="ts">
import { ref } from 'vue'
import Slider from './components/ui/slider/Slider.vue'
const volume = ref(40)
</script>
<template>
<label for="volume">Volume</label>
<Slider id="volume" v-model="volume" name="volume" :min="0" :max="100" show-value />
</template>valueLabel formats the visible and spoken value.
<script setup lang="ts">
import { ref } from 'vue'
import Slider from './components/ui/slider/Slider.vue'
const discount = ref(10)
const percentage = (value: number) => value + '%'
</script>
<template>
<label for="discount">Discount</label>
<Slider id="discount" v-model="discount" :min="0" :max="50" :step="5" show-value :value-label="percentage" />
</template>The most useful props, models, slots, events, and methods for this component.
| Name | Type | Default or requirement |
|---|---|---|
v-model | number | required |
min / max / step | number | 0 / 100 / 1 |
disabled | boolean | false |
size | sm | md | lg | md |
showValue | boolean | false |
valueLabel | (value: number) => string | String |
Native range keyboard, focus, form, and accessibility behavior is preserved. Supply an accessible name; valueLabel also provides aria-valuetext when formatted values need more context.