Tailwind CSS: как разработать продвинутую пользовательскую анимацию

Введение

Анимация стала важным аспектом веб-дизайна и позволяет разработчикам создавать увлекательный и интерактивный пользовательский опыт.

Tailwind CSS, популярный фреймворк CSS, основанный на утилитах, предоставляет мощный набор инструментов, которые можно использовать для создания потрясающей анимации без особых усилий.

Приглашаем вас в захватывающий мир продвинутой анимации, сгенерированной с помощью Tailwind CSS. Откройте для себя приемы, которые поднимут ваши веб-проекты на новый уровень.

Мощный потенциал переходов и трансформаций

Tailwind CSS предоставляет ряд полезных классов, использующих переходы и трансформации CSS. Эти свойства позволяют создавать плавные анимации и потрясающие трансформации с минимальными усилиями.

Помимо переходов и трансформаций, Tailwind CSS поддерживает анимацию ключевых кадров. Ключевые кадры позволяют создавать пользовательские анимации, задавая ряд изменений стиля в разные моменты времени.

Исследуем детально различные типы анимации.


1. Анимация градиентов текста

Для анимации градиентов текста задействуется класс animate-pulse. Этот класс применяет пульсирующую анимацию к элементу, придавая ему утонченный, но привлекательный вид.

Пример:

<div class="ms-52 my-10 text-5xl font-extrabold">
<span class="animate-pulse bg-gradient-to-r from-pink-500 via-green-500 to-violet-500 bg-clip-text text-transparent"> Tailwind CSS Animation </span>
</div>
Анимированный градиентный текст

В этом примере элемент <span> содержит текст “Gradient Text” (“Градиентный текст”). Для создания градиентного эффекта используется класс text-transparent, чтобы сделать текст прозрачным. Затем применяем класс bg-gradient-to-r, чтобы задать горизонтальный градиент от пурпурного к синему.

Назначение: эта анимация используется для того, чтобы выделить детали и сфокусировать на них внимание.

Ознакомьтесь с демонстрацией анимации в реальном времени. Вы можете протестировать ее в соответствии со своими требованиями.


2. Анимация области заполнителя

В этом примере создается область контента заполнителя с помощью Tailwind CSS для ситуаций, когда нет подключения к интернету или идет загрузка данных.

Пример:

<div class="mx-auto mt-10 w-full max-w-sm rounded-md border border-gray-300 p-4">
<div class="animate-pulse space-x-4">
<div class="grid">
<div class="flex">
<div class="w-10 rounded-full bg-slate-200"></div>
<div class="ms-4 w-full space-y-6">
<div class="h-2 rounded bg-slate-200"></div>
<div class="space-y-3">
<div class="grid grid-cols-3 gap-4">
<div class="col-span-2 h-2 rounded bg-slate-200"></div>
<div class="col-span-1 h-2 rounded bg-slate-200"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
</div>
</div>
<div class="mt-5 space-y-6 py-1">
<div class="h-2 rounded bg-slate-200"></div>
<div class="space-y-3">
<div class="grid grid-cols-3 gap-4">
<div class="col-span-2 h-2 rounded bg-slate-200"></div>
<div class="col-span-1 h-2 rounded bg-slate-200"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
<div class="h-2 rounded bg-slate-200"></div>
</div>
</div>
</div>
</div>
Анимация области заполнителя

В приведенном выше примере используем вложенный <div> с классом flex для центрирования загрузочного текста по горизонтали и вертикали. Классы justify-center и items-center обеспечивают центрирование контента в родительском контейнере.

Благодаря классу animate-pulse, вся область заполнителя будет демонстрировать пульсирующую анимацию, создавая иллюзию активности и указывая пользователю на то, что контент загружается.

Назначение: эта анимация используется для того, чтобы показать: запрашиваемые данные загружаются.

Ознакомьтесь с демонстрацией анимации в реальном времени.


3. Бесконечно вращающийся шар

Этот код создает круговой элемент с рамкой и анимированным эффектом вращения. Внутри круглого элемента находится меньший по размеру круглый элемент, расположенный в правом верхнем углу.

Пример:

<div class="my-40 flex">
<div class="relative mx-auto h-28 w-28 animate-spin rounded-full border-2 p-4">
<span class="absolute right-5 top-2 flex h-3 w-3">
<span class="bg-white-500 relative inline-flex h-3 w-3 rounded-full bg-gray-500"> </span>
</span>
</div>
</div>
Бесконечно вращающийся шар

Приведенный выше фрагмент кода содержит элемент div с классами my-40 и flex. Внутри этого div с помощью класса animate-spin создается круговой элемент с эффектом бесконечно вращающейся анимации. Можно применить его, чтобы показать обработку загружающихся данных или процесс загрузки изображений и файлов.

