Для начала необходимо подключить библиотеку Toastify к проекту. Существует два способа: через CDN или через пакетный менеджер npm/yarn. Использование CDN удобно для небольших проектов:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
Для проектов с Node.js и сборщиками модулей предпочтительно использовать npm:
npm install toastify-js
И импортировать в коде:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Минимальный пример уведомления выглядит следующим образом:
Toastify({
text: "Это простое предупреждение",
duration: 3000
}).showToast();
Если duration указано 0, уведомление не
исчезает автоматически и требует ручного закрытия.
Toastify позволяет указывать позицию всплывающего сообщения с помощью параметров:
Toastify({
text: "Предупреждение сверху справа",
duration: 3000,
gravity: "top", // 'top' или 'bottom'
position: "right" // 'left', 'center', 'right'
}).showToast();
top или bottom).left, center, right).Для точного позиционирования можно использовать offset:
Toastify({
text: "Сдвинутое уведомление",
duration: 3000,
gravity: "top",
position: "right",
offset: { x: 50, y: 20 } // смещение по горизонтали и вертикали
}).showToast();
Для кастомизации внешнего вида доступен параметр style:
Toastify({
text: "Красное предупреждение",
duration: 3000,
style: {
background: "linear-gradient(to right, #ff0000, #ff5555)",
color: "#ffffff",
fontWeight: "bold",
borderRadius: "8px"
}
}).showToast();
Можно комбинировать с CSS-классами через className:
Toastify({
text: "Классное предупреждение",
duration: 3000,
className: "my-toast"
}).showToast();
И в CSS:
.my-toast {
background-color: #ffcc00;
color: #333;
font-size: 16px;
}
Toastify позволяет превращать уведомление в интерактивное. Например, добавить переход по ссылке:
Toastify({
text: "Перейти на сайт",
duration: 5000,
destination: "https://example.com",
newWindow: true
}).showToast();
Параметры:
Для произвольного действия можно использовать onClick:
Toastify({
text: "Нажми меня",
duration: 4000,
close: true,
onClick: function() {
alert("Действие выполнено!");
}
}).showToast();
По умолчанию уведомления исчезают через время, заданное в duration. Если нужно добавить ручное закрытие, используется параметр close:
Toastify({
text: "Предупреждение с кнопкой закрытия",
duration: 0,
close: true
}).showToast();
Toastify поддерживает отображение нескольких сообщений одновременно. Новые уведомления появляются поверх предыдущих и автоматически сдвигают их вниз или вверх в зависимости от gravity. Можно управлять интервалом через задержку:
setTimeout(() => {
Toastify({ text: "Второе предупреждение", duration: 3000 }).showToast();
}, 1000);
setTimeout(() => {
Toastify({ text: "Третье предупреждение", duration: 3000 }).showToast();
}, 2000);
По умолчанию Toastify использует плавное появление и исчезновение. Можно изменить их через CSS, например, для слайд-ин слева:
.toastify {
transform: translateX(-100%);
transition: transform 0.5s ease, opacity 0.5s ease;
}
.toastify.toastify-show {
transform: translateX(0);
opacity: 1;
}
Для динамических проектов анимации помогают подчеркнуть важность предупреждений.
Toastify легко интегрируется в светлые и тёмные темы. Цвета можно задавать динамически через CSS-переменные или JS:
Toastify({
text: "Тёмная тема",
duration: 3000,
style: {
background: getComputedStyle(document.documentElement).getPropertyValue('--toast-bg'),
color: getComputedStyle(document.documentElement).getPropertyValue('--toast-color')
}
}).showToast();
Это позволяет поддерживать единый дизайн в приложении без жесткой привязки к конкретным цветам.
Toastify легко внедряется в SPA, React, Vue и другие фреймворки. В React, например, уведомление можно вызывать через обработчики событий:
const handleClick = () => {
Toastify({
text: "Предупреждение в React",
duration: 3000
}).showToast();
};
Такой подход позволяет использовать Toastify как универсальный механизм для всех предупреждений в приложении.