Slider
An input component that allows users to select a value from a range by dragging a thumb along a track.
---import { Slider, SliderRange, SliderThumb, SliderTrack } from '@bejamas/ui/components/slider';---
<Slider class="w-full max-w-sm" defaultValue={[50]} max={100}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /></Slider>Installation
Section titled “Installation”bunx bejamas add slidernpx bejamas add sliderpnpm dlx bejamas add slideryarn dlx bejamas add slider---import { Slider, SliderTrack, SliderRange, SliderThumb } from '@bejamas/ui/components/slider';---
<Slider defaultValue={[50]} max={100}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /></Slider>Examples
Section titled “Examples”Use two thumbs to create a range slider for selecting a min and max value.
---import { Slider, SliderRange, SliderThumb, SliderTrack } from '@bejamas/ui/components/slider';---
<Slider class="w-full max-w-sm" defaultValue={[25, 75]} max={100}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /> <SliderThumb /></Slider>Vertical
Section titled “Vertical”Set orientation to vertical for a vertical slider.
---import { Slider, SliderRange, SliderThumb, SliderTrack } from '@bejamas/ui/components/slider';---
<div class="h-48"> <Slider class="h-full" orientation="vertical" defaultValue={[50]} max={100}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /> </Slider></div>Disabled
Section titled “Disabled”Disable the slider to prevent interaction.
---import { Slider, SliderRange, SliderThumb, SliderTrack } from '@bejamas/ui/components/slider';---
<Slider class="w-full max-w-sm" defaultValue={[50]} max={100} disabled> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /></Slider>Set a custom step increment.
---import { Slider, SliderRange, SliderThumb, SliderTrack } from '@bejamas/ui/components/slider';---
<Slider class="w-full max-w-sm" defaultValue={[50]} max={100} step={10}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /></Slider>API Reference
Section titled “API Reference”Events
Section titled “Events”The slider emits custom events that you can listen to:
| Event | Detail | Description |
|---|---|---|
slider:change | { value: number | [number, number] } | Fired on every value change (during drag) |
slider:commit | { value: number | [number, number] } | Fired when value is committed (pointer up or keyboard blur) |
<Slider id="my-slider" defaultValue={[50]} max={100}> <SliderTrack> <SliderRange /> </SliderTrack> <SliderThumb /></Slider>
<script> const slider = document.getElementById('my-slider');
slider.addEventListener('slider:change', (e) => { console.log('Value changing:', e.detail.value); });
slider.addEventListener('slider:commit', (e) => { console.log('Value committed:', e.detail.value); });</script>Programmatic Control
Section titled “Programmatic Control”You can set the slider value programmatically by dispatching a slider:set event:
// Set single valueslider.dispatchEvent(new CustomEvent('slider:set', { detail: { value: 75 }}));
// Set range valuesslider.dispatchEvent(new CustomEvent('slider:set', { detail: { value: [25, 75] }}));Data Attributes
Section titled “Data Attributes”The slider sets these data attributes that you can use for styling or querying state:
| Attribute | Element | Description |
|---|---|---|
data-orientation | slider | Current orientation (horizontal or vertical) |
data-disabled | slider | Present when slider is disabled |
data-dragging | slider, thumb | Present during drag interaction |
data-value | slider | Current value(s) as string (e.g., "50" or "25,75") |