NotificationActionButton — это специализированный компонент библиотеки Carbon Components Svelte, предназначенный для создания кнопок действий внутри уведомлений (notifications). Он позволяет добавлять интерактивные элементы к уведомлениям, такие как ссылки, кнопки подтверждения или отмены, обеспечивая пользователю быстрый доступ к действиям без необходимости перехода на другие части интерфейса.
<NotificationActionButton
kind="ghost"
disabled={false}
on:click={handleClick}
>
Действие
</NotificationActionButton>
kind – определяет визуальный стиль
кнопки. Доступные значения:
ghost — прозрачная кнопка с рамкой.primary — основной акцент на действии.secondary — второстепенное действие.disabled – логическое значение,
указывающее, доступна ли кнопка для взаимодействия.
on:click – событие клика,
позволяющее привязать обработчик действий.
Компонент поддерживает стандартные DOM-события, но наиболее часто
используется событие click. Оно может быть обработано с
использованием функций Svelte:
<script>
function handleClick(event) {
console.log("Кнопка действия нажата", event);
// Здесь можно реализовать логику закрытия уведомления
}
</script>
<NotificationActionButton on:click={handleClick}>
Подтвердить
</NotificationActionButton>
Особенность компонента в том, что его клик часто используется
совместно с уведомлениями типа inline или
toast, поэтому обработка должна учитывать контекст
уведомления.
Компонент NotificationActionButton предназначен для
использования внутри компонента Notification. Пример
типового использования:
<Notification
kind="info"
title="Информация"
subtitle="Это уведомление содержит кнопку действия"
on:close={handleClose}
>
<NotificationActionButton on:click={handleActionClick}>
Выполнить
</NotificationActionButton>
</Notification>
Notification — основной контейнер
уведомления.title и
subtitle — заголовок и подзаголовок
уведомления.on:close — событие закрытия
уведомления.NotificationActionButton располагается внутри
уведомления и визуально отделяется от текста кнопкой.Компонент унаследует общие стили Carbon и корректно интегрируется с темами (light/dark). Для точной настройки можно использовать следующие параметры:
kind — влияет на цветовую палитру и
рамки.:global(.bx--btn--ghost) {
border-radius: 6px;
padding: 0.5rem 1rem;
}
bx--btn,
bx--btn--primary, bx--btn--ghost) позволяет
тонко настраивать внешний вид без ломки адаптивной структуры.Для уведомлений с множественными действиями можно добавлять несколько
NotificationActionButton:
<Notification kind="warning" title="Предупреждение">
<NotificationActionButton on:click={accept}>Принять</NotificationActionButton>
<NotificationActionButton kind="secondary" on:click={decline}>Отклонить</NotificationActionButton>
</Notification>
NotificationActionButton корректно работает с
клавиатурной навигацией и поддерживает:
Tab.Enter или
Space.Это делает компонент полностью готовым к использованию в интерфейсах с высокими требованиями к доступности.
kind="primary" для главного
действия — помогает пользователю быстро определить важное
действие.click внутри Notification
— чтобы уведомление могло закрыться автоматически после действия.Для toast-уведомлений, которые появляются и исчезают автоматически, рекомендуется использовать кнопки с краткими подписями и минимальной задержкой для реакции пользователя:
<Notification kind="success" title="Сохранено" subtitle="Данные успешно сохранены" timeout={5000}>
<NotificationActionButton on:click={undo}>Отменить</NotificationActionButton>
</Notification>
timeout — время, через которое
уведомление автоматически исчезает.undo позволяет отменить действие без перехода на
другую страницу.NotificationActionButton является ключевым элементом
интерактивных уведомлений в Carbon Components Svelte. Его гибкая
настройка, поддержка событий и полная интеграция с системами уведомлений
делает его незаменимым инструментом для создания эффективного
пользовательского интерфейса.