Перейти к содержанию
Innovialabs

Анимация в интерфейсе: принципы, длительность и easing

Продвинутое3 мин

Коротко

Анимация в интерфейсе должна объяснять, что произошло, а не украшать: короткие длительности, ease-out для появления, ease-in для исчезновения, одна точка внимания за раз. Обязательно уважайте настройку уменьшения движения и передавайте разработчикам анимацию как токены с точными параметрами.

Короткий ответ

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

Зачем вообще движение

  • Обратная связь: нажатие, загрузка, успешное сохранение.
  • Ориентация: переход между экранами показывает, где пользователь находится в иерархии.
  • Связь элементов: карточка раскрывается в детальную страницу — ясно, что это тот же объект.
  • Внимание: аккуратно привлечь взгляд к новому уведомлению или ошибке.
  • Характер бренда — только поверх перечисленного, не вместо.

Длительность

Точных универсальных значений нет, но есть рабочие ориентиры:

Тип движенияОриентир
Микровзаимодействия: hover, нажатие, переключательоколо 100–200 мс
Появление небольших элементов: тултип, менюоколо 150–250 мс
Крупные переходы: модальное окно, смена экранаоколо 250–400 мс
Сложные сцены, онбордингдольше, но без блокировки интерфейса

Правила подбора:

  • чем больше расстояние и площадь элемента, тем длиннее анимация;
  • исчезновение обычно чуть быстрее появления;
  • на мобильных экранах движения короче, чем на больших мониторах;
  • частые действия должны анимироваться быстрее всего — их видят сотни раз.

Easing

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

  • ease-out (замедление в конце) — для появления: элемент быстро входит и мягко останавливается.
  • ease-in (ускорение) — для ухода с экрана: элемент разгоняется и исчезает.
  • ease-in-out — для перемещения внутри экрана из одной точки в другую.
  • spring — пружинная физика для жестов и перетаскивания, когда важна инерция.

В коде кривые задаются через cubic-bezier(). Заведите 3–4 именованные кривые в дизайн-системе вместо случайных значений в каждом макете.

Хореография

Когда двигается несколько элементов, нужен порядок:

  • одна точка внимания за раз — главное движение, остальное поддерживает;
  • stagger — небольшая задержка между элементами списка показывает их последовательность, но общая длительность не должна расти бесконечно;
  • единое направление — элементы приходят и уходят логично относительно навигации;
  • shared element — общий элемент «перетекает» между экранами и связывает их.

Reduced motion

Часть пользователей включает в системе настройку уменьшения движения: у кого-то анимация вызывает дискомфорт или головокружение. Уважайте её: заменяйте сдвиги и масштабирование на плавную смену прозрачности, отключайте параллакс и автопроигрывание.

:root {
  --motion-fast: 150ms;
  --motion-base: 250ms;
  --ease-out: cubic-bezier(0.2, 0, 0, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
}

.panel {
  transition: transform var(--motion-base) var(--ease-out),
              opacity var(--motion-base) var(--ease-out);
}

@media (prefers-reduced-motion: reduce) {
  .panel { transition: opacity var(--motion-fast) linear; }
}

Как передать анимацию разработчикам

Видео «как должно быть» недостаточно. Для каждой анимации укажите:

  1. Триггер — что её запускает.
  2. Свойства — что меняется и от какого значения к какому (позиция, масштаб, прозрачность).
  3. Длительность и задержку — в миллисекундах или токеном.
  4. Easing — именованную кривую или cubic-bezier.
  5. Прерывание — что происходит, если пользователь повторно нажал во время анимации.
  6. Вариант для reduced motion.

Прототип в Figma или видео помогает передать ощущение, а таблица параметров — точность. Анимируйте по возможности transform и opacity: их браузер обрабатывает эффективнее, чем изменение размеров и отступов.

Частые вопросы

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

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

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.