НачалоОсновыКомпонентыТексты

Слайдер

Слайдер задаёт примерное число или диапазон: нужно перетащить ручку по шкале.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
<tk-slider label="Volume" value="60" show-value></tk-slider>

Анатомия

Часть Что это
tk-slider сам элемент; по одной остановке Tab на ручку
дорожка вся шкала
заполненная часть от начала до ручки или между двумя ручками в диапазоне
ручка круглый захват, который тянут; для скринридера это и есть слайдер
пузырь со значением необязательная подпись над ручкой, пока её тянут или она в фокусе (show-value)
подписи min и max необязательные подписи по краям (show-min-max)
деления необязательные отметки на каждом step (marks)

Нажатие на дорожку переносит туда ближайшую ручку. Видимой подписи у слайдера нет: поставьте её над ним и задайте в label те же слова.

Диапазон

<tk-slider range label="Price" min="0" max="500" step="10" value-start="100" value-end="300" show-value></tk-slider>
  • range добавляет вторую ручку. Границы читайте из value-start и value-end.
  • Ручки не могут перейти друг через друга. min-gap держит между ними не меньше заданного числа единиц.
  • Каждая ручка — отдельная остановка Tab. Скринридер называет их «Price (minimum)» и «Price (maximum)».
  • Для важных диапазонов добавьте ещё два числовых поля. Слайдеры с двумя ручками работают со скринридерами по-разному.

Шкала и значение

<tk-slider label="Brightness" value="40" value-format="percent" show-min-max></tk-slider>
<tk-slider label="Rating" min="1" max="5" value="3" marks show-value></tk-slider>
  • min, max и step задают шкалу. Значения не выходят за неё и привязываются к step, даже если делений не видно.
  • value-format="percent" показывает значение в процентах: в пузыре, в подписях по краям и для скринридера.
  • marks ставит деление на каждом step. Подходит для нескольких шагов, а не для длинной шкалы.
  • Для валюты или единиц измерения задайте функцию в свойство format; она важнее, чем value-format:
<tk-slider id="budget" label="Budget" max="1000" step="50" show-value></tk-slider>
<script>
  document.querySelector('#budget').format = (v) => `$${v}`;
</script>

Размеры

<tk-slider label="Medium slider" value="50"></tk-slider>
<tk-slider label="Small slider" size="small" value="50"></tk-slider>
size Дорожка Ручка Высота
medium (по умолчанию) 10px 18px 24px
small 4px 12px 24px

Оба размера высотой 24px, и у каждой ручки цель нажатия 24px, поэтому слайдер помещается в плотную строку без дополнительных отступов.

Состояния

<tk-slider label="Bass" value="30" disabled></tk-slider>

Пока ручку тянут, она увеличивается. При фокусе с клавиатуры вокруг ручки появляется рамка.

  • disabled: слайдер приглушён, на него нельзя перейти, его нельзя изменить, он не отправляется с формой.