Назначение: используя эту анимацию, можно показать обработку загружающихся данных или изображений, загрузку файла.

Ознакомьтесь с демонстрацией анимации в реальном времени.


4. Два подвижных круга

Этот код создает анимацию с двумя кругами. Она состоит из большей круглой формы, которая подпрыгивает, и меньшей круглой формы, вращающейся под ней. Анимационный эффект создает иллюзию загрузки или активности.

Пример:

<div class="my-40 flex">
<div class="relative mx-auto h-10 w-10 animate-bounce">
<div class="mx-auto h-16 w-16 animate-pulse rounded-full bg-gray-400"></div>
<span class="absolute flex h-5 w-5 animate-spin">
<span class="h-4 w-4 rounded-full bg-gray-400"> </span>
</span>
</div>
</div>
Два подвижных круга

В этой анимации есть div с классами для относительного позиционирования, центрирования, размера и эффекта анимации отскока. Внутри второго div находится еще один элемент div с классами для центрирования, изменения размера, эффекта анимации отскока и серого цвета фона.

Класс animate-bounce применен к родительскому div, поэтому все внутренние элементы по умолчанию обладают эффектом отскока. Для пульсации мы применили по отношению к большому кругу эффект animat-pulse.

Назначение: эту анимацию можно использовать для демонстрации активности пользователя или эффекта загрузки данных.

Ознакомьтесь с демонстрацией анимации в реальном времени.


5. Вращающийся пунктирный квадрат

Этот анимационный код создает квадрат с закругленными углами, который вращается, обозначая активность или загрузку. Квадрат имеет пунктирный серый контур для дополнительного визуального эффекта при использовании animate-spin.

Пример:

<div class="my-40 flex">
<div class="mx-auto h-20 w-20 animate-spin rounded-3xl p-6 outline-dotted outline-2 outline-gray-500"></div>
</div>
Вращающийся пунктирный квадрат

В приведенном выше фрагменте кода класс animate-spin применяет эффект крутящейся анимации к внутреннему div. Класс rounded-3xl закругляет углы внутреннего div для создания более округлой формы. Классы outline-dotted, outline-2 и outline-gray-500 наносят на внутренний div пунктирный серый контур шириной 2 единицы.

Назначение: эту анимацию можно использовать в различных местах, например для выделения кадров, загрузки данных, обработки файлов и изображений и т. д.

Ознакомьтесь с демонстрацией анимации в реальном времени.


6. Подпрыгивающие круги

Этот код создает эффект анимации загрузки с двумя подпрыгивающими элементами. Наружный элемент подпрыгивает, а внутри него будет вложенный элемент, который также подпрыгивает.

Кроме того, имеется меньший элемент, похожий на точку, который движется и подпрыгивает вместе с другими элементами.

Пример:

<div class="my-40 flex">
<div class="relative mx-auto h-10 w-10">
<div class="relative mx-auto ms-5 h-24 w-24 animate-bounce rounded-full border-2">
<div class="absolute bottom-0 right-10">
<div class="relative h-40 animate-bounce">
<div class="absolute bottom-0 right-0 h-2 w-2 rounded-full bg-black"></div>
</div>
</div>
</div>
</div>
</div>
Подпрыгивающие круги

Наружный div с классом animate-bounce создаст эффект прыгающей анимации.

Внутри этого div находится вложенный div с классом animate-bounce, который также создает эффект подпрыгивания. Внутри второго вложенного div определяем черный цвет фона (bg-black) и небольшой размер h-2 и w-2. Это создаст маленькую черную точку или индикатор, который также будет участвовать в анимации подпрыгивания.

Назначение: эту анимацию можно использовать, чтобы показать обработку и загрузку файла или изображения.

Ознакомьтесь с демонстрацией анимации в реальном времени.


7. Направляющая стрелка

Этот код создаст эффект движущейся анимации для элемента SVG. SVG представляет собой зеленую стрелку, которую анимация заставит перемещаться по горизонтали взад и вперед, изменяя ее положение по оси X.

Пример:

<div class="my-40 flex">
<div class="relative mx-auto mt-5 animate-[propel_5s_infinite]">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="green" class="h-16 w-16">
<path d="M3.478 2.405a.75.75 0 00-.926.94l2.432 7.905H13.5a.75.75 0 010 1.5H4.984l-2.432 7.905a.75.75 0 00.926.94 60.519 60.519 0 0018.445-8.986.75.75 0 000-1.218A60.517 60.517 0 003.478 2.405z" />
</svg>
</div>
</div>

Теперь добавим ключевые кадры в файл tailwind.config.js для анимации объекта. Вы можете провести необходимые изменения в соответствии со своими требованиями.

