ToastNotification — компонент для отображения временных всплывающих сообщений, которые информируют пользователя о состоянии системы, результатах действий или ошибках. В библиотеке Carbon Components Svelte он реализован с полным соблюдением принципов доступности и гибкости настройки.
Для использования ToastNotification необходимо
импортировать его из пакета carbon-components-svelte:
Здесь showToast управляет видимостью уведомления.
ToastNotification поддерживает следующие ключевые свойства:
kind — тип уведомления. Возможные значения:
'error' — сообщение об ошибке'info' — информационное сообщение'success' — подтверждение успешного действия'warning' — предупреждениеtitle — заголовок уведомления
subtitle — подзаголовок или дополнительный
текст
timeout — время автоматического закрытия в
миллисекундах. Если не указано, уведомление остаётся на экране до
закрытия вручную.
on:close — событие, срабатывающее при закрытии
уведомления
Пример базового использования:
showToast = false}
/>
ToastNotification в Svelte удобно контролировать через условный рендеринг:
{#if showToast}
showToast = false}
/>
{/if}
Использование переменной состояния позволяет легко интегрировать уведомления в логику приложения.
ToastNotification поддерживает различные стили и модификаторы:
lowContrast.hideCloseButton.kind. Для кастомной иконки
используется слот icon.Пример с кастомной иконкой:
В Carbon Components Svelte уведомления автоматически используют плавное появление и исчезновение, чтобы не создавать резких переходов на интерфейсе. Для дополнительного контроля анимации можно использовать Svelte transitions:
{#if showToast}
showToast = false}
transition:fade={{ duration: 400 }}
/>
{/if}
Для организации нескольких уведомлений можно использовать массив
объектов и цикл #each:
{#each notifications as n (n.id)}
removeNotification(n.id)}
/>
{/each}
Такой подход обеспечивает масштабируемое управление уведомлениями, где каждое уведомление имеет независимый таймер закрытия и обработчик событий.
Компонент полностью соответствует требованиям доступности:
alert для мгновенного оповещения
пользователей с помощью экранных читалок.Esc или Enter.kind="error" с чётким
заголовком.timeout, чтобы уведомления не
оставались навсегда на экране, если пользователь их не закроет.