Искра
Анимация и 3D

Анимация интерфейса: CSS, GSAP, Lottie и Rive

Тема 408 мин чтения + 1,5 часа на заданиеРевизия 28 октября 2026

Ролик живёт отдельно от продукта, а анимация интерфейса живёт внутри него: кнопка, которая отзывается на нажатие, иконка, которая превращается из «меню» в «крестик», переход между экранами. Раньше дизайнер рисовал это в After Effects, а разработчик пересобирал по видео и получалось «почти так». Теперь путь короче: Figma Motion экспортирует код, агент пишет CSS и GSAP по моушн-гайду, Lottie и Rive собираются из описания. Твоя работа — выбрать формат, задать правила и проверить ощущение.

Четыре формата, в которых живёт движение

Формат Что это Где живёт Когда брать
CSS и View Transitions движение средствами браузера любой сайт и веб-приложение переходы, hover, появление, смена состояний без JS
GSAP и Motion JS-библиотеки с таймлайнами, пружинами, скроллом веб, React сложные последовательности, скролл-истории, морфинг SVG
Lottie (.json, .lottie) векторная анимация в файле, проигрывается плеером веб, iOS, Android, Figma иконки, иллюстрации, лоадеры, которые нужны на всех платформах одинаково
Rive (.riv) анимация со стейт-машиной, реагирует на данные и события веб, мобильные, игры персонажи, интерактивные иллюстрации, элементы, которые меняются от действий пользователя

Главный критерий выбора: кто будет проигрывать. Если анимация внутри веб-страницы и разработчик рядом, бери CSS или GSAP: это код, который агент пишет и правит. Если одна и та же иконка нужна в вебе, iOS и Android, бери Lottie. Если элемент должен реагировать на действия (наведение, ввод, данные), бери Rive или стейт-машину dotLottie.

Из Figma в код: Figma Motion

С лета 2026 в Figma есть таймлайн с ключевыми кадрами прямо на холсте. Анимацию можно экспортировать в CSS, JSON, React и motion.dev, в видео и GIF, а с осени и в Lottie. В Dev Mode разработчик видит тайминг, кривые и ключи. Агент через Figma MCP получает ту же информацию командой get_motion_context: список анимированных слоёв, keyframes и готовые фрагменты CSS (тема «ИИ внутри Figma»).

Интерфейс Figma: на холсте два варианта карточек «Tasks keep things organized», под холстом таймлайн с шкалой в миллисекундах и бегунком на 1765 мс, слева панель агента с подсказками «Generate next screen of this design», «Review my designs and give feedback».
Figma Motion: таймлайн живёт прямо под холстом, слева панель агента. Анимация задаётся ключевыми кадрами на тех же слоях, что и макет. · Figma · источник: figma.com/blog/introducing-figma-motion

Это меняет процесс передачи. Раньше движение передавали видео и словами «примерно так». Теперь передаются числа: длительность, кривая, задержка. Разработчик или агент пересобирает их в коде один в один. Ограничение: анимировать через агента Figma, публиковать анимированные компоненты и экспортировать в высоком разрешении можно только на платном месте.

Слева мобильный экран с изометрической картой и метками, справа панель Motion в Dev Mode: переключатель List/Code, выбран CSS, блок Style с строкой animation: rotate_1 2s и блок Keyframes с @keyframes rotate_1 от rotate(0deg) до rotate(360deg).
Та же анимация в Dev Mode: вместо «примерно так» разработчик получает готовый CSS с длительностью и ключевыми кадрами. Агент через Figma MCP берёт то же самое командой get_motion_context. · Figma · источник: figma.com/blog/introducing-figma-motion

CSS и View Transitions: самый дешёвый путь

Большую часть интерфейсного движения можно сделать без библиотек. transition для смены свойств, @keyframes для последовательностей, prefers-reduced-motion для доступности. View Transitions API делает переходы между состояниями и даже страницами: браузер сам снимает «до» и «после» и анимирует разницу. Переходы внутри одной страницы работают во всех современных браузерах, между страницами — в Chrome и Safari, в Firefox пока частично.

Агент пишет это хорошо, если у него есть моушн-гайд из темы «Анимация с ИИ». Без гайда он поставит ease на 300 мс везде. Короткий промпт с числами решает:

