Для интеграции iziToast в проект необходимо подключить CSS и JS файлы библиотеки. Обычно это делается через CDN или локальные файлы:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/izitoast/dist/css/iziToast.min.css">
<script src="https://cdn.jsdelivr.net/npm/izitoast/dist/js/iziToast.min.js"></script>
После подключения можно создавать уведомления с помощью метода
iziToast.show(). Базовый пример:
iziToast.show({
title: 'Успешно',
message: 'Данные сохранены',
position: 'topRight'
});
Ключевые параметры:
title — заголовок уведомленияmessage — основной текстposition — положение на экране (topRight,
topLeft, bottomRight, bottomLeft,
center)Для адаптации iziToast под собственную дизайн-систему важно использовать следующие возможности:
Стили iziToast легко переопределяются через объект theme
и кастомные CSS классы:
iziToast.settings({
theme: 'light', // 'light', 'dark', или кастомный
backgroundColor: '#f5f5f5',
titleColor: '#333333',
messageColor: '#555555',
progressBarColor: '#007bff'
});
backgroundColor задает фон уведомленияtitleColor и messageColor — цвета
текстаprogressBarColor — цвет индикатора прогрессаМожно создать собственный CSS класс для полного контроля внешнего вида:
.custom-toast {
border-radius: 8px;
font-family: 'Roboto', sans-serif;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
И применить его:
iziToast.show({
title: 'Информация',
message: 'Сообщение в стиле дизайн-системы',
class: 'custom-toast'
});
Для соответствия общему UX дизайн-системы используются анимации:
iziToast.show({
title: 'Пример',
message: 'Появление уведомления с анимацией',
animateInside: true,
transitionIn: 'fadeInDown',
transitionOut: 'fadeOutUp'
});
transitionIn и transitionOut контролируют
вход и выход уведомленияanimateInside активирует анимацию элементов внутри
блокаДоступные типы анимаций включают fadeIn,
fadeOut, bounceIn, bounceOut,
slideInRight и др. Их можно расширять кастомными классами
CSS.
Размер уведомления под дизайн-систему регулируется через
maxWidth и padding:
iziToast.show({
title: 'Широкое уведомление',
message: 'Сообщение с фиксированной шириной',
maxWidth: 400,
padding: 20
});
maxWidth ограничивает ширину уведомленияpadding позволяет согласовать внутренние отступы с
другими элементами интерфейсаПозиционирование можно комбинировать с отступами:
iziToast.show({
title: 'В правом верхнем углу',
message: 'С кастомными отступами',
position: 'topRight',
timeout: 5000,
balloon: true
});
Дизайн-система часто подразумевает уникальные иконки для уведомлений.
В iziToast это реализуется через icon и
buttons:
iziToast.show({
title: 'Ошибка',
message: 'Что-то пошло не так',
icon: 'icon-error', // кастомный CSS класс или URL
buttons: [
['<button>Закрыть</button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast);
}]
]
});
icon можно задавать как класс из библиотеки иконок или
путь к SVG/PNGbuttons позволяют создавать интерактивные элементы с
обратным вызовомДля унификации всех уведомлений проект может использовать глобальные настройки:
iziToast.settings({
timeout: 4000,
close: true,
layout: 2,
zindex: 9999
});
timeout — время показа уведомленияclose — наличие кнопки закрытияlayout — структура уведомления (1 или
2 блока)zindex — уровень наложения на страницеПри использовании фреймворков, таких как Vue или React, iziToast можно обернуть в сервис или компонент:
// toastService.js
export default {
success(message) {
iziToast.show({
title: 'Успех',
message: message,
color: 'green',
position: 'topRight'
});
},
error(message) {
iziToast.show({
title: 'Ошибка',
message: message,
color: 'red',
position: 'topRight'
});
}
};
Такой подход позволяет централизованно управлять стилями и поведением уведомлений, полностью интегрируя их в дизайн-систему проекта.
Для соответствия стандартам UX и accessibility:
ariaLive для озвучивания уведомлений
скринридерамиmaxWidthiziToast.show({
title: 'Адаптивное уведомление',
message: 'Подстраивается под экран',
position: 'bottomRight',
maxWidth: window.innerWidth < 480 ? window.innerWidth - 20 : 400
});
Такой подход обеспечивает полное соответствие визуальной и функциональной части дизайн-системы, делая уведомления гармоничными и единообразными во всех компонентах интерфейса.