Кнопка со сложной анимацией при наведении
В этой демонстрации вы узнаете, как создать интерактивную кнопку с эффектом иллюзии подъёма и вращения при наведении.
Начнём с базовой разметки страницы. Разметим кнопку с помощью тега <a> и назначим ей класс button. Так как внутри будет только иконка, добавим описание с помощью aria-label.
Вставим внутрь кнопки SVG-иконку в виде встроенного кода и присвоим тегу svg класс button__icon.
Немного стилизуем страницу, добавив фон с градиентом и настроив основные параметры отображения.
Определим размеры кнопки и центрируем её с помощью автоматических внешних отступов.
Установим белый цвет текста для кнопки, что перекрасит встроенный SVG, так как его заливка равна currentColor. Добавим градиентный фон.
Используем флексы для центрирования SVG внутри кнопки.
Скруглим кнопку с помощью border-radius: 50%; и добавим ей тень.
Зададим размеры для SVG внутри кнопки. После этого стилизация завершена, можно переходить к созданию эффекта при наведении.
При наведении увеличим смещение и размытие тени, так мы сделаем её более заметной. Это создаст эффект «поднятия над страницей». Попробуйте навести курсор на кнопку.
Также при наведении повернём кнопку на 90 градусов и немного её увеличим. Наведите курсор ещё раз.
Добавим плавный переход для свойств transform и box-shadow для более мягкого эффекта. Попробуйте навести курсор ещё раз.
Для полной иллюзии поворота добавим эффект вращения на 90 градусов в противоположную сторону для .button__icon.
В заключение добавим плавный переход для иконки. Теперь кнопка и иконка плавно вращаются в противоположные стороны. А благодаря анимации тени создаётся впечатление, что кнопка поднимается над поверхностью.