Понимание структуры библиотеки Toastify — это
легковесная библиотека для отображения уведомлений в веб-приложениях на
JavaScript. В основе её работы лежит один универсальный класс
Toastify, который управляет созданием, отображением и
удалением уведомлений. Для успешной кастомизации необходимо понимать
ключевые элементы исходного кода:
showToast(),
hideToast()) – контролируют добавление уведомления в DOM и
его плавное исчезновение.style или
через внешние CSS-классы.onClick,
onClose, onOpen обеспечивают гибкость
взаимодействия с уведомлениями.Изучение этих частей позволяет не только изменять поведение уведомлений, но и создавать собственные расширения, не затрагивая базовую логику.
Форк — это создание собственной версии библиотеки с модификациями. Основные шаги при форке:
Клонирование репозитория Получение исходного кода через Git позволяет работать с полной версией библиотеки. Обычно используется команда:
git clone https://github.com/apvarun/toastify-js.gitИзменение настроек по умолчанию В исходном коде
определён объект defaults, который содержит базовые
параметры уведомлений:
const defaults = {
text: "",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "#333",
stopOnFocus: true,
};
Их можно менять для всего проекта или создавать новые предустановки.
Добавление новых методов Например, метод для показа уведомления с анимацией по кривой Безье:
Toastify.prototype.showBezierToast = function(options) {
this.options = { ...this.options, ...options };
this.element.style.transitionTimingFunction = 'cubic-bezier(0.68, -0.55, 0.27, 1.55)';
this.showToast();
};Интеграция с другими библиотеками Форки
позволяют подключать Toastify к Vue, React или Angular без потери
нативной функциональности. Для этого создаются адаптеры, которые
вызывают showToast() через хуки компонентов.
Стилизация
style — объект CSS для прямого применения к
DOM-элементу уведомления.className — позволяет подключать внешние классы и
использовать CSS-переменные, например:Toastify({
text: "Уведомление с кастомным стилем",
className: "custom-toast",
duration: 5000
}).showToast();
В CSS:
.custom-toast {
background-color: #0066cc;
border-radius: 8px;
font-weight: bold;
}
Позиция и анимация
gravity — определяет вертикальное расположение
(top или bottom).position — горизонтальное расположение
(left, center, right).stopOnFocus — останавливает исчезновение уведомления
при наведении мыши.showToast() и добавить keyframes для плавного
появления и исчезновения.Расширение функционала
node:Toastify({
node: (() => {
const div = document.createElement("div");
div.innerHTML = "Нажми меня";
div.addEventListener("click", () => alert("Кнопка нажата"));
return div;
})()
}).showToast();
Модули ES6 Разделение исходного кода на модули позволяет подключать только необходимые функции, уменьшая размер сборки.
import Toastify from './toastify.js';Тестирование изменений Для форков критически важно проверять совместимость с браузерами и существующими проектами. Используются простые HTML-страницы с набором уведомлений разных типов.
Документация и комментарии Комментарии в исходном коде помогают при расширении функционала и служат ориентиром для командной разработки.
Использование форков и кастомизации исходного кода позволяет полностью адаптировать Toastify под уникальные требования проекта, сохраняя лёгкость и простоту библиотеки, но расширяя возможности до уровня сложных корпоративных интерфейсов.