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

Вкладки

Вкладки переключают разделы содержимого на месте, по одному разделу за раз.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
Overview Activity Members Billing
<tk-tab-bar label="Project" value="overview">
  <tk-tab value="overview">Overview</tk-tab>
  <tk-tab value="activity">Activity</tk-tab>
  <tk-tab value="members">Members</tk-tab>
  <tk-tab value="billing" disabled>Billing</tk-tab>
</tk-tab-bar>

Анатомия

Часть Что это
tk-tab-bar ряд вкладок на тонкой линии во всю ширину; одна остановка Tab
tk-tab одна вкладка высотой 40px
подчёркивание линия 2px под выбранной вкладкой
панель ваш собственный элемент, который показывается для выбранной вкладки

Панели

Вкладки рисует компонент, а панели — ваши собственные элементы. Для каждой панели:

  • задайте вкладке id и panel с id панели;
  • задайте панели role="tabpanel", aria-labelledby с id вкладки и tabindex="0";
  • когда приходит change, показывайте выбранную панель и прячьте остальные.
<tk-tab-bar id="settings-tabs" label="Settings" value="profile">
  <tk-tab id="tab-profile" value="profile" panel="panel-profile">Profile</tk-tab>
  <tk-tab id="tab-alerts" value="alerts" panel="panel-alerts">Notifications</tk-tab>
</tk-tab-bar>
<div id="panel-profile" role="tabpanel" aria-labelledby="tab-profile" tabindex="0">Your name and photo</div>
<div id="panel-alerts" role="tabpanel" aria-labelledby="tab-alerts" tabindex="0" hidden>Email and push alerts</div>
<script>
  const tabs = document.getElementById('settings-tabs');
  tabs.addEventListener('change', () => {
    for (const tab of tabs.querySelectorAll('tk-tab'))
      document.getElementById(tab.panel).hidden = tab.value !== tabs.value;
  });
</script>

Содержимое может менять и роутер. В любом случае показывайте новую панель сразу: переход фокуса между вкладками их выбирает.

Форма

shape="round" делает подложку под вкладкой при наведении и нажатии полностью скруглённой. Подчёркивание не меняется.

This week This month This year
<tk-tab-bar label="Reports" value="week" shape="round">
  <tk-tab value="week">This week</tk-tab>
  <tk-tab value="month">This month</tk-tab>
  <tk-tab value="year">This year</tk-tab>
</tk-tab-bar>

Состояния

При наведении подпись темнеет и появляется подложка, при нажатии подложка та же, при фокусе с клавиатуры — рамка. У выбранной вкладки тёмная подпись и подчёркивание.

  • disabled у вкладки: она приглушена, не нажимается, и клавиатура её пропускает. Где-нибудь рядом объясните, почему раздел недоступен.