Toastify — это лёгкая библиотека для отображения уведомлений в браузере. Она позволяет создавать простые и настраиваемые тосты (toast), которые появляются поверх контента страницы и автоматически исчезают через заданное время. Уведомления можно позиционировать, стилизовать и управлять их поведением без сложной структуры HTML.
Подключение Toastify происходит через CDN или через npm:
<!-- Через CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
# Через npm
npm install toastify-js
После подключения библиотека готова к использованию через глобальный
объект Toastify.
Для создания простого уведомления используется следующий синтаксис:
Toastify({
text: "Это нейтральное уведомление",
duration: 3000, // время отображения в миллисекундах
}).showToast();
Ключевые параметры:
text — текст уведомления.duration — время показа тоста (по умолчанию 3000 мс).
Если указать -1, уведомление останется до закрытия
вручную.close — добавление кнопки закрытия (true
или false).Toastify позволяет размещать уведомления в разных углах окна браузера
с помощью свойства gravity и position:
Toastify({
text: "Тост в правом верхнем углу",
duration: 4000,
gravity: "top", // 'top' или 'bottom'
position: "right" // 'left', 'center', 'right'
}).showToast();
Особенности:
gravity определяет вертикальное положение
(верх/низ).position управляет горизонтальным выравниванием.top + center для
центрирования уведомления сверху.Нейтральные уведомления обычно имеют простой дизайн без ярких цветов.
Настройка внешнего вида выполняется через CSS или встроенные свойства
style:
Toastify({
text: "Нейтральный тост с индивидуальной стилизацией",
duration: 3000,
style: {
background: "#333", // темный фон
color: "#fff", // белый текст
fontSize: "14px",
borderRadius: "4px"
}
}).showToast();
Советы по стилю:
padding,
margin, box-shadow.rgba, чтобы тост
был менее навязчивым.duration.close: true и отображение крестика.Toastify({
text: "Нажмите, чтобы закрыть",
duration: 5000,
close: true,
onClick: function() {
console.log("Тост был нажат");
}
}).showToast();
offset можно задать смещение по оси X и Y:Toastify({
text: "Тост с отступом",
duration: 3000,
gravity: "top",
position: "right",
offset: { x: 50, y: 20 } // смещение от верхнего правого угла
}).showToast();
Для последовательного отображения нескольких тостов можно использовать массивы и циклы:
const messages = [
"Первое нейтральное уведомление",
"Второе уведомление",
"Третье уведомление"
];
messages.forEach(msg => {
Toastify({ text: msg, duration: 2500 }).showToast();
});
Особенности:
Хотя нейтральные уведомления обычно текстовые, Toastify позволяет добавлять иконки через HTML:
Toastify({
node: (() => {
const div = document.createElement("div");
div.innerHTML = '<img src="icon.png" style="width:16px;margin-right:8px;"> Нейтральный тост';
return div;
})(),
duration: 4000
}).showToast();
node для передачи кастомного
DOM-элемента.className
можно подключать внешние CSS-классы:Toastify({
text: "Тост с кастомным классом",
className: "neutral-toast",
duration: 3000
}).showToast();
style.background можно использовать линейные градиенты или
URL:Toastify({
text: "Тост с градиентом",
duration: 3500,
style: { background: "linear-gradient(to right, #555, #888)" }
}).showToast();
position и offset.Эти подходы позволяют создавать гибкие и нейтральные уведомления, которые информируют пользователя, не вызывая сильных эмоций и не отвлекая от основного контента.