Урок 14. Справочник: transition, transform, animate

📁 Раздел: Состояния и темы ⏱️ Время изучения: ~45 мин 🎯 Сложность: Средняя

⚡ Кратко

transition + duration-* + ease-*, движение — scale/rotate/translate/skew, готовые анимации — animate-*.

Переходы

КлассЧто анимирует
transitionтиповой набор: цвет, фон, границу, тень, трансформацию, фильтр
transition-colorsтолько цвета
transition-opacityпрозрачность
transition-transformтрансформации
transition-shadowтени
transition-allвсе свойства — использовать осторожно
transition-noneотключить
duration-75 … duration-1000длительность в мс
delay-75 … delay-1000задержка
ease-linear, ease-in, ease-out, ease-in-outкривая

Трансформации

КлассCSS
scale-95, scale-105масштаб
scale-x-150, scale-y-75масштаб по оси
rotate-45, -rotate-12поворот
translate-x-2, -translate-y-1сдвиг
skew-x-6, skew-y-3наклон
origin-center, origin-bottom-leftточка отсчёта
transform-gpuподсказка использовать видеокарту
perspective-normal, rotate-x-45трёхмерные трансформации
will-change-transformподготовить браузер к анимации

Анимации

КлассЭффект
animate-spinвращение 1с линейно, бесконечно
animate-pingрасходящаяся волна
animate-pulseплавное мигание прозрачностью
animate-bounceподпрыгивание
animate-noneотключить анимацию
animate-[имя]своя анимация из темы
/* src/index.css */
@import "tailwindcss";

@theme {
  --animate-fade-up: fade-up 0.25s ease-out;
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(0.5rem); }
  to   { opacity: 1; transform: translateY(0); }
}

Доступность и состояния

ВариантУсловие
motion-safe:пользователь не отключал анимации
motion-reduce:пользователь просил меньше движения
starting:начальные значения при появлении элемента
group-hover:, peer-checked:анимация по состоянию соседа или предка
data-[state=open]:анимация открытия компонента (урок 21)

Ориентиры по длительности

ЧтоДлительность
Смена цвета кнопки150 мс
Появление подсказки150–200 мс
Раскрытие меню200 мс
Модальное окно200–300 мс
Боковая панель300 мс
Что угодно дольше 400 мспочти всегда ошибка