Навигационные элементы в Carbon Components Svelte строятся на основе набора готовых компонентов, обеспечивающих единообразный пользовательский интерфейс и соответствие дизайну IBM Carbon Design System. Ключевыми являются компоненты Header, HeaderMenu, HeaderGlobalBar, SideNav, SideNavItems и их производные.
Header является основным контейнером для верхней панели приложения. Его использование обеспечивает фиксированное расположение элементов навигации и интеграцию с глобальными инструментами, такими как поиск и пользовательские действия. Основные свойства:
aria-label – текстовая метка для скринридеров,
обязательна для доступности.expanded – логический флаг, отвечающий за состояние
раскрытия подменю.theme – позволяет выбирать цветовую схему
(light, dark).Пример использования:
Carbon App
Опция 1
Опция 2
Опция 3
HeaderMenu создаёт выпадающее меню в шапке приложения. Важные моменты:
on:click может быть привязано к элементам для
обработки действий без использования стандартной навигации.href, isCurrentPage для выделения активного
элемента.SideNav используется для боковой навигации, часто встречается в админ-панелях и корпоративных интерфейсах. Основные свойства:
expanded – состояние раскрытия навигации.isFixedNav – фиксированное положение на странице.aria-label – обязательная метка для доступности.SideNavItems содержат отдельные навигационные ссылки и подменю:
Панель
Отчёты
Настройки
Справка
HeaderGlobalBar предназначен для размещения действий, которые должны быть доступны на любом уровне интерфейса:
icon,
label и события on:click.Search20, Notification20).Пример:
console.log('Поиск')} />
Все навигационные компоненты поддерживают свойства theme и expanded, что позволяет адаптировать интерфейс под разные устройства:
theme="light" или theme="dark" для
соответствия общему стилю приложения.expanded={true} для десктопной версии и
expanded={false} для мобильной, где меню скрывается за
кнопкой-гамбургером.SideNav с событием on:toggle.Carbon Components Svelte соблюдает требования WCAG 2.1:
aria-label и role на
навигационных элементах.isSelected
для активного элемента.Элементы навигации легко интегрируются с SvelteKit или другими роутерами:
href у HeaderMenuItem и
SideNavMenuItem можно заменить на компонент
для SPA-навигации.on:click позволяют динамически изменять
состояние активного пункта меню без перезагрузки страницы.