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

Навигационное меню

Навигационное меню — основная навигация сайта или приложения: ряд ссылок, где некоторые пункты открывают панель с другими ссылками.

Стабильный Figma
ОбзорИспользованиеAPIДоступность
Products
  • Analytics
  • Billing
Pricing Docs
<tk-navigation-menu label="Main">
  <tk-navigation-menu-item>
    Products
    <ul slot="panel">
      <li><tk-link href="/analytics" treatment="quiet">Analytics</tk-link></li>
      <li><tk-link href="/billing" treatment="quiet">Billing</tk-link></li>
    </ul>
  </tk-navigation-menu-item>
  <tk-navigation-menu-item href="/pricing">Pricing</tk-navigation-menu-item>
  <tk-navigation-menu-item href="/docs" current>Docs</tk-navigation-menu-item>
</tk-navigation-menu>

Анатомия

Часть Что это
tk-navigation-menu ориентир <nav> со списком пунктов
tk-navigation-menu-item с href ссылка
tk-navigation-menu-item с panel кнопка, которая открывает панель; это показывает шеврон
панель всплывающая поверхность с вашими ссылками; раскладку задаёте вы

Пункт — либо ссылка, либо кнопка, но не то и другое сразу. Если заданы и href, и панель, побеждает панель. disabled нет: чтобы пункт не был ссылкой, не задавайте href.

Панели

Содержимое панели — ваше. Для короткого выпадающего списка напишите список тихих ссылок:

Resources
  • Guides
  • Blog
<tk-navigation-menu label="Main">
  <tk-navigation-menu-item>
    Resources
    <ul slot="panel">
      <li><tk-link href="/guides" treatment="quiet">Guides</tk-link></li>
      <li><tk-link href="/blog" treatment="quiet">Blog</tk-link></li>
    </ul>
  </tk-navigation-menu-item>
</tk-navigation-menu>

Для панели побольше разложите колонки, в каждой заголовок и список:

Products

Analyze

  • Dashboards

Operate

  • Billing
<tk-navigation-menu label="Main">
  <tk-navigation-menu-item>
    Products
    <div slot="panel" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-24)">
      <div><h3>Analyze</h3><ul><li><tk-link href="/dashboards" treatment="quiet">Dashboards</tk-link></li></ul></div>
      <div><h3>Operate</h3><ul><li><tk-link href="/billing" treatment="quiet">Billing</tk-link></li></ul></div>
    </div>
  </tk-navigation-menu-item>
</tk-navigation-menu>
  • В панели только ссылки. Никаких кнопок, действий и полей формы.
  • Не вкладывайте панель в панель.
  • Панель не шире 720px и не выше 560px, дальше она прокручивается.

Открытие

  • Клик, Enter или Space на пункте открывают его панель. Down открывает её и переводит фокус на первую ссылку.
  • При наведении панель открывается с небольшой задержкой, чтобы она не мелькала от случайно проходящего курсора. К панели можно вести курсор наискосок, она не закроется.
  • Один фокус панель не открывает, касание тоже.
  • Открыта одна панель за раз. Её закрывают Esc, клик снаружи, уход курсора или уход фокуса из меню. Сама по таймеру она не закрывается.

Текущая страница

current отмечает страницу, на которой человек сейчас. У пункта появляется подчёркивание 2px, и он остаётся ссылкой.

Guides Components Tokens
<tk-navigation-menu label="Docs sections">
  <tk-navigation-menu-item href="/guides">Guides</tk-navigation-menu-item>
  <tk-navigation-menu-item href="/components" current>Components</tk-navigation-menu-item>
  <tk-navigation-menu-item href="/tokens">Tokens</tk-navigation-menu-item>
</tk-navigation-menu>

Состояния

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

Мобильная версия

Своей точки перелома у меню нет. На узких экранах положите те же ссылки в Sheet; как это сделать, показано на странице Sidebar.