SvelteKit предоставляет мощные возможности для работы с пользовательскими интерфейсами, включая встроенные и сторонние библиотеки компонентов UI. Компоненты Progress и Slider играют ключевую роль в отображении прогресса и управлении числовыми значениями, обеспечивая интерактивность и визуальную обратную связь пользователю.
Progress используется для визуализации выполнения задачи или статуса загрузки. Основные свойства и методы включают:
value — текущее значение прогресса.
Может быть числом от 0 до 100.max — максимальное значение, по
умолчанию 100.indeterminate — булевое свойство,
используемое для отображения анимации «бесконечного» прогресса, когда
точный процент выполнения неизвестен.color — цвет индикатора. Может
использоваться с системными темами или кастомными стилями.Пример использования:
<script>
let progressValue = 45;
</script>
<Progress value={progressValue} max={100} color="blue"/>
В этом примере создаётся линейный индикатор прогресса с текущим значением 45%. Компонент автоматически анимирует изменение значения при его обновлении.
Стилизация и кастомизация:
:global(.progress-bar) {
--progress-color: #4f46e5;
height: 8px;
border-radius: 4px;
}
Slider позволяет пользователю выбирать числовое значение из диапазона, предоставляя интуитивный визуальный элемент управления.
min — минимальное значение диапазона
(по умолчанию 0).max — максимальное значение диапазона
(по умолчанию 100).step — шаг изменения значения, что
позволяет делать точные настройки.value — текущее значение слайдера.
Может быть связано с переменной для двусторонней привязки.disabled — отключение слайдера, делая
его неактивным.color — цвет активной области
слайдера.Пример использования:
<script>
let volume = 30;
</script>
<Slider bind:value={volume} min={0} max={100} step={5} color="green"/>
<p>Текущее значение: {volume}</p>
Здесь volume обновляется в реальном времени при
перемещении ползунка, что делает интерфейс интерактивным.
Двойные ползунки (range slider) — позволяют выбирать диапазон значений, полезно для фильтров цен или диапазонов дат.
Вертикальные и горизонтальные варианты — слайдеры могут быть ориентированы как вертикально, так и горизонтально.
События:
on:input — срабатывает при изменении значения.on:change — срабатывает после завершения перемещения
ползунка.<Slider min={0} max={100} bind:value={volume} on:input={() => console.log(volume)}/>
Комбинирование Progress и Slider часто используется для динамического обновления визуальных индикаторов. Например, изменение значения слайдера может напрямую обновлять прогресс-бар:
<script>
let progressValue = 25;
</script>
<Slider bind:value={progressValue} min={0} max={100} step={1} color="orange"/>
<Progress value={progressValue} max={100} color="orange"/>
Такой подход обеспечивает мгновенную визуальную обратную связь, что критично для UX в приложениях с настройками и контролем параметров в реальном времени.
svelte:component и избегать лишних реактивных
вычислений.bind:value гарантирует минимальные усилия по синхронизации
состояния.Эти компоненты обеспечивают удобство управления и отображения числовых значений, позволяют создавать современные интерфейсы с минимальным количеством кода и высокой интерактивностью. Их гибкость и интеграция с реактивной системой SvelteKit делает их базовыми инструментами для UI-разработки.