Добавь переходы по моушн-гайду из motion.md: открытие панели 250 мс ease-out, закрытие 180 мс ease-in, элементы списка появляются со stagger 40 мс. Для prefers-reduced-motion замени перелёты на затухание 150 мс. Только CSS, без библиотек

GSAP и Motion: когда нужен таймлайн

GSAP — стандарт для сложного веб-моушна: таймлайны, ScrollTrigger для скролл-историй, SplitText для анимации букв, MorphSVG для превращения форм. С версии 3.13 всё это бесплатно, включая коммерческое использование: Webflow купил GSAP и открыл плагины. Motion (бывший Framer Motion) ближе к React и пружинам: анимация раскладки, жесты, прерываемые переходы. У Motion есть официальный MCP-сервер с документацией, так что агент берёт актуальный API, а не то, что помнит.

Для чего это нужно дизайнеру: скролл-истории на лендинге, появление секций, hero с морфингом логотипа, счётчики, которые «накручиваются». Это тот же вайбкодинг, что в теме «Вайбкодинг: сайты», только с таймлайном. Важная деталь из темы «Моушн-ролик кодом»: таймлайн GSAP умеет перематываться в любую точку, поэтому ту же анимацию можно отрендерить в видео для соцсетей через HyperFrames.

Собери hero-секцию на GSAP: логотип собирается из трёх фигур (MorphSVG) за 600 мс, заголовок появляется по словам (SplitText, stagger 60 мс), при скролле карточки выезжают по ScrollTrigger. Кривые и длительности из motion.md. Один таймлайн, который можно перемотать в любую секунду

Lottie: одна анимация на все платформы

Lottie — векторная анимация в JSON-файле, которую проигрывает плеер на вебе, в iOS и Android. Классический путь: After Effects с плагином Bodymovin. Новый путь: Lottie Creator от LottieFiles собирает анимацию в браузере, а Motion Copilot делает её из описания: «иконка колокольчика покачивается и выпускает две волны». Результат редактируемый: слои, кривые, циклы, а не запечённый ролик. Есть и MCP для Lottie Creator, так что агент может собирать анимацию сам.

Интерфейс Lottie Creator: на холсте бейсбольный мяч на зелёном фоне с траекторией отскоков, справа панель Motion Copilot с запросом «Make this baseball layer…», ползунками Elasticity, Gravity, Bounces и ответом «the baseball now drops in and bounces to rest with decaying height, settling around frame 44», внизу таймлайн с ключевыми кадрами.
Motion Copilot в Lottie Creator: по фразе «сделай, чтобы мяч упал и отскочил» слой получает ключевые кадры на таймлайне, а не запечённый ролик. Ползунки упругости и гравитации правят результат без нового запроса. · Lottie Creator · источник: lottiefiles.com/blog, кадр из анонса Motion Copilot

Формат .lottie (dotLottie) пакует несколько анимаций и тем в один файл и поддерживает стейт-машины: входы, переходы, действия. Это позволяет иконке «нравится» реагировать на клик без кода вокруг. API стейт-машин ещё меняется, фиксируй версию плеера.

Ограничения Lottie: не все эффекты After Effects экспортируются (выражения, размытия, многие эффекты), тяжёлые файлы тормозят на мобильных. Проверяй в целевом плеере, а не в превью.

Rive: анимация, которая реагирует

Rive делает интерактивную анимацию со стейт-машиной: у персонажа или элемента есть состояния (idle, hover, pressed, error), переходы между ними и входы, которые их переключают из кода. Данные привязываются напрямую: счётчик в анимации читает число из приложения. С 2026 в редакторе есть скрипты и ИИ-агент, который пишет скрипты, раскладки, модели данных и анимацию и показывает правки диффом, чтобы принять или отклонить.

Для дизайнера это путь к живым маскотам, интерактивным онбордингам, элементам, которые отвечают пользователю. Порог входа выше, чем у Lottie: нужно думать состояниями. Но это та же логика, что в теме «Моушн-ролик кодом»: список состояний с входом, выходом и причиной.

Критика интерфейсной анимации

