Компонент Slider в SvelteKit UI предназначен для интерактивного выбора числового значения из заданного диапазона. Он сочетает визуальное представление с возможностью программного контроля через состояние Svelte. Slider часто используется для регулировки громкости, выбора цены, диапазонов дат или других числовых параметров.
Для использования Slider необходимо импортировать компонент из библиотеки UI:
<script>
import { Slider } from 'sveltekit-ui';
let value = 50;
</script>
<Slider bind:value min={0} max={100} step={1} />
<p>Текущее значение: {value}</p>
Ключевые моменты:
bind:value — связывает значение с переменной Svelte.
Любое изменение слайдера автоматически обновляет переменную.min и max — границы диапазона.step — шаг изменения значения, полезен для дискретных
выборов.Слайдер в SvelteKit UI можно настраивать с помощью пропсов и классов:
<Slider
bind:value={volume}
min={0}
max={100}
step={5}
trackColor="blue"
thumbColor="red"
/>
trackColor — цвет дорожки, по которой движется
ползунок.thumbColor — цвет ползунка (ручки слайдера).size — опциональный проп для изменения толщины и
размеров ползунка ('sm' | 'md' | 'lg').Визуальная кастомизация позволяет легко интегрировать компонент в дизайн-платформу проекта.
Slider поддерживает как дискретные значения, так и диапазонные (range):
<script>
let range = [20, 80];
</script>
<Slider bind:value={range} range min={0} max={100} step={5} />
<p>Выбранный диапазон: {range[0]} - {range[1]}</p>
range в true превращает слайдер
в диапазон с двумя ползунками.[minValue, maxValue] используется для
двустороннего биндинга.Компонент Slider генерирует несколько событий для интеграции с логикой приложения:
on:input — вызывается при каждом изменении положения
ползунка.on:change — вызывается при завершении изменения,
например, при отпускании мыши.on:focus / on:blur — для отслеживания
фокуса элемента, важно для клавиатурного управления.Пример использования событий:
<Slider
bind:value={volume}
min={0}
max={100}
step={1}
on:input={(e) => console.log('Изменение:', e.detail)}
on:change={(e) => console.log('Окончательное значение:', e.detail)}
/>
Slider полностью поддерживает управление с клавиатуры:
← и → — изменение значения на
step.PageUp / PageDown — изменение на 10%
диапазона.Home / End — переход к минимальному или
максимальному значению.На сенсорных устройствах слайдер реагирует на свайпы и перетаскивание, обеспечивая плавное взаимодействие.
Компонент автоматически добавляет атрибуты ARIA для доступности:
role="slider"aria-valuemin, aria-valuemax,
aria-valuenowaria-valuetext — при кастомном отображении
значенияЭти атрибуты обеспечивают корректное озвучивание слайдера для экранных читалок и соответствие стандартам WCAG.
Slider легко интегрируется с другими элементами интерфейса:
<Slider bind:value={brightness} min={0} max={100} step={1} />
<progress max="100" value={brightness}></progress>
<input type="number" bind:value={brightness} min={0} max={100} />
<Slider bind:value={brightness} min={0} max={100} step={1} />
Slider позволяет полностью изменить рендер ползунка и трека через слоты и кастомные компоненты:
<Slider bind:value={value} let:thumb let:track>
<div slot="track" class="custom-track"></div>
<div slot="thumb" class="custom-thumb">{value}</div>
</Slider>
slot="track" — замена стандартной дорожки.slot="thumb" — позволяет выводить текущие значения или
анимации на ползунке.Slider в SvelteKit UI сочетает простоту базового использования с возможностью глубокой кастомизации и интеграции, поддерживает доступность, сенсорное управление и управление с клавиатуры. Его гибкость делает его универсальным инструментом для любых интерфейсных задач, связанных с выбором числовых значений.