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

Выбор даты

Date picker — поле формы для одной даты. Дату вводят с клавиатуры или выбирают в календаре; форма получает дату ISO, например 2026-03-17.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
<tk-field label="Departure date" helper="For example, 27 3 2026">
  <tk-date-picker name="departure" min="2026-03-05" max="2026-09-30"></tk-date-picker>
</tk-field>

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

Анатомия

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

Подпись, подсказку и ошибку даёт Field. Календарь одного размера при любом размере поля.

Размеры

<tk-date-picker aria-label="Start date" value="2026-03-17"></tk-date-picker>
<tk-date-picker size="large" aria-label="End date" value="2026-03-24"></tk-date-picker>
size Высота Отступы по бокам Текст значения
medium (по умолчанию) 32px space-8 / space-4 Body Small (14/20)
large 36px space-10 / space-4 Body Medium (16/24)

Отступ в конце меньше, чтобы кнопка календаря 24px стояла в поле ровно. Высоты совпадают с Input и Button.

Состояния

<tk-date-picker aria-label="Joined" value="2024-11-02" readonly></tk-date-picker>
<tk-date-picker aria-label="Renewal date" value="2026-11-02" disabled></tk-date-picker>
<tk-field label="Arrival date" error="Arrival date must be a real date">
  <tk-date-picker name="arrival"></tk-date-picker>
</tk-field>

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

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

Ввод даты

Текст разбирается, когда человек нажимает Enter или уходит из поля, но не во время набора. Подходят все эти формы:

  • 2026-03-27
  • 27 mar 2026, March 27, 2026 или 27 March (текущий год)
  • 27 3 2026, 27/3/2026 или 27.3.2026: день, месяц, год

Год — четыре цифры. Разобранную дату поле показывает как «27 Mar 2026».

Если текст не похож на настоящую дату, поле оставляет его, сбрасывает значение и не даёт отправить форму. Сообщение покажите через error на Field; см. Текст.

Открытие календаря

  • Календарь открывает его кнопка или Down в поле. Фокус, клик или набор текста в поле его не открывают.
  • Фокус переходит на выбранный день, иначе на сегодня, иначе на первый доступный день.
  • Выбор дня задаёт значение, закрывает календарь и возвращает фокус в поле. Кнопки OK нет.
  • Esc, клик снаружи или Tab закрывают календарь, ничего не меняя. Esc не закрывает диалог вокруг.
  • Можно кликнуть обратно в поле и печатать, календарь останется открытым.

Памятные даты

Дату, которую помнят наизусть, вводят в Input, без календаря:

<tk-field label="Day"><tk-input inputmode="numeric" autocomplete="bday-day"></tk-input></tk-field>
<tk-field label="Month"><tk-input inputmode="numeric" autocomplete="bday-month"></tk-input></tk-field>
<tk-field label="Year"><tk-input inputmode="numeric" autocomplete="bday-year"></tk-input></tk-field>
  • Отдельные поля для дня, месяца и года под общей подписью вроде «Дата рождения» и одна подсказка: «Например, 27 3 2007». Если места мало — одно поле.
  • Месяц просите числом, а не выбором из списка.
  • Не переводите фокус в следующее поле автоматически.
  • Для даты рождения задайте autocomplete: bday-day, bday-month, bday-year или bday для одного поля.