Ролик критикуют по контакт-листу, интерфейс — руками и глазами. Чеклист:

  • Движение быстрее 100 мс не видно, медленнее 500 мс раздражает. Замерь, а не прикидывай.
  • Вход мягче выхода. Выход быстрее входа.
  • Движется одно главное. Если при открытии панели двигаются ещё фон, иконки и заголовок, оставь панель.
  • Анимация не блокирует действие: кнопку можно нажать во время появления.
  • Включи «уменьшить движение» в системе и пройди сценарий ещё раз. Смысл сохранился?
  • Запусти на слабом телефоне. Lottie на 2 МБ и GSAP с сотней элементов там поведут себя иначе.
Шкала от 0 до 600 миллисекунд с тремя оранжевыми отрезками: микровзаимодействие 100–200 мс, обычный переход 200–300 мс, крупное перемещение 300–500 мс. Зона после 500 мс затемнена с подписью «дольше 500 мс: ждут».
Ориентиры длительности из темы «Анимация с ИИ» на одной шкале. Когда переход кажется «тяжёлым», сначала замерь его: чаще всего он просто вылез за свой отрезок. · схема, собрана для материала

Агенту можно отдать часть проверки: «запиши переход, вытащи кадры каждые 50 мс, скажи, где длительность и кривая не совпадают с motion.md». Это та же идея контакт-листа, только с шагом в миллисекунды.

Примеры команд для практики

Куда вставлятьClaude Code, Codex CLI или Gemini CLI в проекте сайта
Прочитай motion.md и добавь переходы для всех интерактивных состояний в компоненте [имя]: hover, pressed, disabled, loading. Только CSS. Для prefers-reduced-motion отдельный блок
Подключи View Transitions для перехода между списком и карточкой: карточка вырастает из своей строки в списке. Укажи, в каких браузерах это сработает, а где упадёт на обычную навигацию
Собери скролл-историю на GSAP ScrollTrigger из четырёх секций: каждая закрепляется, пока текст не прочитан, числа накручиваются при появлении. Длительности из motion.md, Math.random не использовать
Куда вставлятьLottie Creator с Motion Copilot
Иконка колокольчика 48×48: покачивается влево-вправо два раза за 600 мс, из верхней части расходятся две волны и тают. Цикл с паузой 2 с. Два цвета: #1A1A1A и #FF5A1F
Куда вставлятьChatGPT, Claude или Gemini в чате
Вот описание интерактивного элемента: [описание]. Разложи его на состояния для стейт-машины Rive: имя состояния, что на экране, какие входы переводят в другие состояния, длительность каждого перехода
Мини-задание

Возьми один элемент из своего макета: иконку, кнопку или переход между экранами. Определи формат по таблице и объясни выбор одним предложением. Сделай анимацию по своему моушн-гайду: через Figma Motion с экспортом в CSS, через агента в коде или через Lottie Creator. Включи reduced motion и проверь, что смысл сохранился. Положи результат в прототип или рядом с макетом и покажи разработчику: вопрос «а как именно это двигается» больше не должен возникать.

Время: 1–1,5 часа
Готово, если: один переход или иконка анимированы по моушн-гайду, работают в продукте или прототипе и имеют вариант для reduced motion

Источники

  1. Introducing Figma Motionfigma.com

    Таймлайн на холсте Figma, экспорт в CSS, motion.dev, видео и Lottie; открытая бета с июня 2026

  2. Explore Figma Motionhelp.figma.com

    Что есть на всех планах, а что требует платного места

  3. GSAP 3.13: free for everyonegsap.com

    Все плагины GSAP бесплатны после покупки Webflow

  4. Motion: AI and LLM documentationmotion.dev

    MCP-сервер с документацией Motion для агентов

  5. dotLottie: State Machinesdocs.lottiefiles.com

    Состояния и входы внутри файла .lottie

  6. Introducing Motion Copilot on Lottie Creatorlottiefiles.com

    Lottie-анимация из текстового описания, редактируемые слои

  7. Rive AI Agentrive.app

    Агент внутри редактора Rive пишет скрипты, раскладки и анимацию

  8. View Transitions APIdeveloper.chrome.com

    Переходы между состояниями и страницами средствами браузера

Нашёл ошибку или устаревший факт? Напиши: hey@iskra.guide