SweetAlert предоставляет пользователям набор красивых и простых в использовании модальных окон, однако иногда стандартные стили не соответствуют требованиям дизайна приложения. В таких случаях можно легко изменить внешний вид модальных окон, переопределяя стандартные стили с помощью CSS.
По умолчанию, SweetAlert использует собственные встроенные стили для создания визуальных эффектов и анимаций. Эти стили охватывают различные аспекты отображения модальных окон, включая:
Однако, если проект требует кастомизации, разработчик может настроить эти элементы, изменяя их с помощью стилей, которые будут наложены на базовые классы SweetAlert.
Чтобы изменить внешний вид модальных окон SweetAlert, необходимо использовать собственный CSS, переопределяя классы, присвоенные элементам модального окна. Структура этих классов состоит из нескольких ключевых компонентов:
Пример базового CSS для переопределения стилей:
/* Переопределение фона контейнера */
.swal2-container {
background-color: #f4f4f4;
}
/* Изменение стилей заголовка */
.swal2-title {
font-size: 24px;
font-weight: bold;
color: #333;
}
/* Настройка стилей тела окна */
.swal2-html-container {
font-size: 16px;
color: #555;
padding: 20px;
}
/* Кастомизация кнопок */
.swal2-button {
background-color: #007bff;
color: #fff;
border-radius: 5px;
padding: 10px 20px;
border: none;
}
.swal2-button:hover {
background-color: #0056b3;
}
SweetAlert использует анимации для появления и исчезновения модальных
окон. Эти анимации можно также кастомизировать, переопределяя
стандартные стили для классов анимации, таких как
swal2-show, swal2-hide, и
swal2-noanimation.
Пример для изменения анимации появления:
/* Переопределение анимации появления */
.swal2-show {
animation: fadeIn 0.5s ease-in-out;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: scale(0.8);
}
to {
opacity: 1;
transform: scale(1);
}
}
В этом примере создается эффект плавного появления окна с небольшим увеличением масштаба.
SweetAlert позволяет добавить различные иконки в модальные окна (например, иконки успеха, ошибки или информации). Для изменения иконок можно переопределить стандартные классы, добавив свои собственные изображения.
/* Кастомная иконка для окна успеха */
.swal2-icon.swal2-success {
background-image: url('path/to/custom-success-icon.png');
background-size: contain;
background-repeat: no-repeat;
}
/* Кастомная иконка для окна ошибки */
.swal2-icon.swal2-error {
background-image: url('path/to/custom-error-icon.png');
background-size: contain;
background-repeat: no-repeat;
}
Этот подход позволяет легко заменить стандартные иконки SweetAlert на собственные, соответствующие дизайнерским требованиям проекта.
Кроме использования стандартного CSS, SweetAlert позволяет внедрять
стили напрямую через JavaScript при вызове модальных окон. Это
достигается с помощью опции customClass, которая позволяет
указать пользовательские классы для различных элементов модального
окна.
Пример использования customClass для добавления
кастомных стилей:
Swal.fire({
title: 'Успех',
text: 'Данные успешно сохранены',
icon: 'success',
customClass: {
container: 'my-custom-container',
title: 'my-custom-title',
content: 'my-custom-content',
confirmButton: 'my-custom-button'
}
});
Затем можно создать соответствующие стили в CSS:
.my-custom-container {
background-color: #e0f7fa;
border-radius: 10px;
}
.my-custom-title {
color: #00796b;
}
.my-custom-content {
font-size: 18px;
}
.my-custom-button {
background-color: #00796b;
color: #fff;
border-radius: 5px;
}
Этот подход дает полный контроль над стилями модального окна непосредственно в коде, не изменяя глобальные CSS-правила.
SweetAlert автоматически поддерживает светлую и темную тему,
используя swal2-dark класс, который можно добавить к
контейнеру. В случае использования темной темы можно переопределить
стили для элементов, чтобы они соответствовали темному режиму.
/* Стили для темной темы */
.swal2-dark .swal2-container {
background-color: #333;
}
.swal2-dark .swal2-title {
color: #fff;
}
.swal2-dark .swal2-button {
background-color: #444;
color: #fff;
}
.swal2-dark .swal2-button:hover {
background-color: #666;
}
Этот подход позволяет автоматически адаптировать модальные окна под темную тему, что особенно полезно для приложений с переключением между светлой и темной темой.
Для некоторых приложений может быть полезно глобально переопределить стили для всех модальных окон, применяя более универсальные CSS-правила, которые будут влиять на все всплывающие окна без необходимости изменения каждого окна отдельно.
/* Глобальные стили для всех модальных окон */
.swal2-container {
max-width: 100%;
width: 90%;
border-radius: 12px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.swal2-button {
font-size: 16px;
padding: 12px 24px;
border-radius: 8px;
transition: background-color 0.3s ease;
}
.swal2-button:hover {
background-color: #5cb85c;
}
Такие стили могут быть полезны для унификации внешнего вида модальных окон по всему приложению.
Переопределение стандартных стилей в SweetAlert предоставляет мощный
инструмент для создания уникальных и кастомизированных модальных окон,
которые полностью соответствуют дизайну приложения. С помощью CSS и
опций, таких как customClass, можно гибко настраивать
внешний вид окон, изменяя цвета, шрифты, размеры и даже анимации.
Учитывая простоту и мощь этого инструмента, разработчики могут легко
интегрировать модальные окна в любые проекты, не теряя в визуальной
идентичности и пользовательском опыте.