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

Чекбокс

Чекбокс включает или выключает один вариант в форме. Связанные чекбоксы собирают в tk-checkbox-group.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
Product updates Events and meetups Research invitations
<tk-checkbox-group label="Email notifications" helper="Select all that apply">
  <tk-checkbox name="topics" value="product" checked>Product updates</tk-checkbox>
  <tk-checkbox name="topics" value="events">Events and meetups</tk-checkbox>
  <tk-checkbox name="topics" value="research">Research invitations</tk-checkbox>
</tk-checkbox-group>

Анатомия

Часть Что это
tk-checkbox один вариант и отдельный элемент формы; одна остановка Tab
слот по умолчанию подпись, обязательна; она же доступное имя, в ней может быть ссылка
квадрат 16px; во включённом виде в нём галочка или минус
подсказка необязательный текст под подписью
сообщение об ошибке необязательный текст под подписью, только у одиночного чекбокса
tk-checkbox-group группа; своей остановки Tab не добавляет и сама ничего не отправляет
подпись группы legend: категория или вопрос, обязательна
подсказка и ошибка группы под подписью группы, над вариантами
слот группы по умолчанию элементы tk-checkbox, друг под другом

Вся строка, квадрат и подпись, нажимается целиком.

Состояния

Remember me Product updates All files Security alerts
<tk-checkbox>Remember me</tk-checkbox>
<tk-checkbox checked>Product updates</tk-checkbox>
<tk-checkbox indeterminate>All files</tk-checkbox>
<tk-checkbox disabled checked>Security alerts</tk-checkbox>

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

  • checked: начальное состояние. Нажатие его переключает; текущее состояние читайте из свойства checked.
  • indeterminate: родитель, у которого отмечена часть дочерних вариантов. Ставится из вашего кода; нажатие снимает его и переключает checked. Логика «выбрать все» на вашей стороне.
  • disabled: на чекбокс нельзя перейти, его нельзя изменить, он не отправляется с формой. Отключённые отмеченный и неотмеченный отличаются только бледной галочкой, поэтому если важно, что вариант «включён и закреплён», напишите это текстом. Лучше оставить чекбокс активным.

Обязательность и ошибка

У одиночного чекбокса required значит, что без отметки форма не отправится, и добавляет звёздочку. error показывает ваше сообщение под ним и красную рамку у неотмеченного квадрата.

I agree to the Terms of Service
<tk-checkbox name="terms" required error="Agree to the Terms of Service to continue">
  I agree to the <a href="/terms">Terms of Service</a>
</tk-checkbox>

Чекбокс ничего не проверяет сам. error ставите и снимаете вы. В группе ставьте error на группу, а не на варианты.

Группа

Design Code Research
<tk-checkbox-group label="Topics" required error="Select at least one topic">
  <tk-checkbox name="topics" value="design">Design</tk-checkbox>
  <tk-checkbox name="topics" value="code">Code</tk-checkbox>
  <tk-checkbox name="topics" value="research">Research</tk-checkbox>
</tk-checkbox-group>
  • label обязателен. label-hidden прячет подпись с экрана, но оставляет её для скринридеров.
  • Ошибка группы стоит над вариантами, поэтому видна и в длинном списке. Квадраты она не перекрашивает.
  • required только добавляет звёздочку. Проверку «хотя бы один» делайте сами и показывайте результат через error.
  • disabled отключает все чекбоксы группы.
  • Каждый чекбокс отправляет свои name и value; у группы значения нет.