Skip to content

Slider ​

Single-value range slider built on a native <input type="range">, wrapped in ControlElement.

Live Demo ​

Basic ​

Value: 40

Value readout ​

60 m²

Fractional step ​

0.5

Sizes ​

Horizontal layout, disabled, error ​

Too loud

Usage ​

vue
<template>
  <orio-slider v-model="area" label="Area" :min="20" :max="200" :step="5">
    <template #after>
      <orio-view-text>{{ area }} m²</orio-view-text>
    </template>
  </orio-slider>
</template>

<script setup>
import { ref } from 'vue'

const area = ref(60)
</script>

Props ​

Extends ControlProps (label, error, size, layout, disabled, required, name, …) — see ControlElement.

PropTypeDefaultDescription
modelValuenumber0Current value (v-model)
minnumber0Lowest value
maxnumber100Highest value
stepnumber1Increment; emitted values snap to it

Events ​

EventPayloadDescription
update:modelValuenumberEmitted while dragging or on keyboard change; clamped to min–max and snapped to step

Slots ​

SlotDescription
beforeContent inline before the track
afterContent inline after the track (e.g. value readout)

Keyboard Support ​

Native range behavior: Arrow keys step, Page Up/Down jump, Home/End go to min/max.

Styling ​

css
--color-accent          /* Filled track, thumb outline, focus ring */
--color-accent-hover    /* Thumb disc */
--color-border          /* Unfilled track */
--color-bg              /* Thumb ring */
--control-slider-thumb  /* Thumb diameter, from size */
--control-slider-track  /* Track height, from size */