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

Выбор времени

Time picker — поле формы для времени суток. Время вводят любое или выбирают из подсказок; форма получает 24-часовое время, например 19:30.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
<tk-field label="Start time" helper="For example, 2:30 PM">
  <tk-time-picker name="start" interval="15" min="09:00" max="17:00"></tk-time-picker>
</tk-field>

Оберните поле в Field, чтобы дать ему подпись, подсказку и ошибку. Без Field задайте aria-label. Внутри Field ставьте required и disabled на сам Field.

Анатомия

Часть Что это
tk-time-picker сам элемент; одна остановка Tab
part field рамка поля; занимает ширину контейнера
part input нативное текстовое поле; в него всегда можно печатать
иконка часов в конце поля; украшение, не кнопка
part listbox список подсказок; шириной с поле; открывается под ним, а у нижнего края экрана — над ним

Список только подсказывает. Можно ввести 7:37 PM, даже если список идёт с шагом 30 минут.

Размеры

<tk-time-picker aria-label="Pickup time" value="09:30"></tk-time-picker>
<tk-time-picker size="large" aria-label="Return time" value="17:00"></tk-time-picker>
size Высота Отступы по бокам Текст значения Строка подсказки
medium (по умолчанию) 32px space-8 Body Small (14/20) 32px
large 36px space-10 Body Medium (16/24) 36px

Высоты совпадают с Input и Button.

Состояния

<tk-time-picker aria-label="Opens at" value="08:00" readonly></tk-time-picker>
<tk-time-picker aria-label="Closes at" value="18:00" disabled></tk-time-picker>
<tk-field label="Reminder time" error="Enter a real time">
  <tk-time-picker name="reminder"></tk-time-picker>
</tk-field>

При наведении поле не меняется. В фокусе рамка окрашивается в цвет фокуса и утолщается внутрь; так остаётся, пока открыт список.

  • readonly: время можно выделить и скопировать; список не открывается.
  • disabled: ничего не работает, время не уходит с формой.
  • Ошибка: задайте error на Field. Рамка станет красной, под полем появится текст.

Ввод времени

Текст разбирается, когда человек нажимает Enter или уходит из поля. Регистр не важен, «p.m.» тоже подходит.

  • 21:30, 9:30 или 14.00
  • 9 или 21: целый час
  • 930, 0930 или 1730
  • любое из этого с AM или PM: 9:30pm, 9 PM, 930p

Без AM и PM время читается как 24-часовое: 9:30 — утро. С AM или PM часы идут от 1 до 12; 12 AM — полночь. Слова вроде «noon» не работают.

Разобранное время поле показывает как «9:30 AM» или «09:30» при hour-cycle="h23". Если текст не похож на время, поле оставляет его, сбрасывает значение и не даёт отправить форму.

Подсказки

<tk-time-picker aria-label="Quiet hours start" hour-cycle="h23"
  interval="60" min="22:00" max="07:00"></tk-time-picker>
  • interval задаёт шаг подсказок в минутах: 30 по умолчанию, 15 для расписаний. 60 должно делиться на него нацело. Введённое время он никогда не отклоняет.
  • min и max ограничивают и список, и значение. Если min позже max, окно переходит через полночь: от 22:00 до 07:00 список идёт с 22:00 до 07:00.
  • Список открывает клик в поле или Down. Набор текста его не открывает и не фильтрует.
  • Список открывается на выбранном времени или на ближайшей подсказке после текущего. Выбранное время отмечено галочкой.
  • Фокус остаётся в поле. Перемещение по списку не меняет значение; меняют Enter, клик или Tab на подсвеченной строке.
  • Esc или клик снаружи закрывают список без выбора.