module.exports = {
content: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {
keyframes: {
propel: {
'0%': { transform: 'translateX(0)' },
'20%': { transform: 'translateX(25%)' },
'40%': { transform: 'translateX(-25%)' },
'60%': { transform: 'translateX(25%)' },
'100%': { transform: 'translateX(-25%)' },
},
},
},
},
plugins: [],
}
Анимация, направляющая стрелку

Наружный div имеет классы my-40 и flex, которые обеспечивают вертикальный интервал и позволяют использовать макет flexbox. Внутри второго div находится элемент svg с атрибутами для пространства имен XML, viewBox и class. Классы h-16 и w-16 задают высоту и ширину SVG, а атрибут fill="green" устанавливает зеленый цвет заливки SVG.

Назначение: эту анимацию можно использовать, чтобы направлять, фокусировать внимание и выделять области.

Ознакомьтесь с демонстрацией анимации в реальном времени.


8. Вращающиеся прямоугольники

Этот анимационный код создает контейнер с примененным к нему эффектом вращающейся анимации, заставляя его смещаться или вращаться вперед-назад непрерывно.

Внутри контейнера находится элемент меньшего размера, к которому также применен эффект анимации переворачивания, заставляющий его непрерывно вращаться по вертикали вперед-назад.

Пример:

<div class="my-40 flex">
<div class="relative mx-auto h-28 w-28 animate-[displace_5s_infinite] border border-red-200">
<div class="h-14 animate-[flip_5s_infinite] bg-red-100"></div>
</div>
</div>

Теперь добавим ключевые кадры в файл tailwind.config.js для анимации объекта.

module.exports = {
content: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
theme: {
extend: {
keyframes: {
displace: {
'0%': { transform: 'rotate(0deg)' },
'20%': { transform: 'rotate(-90deg)' },
'40%': { transform: 'rotate(0deg)' },
'60%': { transform: 'rotate(0deg)' },
'80%': { transform: 'rotate(90deg)' },
'100%': { transform: 'rotate(0deg)' },
},
},
},
},
plugins: [],
}
Вращающиеся прямоугольники

Класс animate-[displace_5s_infinite] применяет анимационный эффект “смещение” к этому элементу, заставляя его непрерывно вращаться взад и вперед.

Внутри внутреннего div классы h-14, animate-[flip_5s_infinite] и bg-red-100 представляют содержимое внутри контейнера высотой 14 единиц, с красным цветом фона и примененным к нему анимационным эффектом “переворот”, заставляющим его непрерывно вращаться по вертикали взад и вперед.

Назначение: эту анимацию можно использовать для загрузки данных и файлов, обработки изображений или их выгрузки.

Ознакомьтесь с демонстрацией анимации в реальном времени.


Объединение анимации с другими возможностями Tailwind (темный режим)

Возможности анимации в Tailwind CSS могут быть легко интегрированы с другими функциями, предоставляемыми фреймворком. Например, можно сочетать анимацию с классами отзывчивого дизайна для создания адаптивного и привлекательного пользовательского опыта на различных устройствах.

Также можно использовать функцию темного режима Tailwind CSS для применения различных анимаций в зависимости от предпочитаемой пользователем цветовой схемы. Используя динамические классы и варианты утилит, можно создавать сложные и интерактивные анимации, способствующие оптимизации веб-дизайна.

Ознакомьтесь с демонстрацией темного режима.

Заключение

Приведенные выше анимации показывают, какой многогранности и креативности можно достичь в веб-дизайне с помощью CSS и фреймворка Tailwind CSS. Эти примеры демонстрируют различные эффекты анимации, такие как вращение, подпрыгивание, пульсация, переворачивание и покачивание.

Используя возможности ключевых кадров CSS и вспомогательных классов Tailwind CSS, эти анимации привносят в блог или сайт динамичные и привлекательные элементы. Будь то вращающиеся иконки, прыгающие фигуры или покачивающийся текст, эти анимации могут привлечь внимание пользователей и улучшить визуальное восприятие.

Кроме того, возможность настройки и определения ключевых кадров в файле конфигурации Tailwind CSS позволяет точно настроить и расширить возможности анимации. Такая гибкость предоставляет разработчикам возможность создавать уникальные и привлекающие внимание эффекты, соответствующие конкретным требованиям дизайна.

В целом, включение эффектов анимации в блог помогает создать запоминающийся и восхитительный пользовательский опыт. Однако важно использовать анимацию разумно и учитывать ее влияние на производительность и доступность, чтобы обеспечить беспрепятственный просмотр для всех пользователей.

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Dharti R: Tailwind CSS — How to Design Advanced Custom Animations

Предыдущая статьяКак усилить электронные таблицы Google возможностями ChatGPT
Следующая статьяЗнакомство с фабричным методом