Slider

Input slider untuk memilih nilai numerik, mendukung mode tunggal dan rentang.

bun x bosia@latest add slider

Slider yang dibangun di atas pointer event dan ARIA role="slider", dengan mode satu-thumb dan rentang (dua-thumb), orientasi horizontal dan vertikal.

Preview

Value: 50

Range: 25 – 75

Step: 25

Disabled

Vertical

Props

Prop Type Default
type "single" | "range" "single"
value number | [number, number] 0 or [0,0]
min number 0
max number 100
step number 1
orientation "horizontal" | "vertical" "horizontal"
disabled boolean false
name string
id string
class string ""

Penggunaan

<script lang="ts">
	import { Slider } from "$lib/components/ui/slider";
	let value = $state(50);
</script>

<Slider bind:value /><p>Value: {value}</p>

Rentang

Gunakan type="range" untuk dua thumb. Value-nya berupa tuple [number, number].

<script lang="ts">
	import { Slider } from "$lib/components/ui/slider";
	let range = $state<[number, number]>([20, 80]);
</script>

<Slider type="range" bind:value={range} /><p>From {range[0]} to {range[1]}</p>

Vertikal

<div class="h-40">
	<Slider orientation="vertical" value={40} />
</div>

Step Kustom

<Slider step={10} value={50} />

Nonaktif

<Slider disabled value={60} />

Penggunaan Form

Saat prop name diberikan, elemen <input> tersembunyi dirender untuk pengiriman form native. Mode rentang men-submit dua nilai dengan name[].

<form method="POST">
	<Slider name="volume" value={75} />
	<button type="submit">Save</button>
</form>