OverflowMenu в библиотеке Carbon Components Svelte представляет собой компонент, позволяющий организовать скрытые действия или опции интерфейса в компактном виде. Он особенно полезен, когда пространство ограничено, но необходимо предоставить пользователю доступ к дополнительным функциям.
Компонент OverflowMenu состоит из контейнера и элементов меню (OverflowMenuItem). Контейнер отвечает за отображение кнопки с иконкой, обычно три точки («kebab menu»), и управление состоянием раскрытия меню.
Простейший пример использования:
console.log('Action 1')}>
Действие 1
console.log('Action 2')}>
Действие 2
console.log('Удалить')}>
Удалить
Ключевые моменты:
on:click.С помощью пропсов OverflowMenu предоставляет гибкость:
direction — направление раскрытия меню
(bottom или top).flipped — изменяет направление раскрытия, если меню не
помещается на экране.open — управление состоянием меню извне через
биндинг.Пример:
Редактировать
Удалить
Использование биндинга open позволяет управлять
видимостью меню программно, что полезно для сложных интерфейсов, где
состояние меню зависит от внешних факторов.
Для упорядочивания элементов можно использовать группировку и
разделители. OverflowMenu поддерживает визуальное
разделение элементов через компонент OverflowMenuItem с
пропсом hasDivider.
Пример:
Копировать
Переместить
Удалить
hasDivider добавляет горизонтальную линию перед
элементом, что помогает визуально отделять группы действий.Каждый элемент OverflowMenuItem может содержать
иконку для улучшения визуальной идентификации действия. Для этого
используется слот icon.
Редактировать
Удалить
Особенности:
OverflowMenu поддерживает несколько ключевых событий:
on:open — срабатывает при открытии меню.on:close — срабатывает при закрытии меню.on:click у элементов меню — для обработки
действий.Пример логирования:
console.log('Меню открыто')} on:close={() => console.log('Меню закрыто')}>
console.log('Редактирование')}>Редактировать
Это позволяет строить сложные интерфейсы, где открытие меню может запускать дополнительные процессы или анимации.
OverflowMenu интегрирует стандарты доступности:
Правильная реализация этих функций обеспечивает соответствие WCAG и улучшает опыт пользователей с особыми потребностями.
{#each actions as action}
console.log(action)}>{action}
{/each}
Архивировать
Удалить
disabled блокирует элемент, предотвращая действия.{#if}) для
скрытия элементов в зависимости от состояния приложения.Для меню с большим количеством элементов рекомендуется:
{#each} с
ограничением на рендер).Такой подход предотвращает торможение интерфейса и сохраняет чистоту UX.
OverflowMenu поддерживает кастомизацию через классы и CSS-переменные:
Редактировать