PassiveModal представляет собой модальное окно, которое используется для отображения информации без необходимости взаимодействия с пользователем через кнопки действия. Этот компонент идеально подходит для уведомлений, предупреждений или вспомогательной информации, где требуется лишь прочтение контента. В Carbon Components Svelte PassiveModal полностью соответствует стилю IBM Carbon Design System и обеспечивает единообразный пользовательский опыт.
Для начала необходимо импортировать компонент PassiveModal из библиотеки:
<script>
import { PassiveModal } from 'carbon-components-svelte';
let open = false;
</script>
Основные свойства PassiveModal:
Пример базового использования:
<PassiveModal
bind:open
modalLabel="Информация"
modalHeading="Важно"
passiveModalBody="Это уведомление носит информативный характер и не требует действий."
/>
<button on:click={() => open = true}>Открыть модальное окно</button>
В данном примере модальное окно открывается при нажатии кнопки и автоматически закрывается по клику вне него или при нажатии клавиши Esc.
PassiveModal отличается от стандартного Modal отсутствием кнопок действий (например, «Подтвердить» или «Отмена»). Это упрощает взаимодействие и делает компонент удобным для быстрого информирования пользователя.
Закрытие окна происходит через:
Адаптивность: модальное окно автоматически подстраивается под размеры экрана и поддерживает мобильные устройства.
PassiveModal позволяет изменять стили через стандартные CSS-классы Carbon:
Пример кастомного стиля:
<style>
.custom-modal .bx--modal-container {
background-color: #f4f4f4;
padding: 2rem;
}
.custom-modal .bx--modal-header {
color: #0f62fe;
font-size: 1.5rem;
}
</style>
<PassiveModal
class="custom-modal"
bind:open
modalLabel="Статус системы"
modalHeading="Оповещение"
passiveModalBody="Система обновлена и работает корректно."
/>
С помощью привязки свойства bind:open модальное окно можно управлять программно. Это особенно полезно при интеграции PassiveModal с логикой приложения:
<script>
import { PassiveModal } from 'carbon-components-svelte';
let open = false;
function showNotification() {
open = true;
setTimeout(() => open = false, 5000); // Автоматическое закрытие через 5 секунд
}
</script>
<PassiveModal
bind:open
modalLabel="Обновление"
modalHeading="Информация"
passiveModalBody="Новые данные успешно загружены."
/>
<button on:click={showNotification}>Показать уведомление</button>
Такой подход позволяет реализовать автоматические уведомления без участия пользователя.
PassiveModal полностью поддерживает ARIA-атрибуты для обеспечения доступности:
Использование этих атрибутов делает PassiveModal соответствующим стандартам WCAG.
PassiveModal является мощным инструментом для отображения уведомлений и информационных сообщений в интерфейсах на Svelte, сохраняя единый стиль Carbon Design System и обеспечивая высокую степень удобства для пользователей.