Описание компонента Slider

Назначение компонента

Компонент Slider (ползунок) позволяет пользователям выбирать значение или диапазон значений путем перемещения элементов управления вдоль трека. Используется для:

  • Выбора числовых значений в заданном диапазоне
  • Настройки параметров (громкости, яркости и т.д.)
  • Фильтрации данных по диапазону
  • Визуализации и изменения процентных соотношений

Структура компонента

Компонент состоит из:

  1. Контейнера слайдера (.sf-slider)
  2. Элементов ввода (input[type="range"])
  3. Визуального трека (.sf-slider-track)
  4. Ползунков (.sf-slider-handle)
  5. Отображаемых значений (.sf-slider-value)

Классы и их назначение

Класс Назначение
.sf-slider Основной контейнер слайдера
.sf-slider-handle Визуальное представление ползунка
.sf-slider-handle-container Контейнер для ползунка и подписи
.sf-slider-track Визуальный трек слайдера
.sf-slider-value Отображение текущего значения
.sf-slider-value--first Стиль для первого значения
.sf-slider-value--second Стиль для второго значения
.sf-slider-note Подпись к ползунку
.sf-slider-note-background Подпись с фоновым оформлением

Таблица CSS-переменных

Переменная Описание Значение по умолчанию
--sf-slider-handle--background-color Цвет обводки ползунка var(--sf-primary)
--sf-slider-handle--diameter Диаметр ползунка var(--sf-c2)
--sf-slider-handle--border-width Толщина обводки ползунка var(--sf-a5)

Особенности реализации

Кастомизация ползунков:

  • Стилизация через псевдоэлементы ::-webkit-slider-thumb и ::-moz-range-thumb
  • Разные состояния (hover, focus) с изменением размера и толщины обводки

Динамическое отображение:

  • Значения обновляются при перемещении ползунков
  • Активная часть трека подсвечивается между ползунками

Примеры использования

20
80
20
80
20
80
<!-- Базовый слайдер с диапазоном --> <div class="sf-slider"> <input class="sf-slider-input--first" type="range" min="1" max="100" value="20" id="slider-1"> <input class="sf-slider-input--second" type="range" min="1" max="100" value="70" id="slider-2"> <div class="sf-slider-track"></div> <div class="sf-slider-value sf-slider-value--first" id="slider-1-value">20</div> <div class="sf-slider-value sf-slider-value--second" id="slider-2-value">80</div> </div> <!-- Второй экземпляр базового слайдера --> <div class="sf-slider"> <input class="sf-slider-input--first" type="range" min="1" max="100" value="20" id="slider-1"> <input class="sf-slider-input--second" type="range" min="1" max="100" value="70" id="slider-2"> <div class="sf-slider-track"></div> <div class="sf-slider-value sf-slider-value--first" id="slider-1-value">20</div> <div class="sf-slider-value sf-slider-value--second" id="slider-2-value">80</div> </div> <!-- Слайдер с оформленной границей --> <div class="sf-slider slider-border"> <input class="sf-slider-input--first" type="range" min="1" max="100" value="20" id="slider-11"> <input class="sf-slider-input--second" type="range" min="1" max="100" value="70" id="slider-12"> <div class="sf-slider-track"></div> <div class="sf-slider-value sf-slider-value--first">20</div> <div class="sf-slider-value sf-slider-value--second">80</div> </div>

Изменить статью