SweetAlert предоставляет широкие возможности для стилизации всплывающих окон с помощью CSS. Работа с классами позволяет настраивать внешний вид и поведение модальных окон в соответствии с требованиями проекта, а также интегрировать их в уже существующие дизайны веб-приложений.
Каждое окно SweetAlert автоматически получает несколько встроенных CSS-классов, которые можно использовать для стилизации элементов. Эти классы создаются динамически в процессе рендеринга модального окна, и включают в себя:
.swal2-popup — основной контейнер окна..swal2-title — заголовок окна..swal2-content — тело окна, где отображается текст или
форма..swal2-footer — футер, который может содержать кнопки
или другую информацию..swal2-confirm и .swal2-cancel — кнопки
подтверждения и отмены.Эти классы позволяют настраивать основные визуальные компоненты
SweetAlert. Например, чтобы изменить цвет фона модального окна, можно
использовать CSS-селектор .swal2-popup:
.swal2-popup {
background-color: #f0f0f0;
}
SweetAlert также поддерживает добавление собственных классов через
параметры конфигурации. Это позволяет более гибко настраивать внешний
вид окон. Кастомные классы можно добавить с помощью параметра
customClass, который принимает объект с ключами для
различных частей модального окна:
Swal.fire({
title: 'Пример',
text: 'Кастомизация через CSS-классы',
customClass: {
popup: 'my-popup',
title: 'my-title',
content: 'my-content',
confirmButton: 'my-confirm-button',
cancelButton: 'my-cancel-button'
}
});
В этом примере создаются пользовательские классы для каждого компонента окна. В результате можно применить к ним индивидуальные стили:
.my-popup {
border-radius: 15px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}
.my-title {
color: #333;
font-size: 1.5rem;
}
.my-content {
font-size: 1rem;
color: #666;
}
.my-confirm-button {
background-color: #4caf50;
border: none;
padding: 10px 20px;
border-radius: 5px;
}
.my-cancel-button {
background-color: #f44336;
border: none;
padding: 10px 20px;
border-radius: 5px;
}
Добавление кастомных классов через параметр customClass
упрощает интеграцию SweetAlert в существующий дизайн и дает возможность
более точно настроить внешний вид окон.
SweetAlert позволяет добавлять анимации и переходы, используя CSS. В стандартной конфигурации окна уже содержат базовые анимации появления и исчезновения, но для достижения уникального эффекта можно создать свои собственные анимации с использованием ключевых кадров (keyframes).
Пример создания анимации появления окна с плавным увеличением:
@keyframes popup-appear {
0% {
transform: scale(0.5);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 1;
}
}
.swal2-popup {
animation: popup-appear 0.5s ease-in-out;
}
В данном примере создается анимация popup-appear,
которая плавно увеличивает окно с момента появления, начиная с масштаба
0.5 и заканчивая 1. Это добавляет дополнительную динамику и визуальную
привлекательность.
SweetAlert автоматически анимирует кнопки подтверждения и отмены,
однако можно добавить кастомные анимации для этих элементов. Используя
@keyframes или CSS-переходы, можно задать, например, эффект
изменения цвета или движения при наведении курсора.
Пример анимации кнопки подтверждения при наведении:
.my-confirm-button:hover {
animation: button-hover 0.3s ease-out;
}
@keyframes button-hover {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
Этот код создает эффект «пульсации» кнопки, когда пользователь наводит на неё курсор. Такое поведение привлекает внимание и делает взаимодействие с элементами более интуитивно понятным.
Библиотека SweetAlert имеет несколько встроенных стилей для различных
типов окон, таких как ошибки, предупреждения, успехи и т. д. Эти стили
также могут быть изменены с помощью CSS-классов. Например, для успешных
уведомлений используется класс .swal2-success, а для ошибок
— .swal2-error.
Можно легко изменить стиль окна, например, для уведомлений об успехе:
.swal2-success {
background-color: #28a745;
border: 2px solid #155724;
}
.swal2-success .swal2-title {
color: white;
}
Этот код изменяет фон и рамку для уведомлений об успехе, а также делает заголовок белым.
SweetAlert поддерживает динамическую стилизацию в зависимости от
состояния окна. Например, при закрытии окна или изменении его
содержимого, можно изменять стиль элементов. Для этого можно
использовать такие CSS-селекторы, как .swal2-shown,
.swal2-close или .swal2-loading.
Пример изменения стиля для окна в состоянии загрузки:
.swal2-loading {
background-color: rgba(0, 0, 0, 0.5);
}
.swal2-close {
background-color: #ff6347;
border-radius: 50%;
padding: 10px;
}
Здесь .swal2-loading добавляет полупрозрачный черный фон
к окну, когда оно находится в процессе загрузки, а
.swal2-close стилизует кнопку закрытия окна.
Для того чтобы SweetAlert лучше вписывался в общий стиль приложения, можно использовать препроцессоры CSS, такие как SASS или LESS. Это позволяет создавать более сложные и гибкие стили, а также использовать переменные для управления цветами, размерами и другими параметрами стилей.
Пример использования переменной для цвета фона:
$swal-background-color: #f8f9fa;
.my-popup {
background-color: $swal-background-color;
}
Такой подход упрощает изменение дизайна в будущем и облегчает поддержку кода.
Работа с CSS-классами в SweetAlert открывает широкие возможности для кастомизации. Использование встроенных классов, кастомных стилей и анимаций позволяет создавать уникальные модальные окна, которые органично вписываются в дизайн веб-приложений. Настройка и расширение возможностей библиотеки с помощью CSS даёт полную свободу в изменении внешнего вида и поведения окон, обеспечивая при этом удобство для конечного пользователя.