Перейти к руководству
Animation Performanceавтор Emil Kowalski

Animation Performance Skill.

Узнайте, почему существующая веб-анимация теряет кадры. Animation Performance проводит вашего кодирующего агента по стоимости отрисовки, занятости основного потока и обновлениям на каждом кадре, а к каждому предлагаемому изменению указывает причину.

  • Веб-анимация
  • Производительность кадров
  • Диагностический обзор
Обзор источника · animation-performanceSKILL.md
Задача Анимация и видео Результат • Перечень анимируемых элементов, драйверов и свойств • Выводы с указанием причин, расположением в файлах и предложениями «до/после» • Чёткое разделение между анализом кода и данными, записанными на устройстве Перед началом Исходный код анимации и воспроизводимое взаимодействие; профилирование в браузере и реальное целевое устройство для проверки производительности.
Редакционное резюме · источник проверен 2026-10-12 · не сгенерированный пример

01 Что делает навык

Найти причину пропущенного кадра

Этот рабочий процесс описан в зафиксированном источнике. Это не записанный запуск и не бенчмарк.

Процесс на основе источникаНе бенчмарк выполнения

Подход к работе

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

Источник также проверяет менее очевидные пути: обновление состояния React на каждом кадре, наследуемую переменную CSS, меняющуюся в большом поддереве, дорогое размытие и сокращённые трансформации Motion. Рекомендации привязаны к коду и учитывают поведение браузера и устройства; быстрый настольный компьютер не считается доказательством исправления.

Ожидаемые результаты

  • Перечень анимируемых элементов, драйверов и свойств
  • Выводы с указанием причин, расположением в файлах и предложениями «до/после»
  • Чёткое разделение между анализом кода и данными, записанными на устройстве
Смотреть пример задания

От входных данных к выводам

  1. 01
    Составьте перечень анимаций в области проверки

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

  2. 02
    Найдите вероятную причину

    Сначала изучите работу компоновки и отрисовки, затем конкуренцию за основной поток, рендеры React на каждом кадре и пересчёт стилей. Связывайте каждое предлагаемое изменение с конкретным путём, а не называйте его общей оптимизацией.

  3. 03
    Профилируйте реальное взаимодействие

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

  4. 04
    Сообщайте с учётом пределов проверки

    Укажите расположение в файлах, причины и предложения «до/после», упорядоченные по ожидаемой стоимости. Отметьте, что выведено из кода, а что измерено, и дождитесь разрешения на применение исправлений.

02 Когда использовать

Когда использовать

Применяйте для веб-анимации, которая дёргается или замедляется под нагрузкой. Навык касается доставки кадров, а не выбора более привлекательной анимации.

Хорошо подходит

  • Анимация во время навигацииИндикаторы вкладок, переходы между страницами и анимация рядом с загрузкой могут конкурировать со сменой маршрута, гидратацией или длинными задачами.
  • Панели, которые тормозят из-за содержимогоПроверьте наследуемые переменные, повторный расчёт стилей и слишком много анимируемых узлов, когда перетаскивание работает с несколькими элементами, но ухудшается на длинном списке.
  • Анимация React, написанная вручнуюНайдите обновления состояния в обработчиках кадра, указателя или прокрутки, из-за которых React рендерит чаще, чем нужно эффекту.

Ограничения

  • Не инструмент для кривых и таймингаВыбор кривой, длительности или уместности анимации в интерфейсе выходит за узкие рамки навыка, посвящённого производительности.
  • Веб, а не React NativeИсточник нацелен на отрисовку в браузере и драйверы веб-анимации. Поведение потоков в React Native рассматривается отдельным навыком в репозитории.
  • Ускорение не гарантированоНа ускорение влияют версии браузеров, свойства и решения о слоях. Сохраняйте корректность компоновки и проверяйте на целевых устройствах, а не обещайте частоту кадров.

Что подготовить

  • Воспроизводимое взаимодействиеОпишите точно, когда появляются рывки: при открытии панели, переключении маршрутов или перетаскивании после загрузки данных. Укажите объём содержимого, нужный для воспроизведения.
  • Код анимации и компонентовПредоставьте CSS, версию драйвера или библиотеки, анимируемые свойства и соответствующие обработчики состояния. Укажите сопутствующую работу, выполняемую одновременно.
  • Целевой браузер и устройствоНазовите затронутый браузер, устройство и, если известно, частоту обновления. Приложите записи производительности, если они есть, и отделите их от субъективных впечатлений.

03 Важные решения

Важные решения

  1. Стоимость отрисовки важнее подсказок о слоях

    Источник предпочитает transform и opacity там, где они сохраняют нужное поведение. Изменения компоновки, перерисовка эффектов и общие переходы требуют особого внимания.

  2. Драйвер важен под нагрузкой

    Цикл requestAnimationFrame требует основного потока. Эффекты CSS или Web Animations API могут использовать ускоренный путь для подходящих свойств, но фактическое поведение браузера всё равно нужно проверять.

  3. Небольшие шаблоны кода могут влиять на целое поддерево

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

04 Попробуйте точное задание

Попробуйте точное задание

Приведённое ниже задание не тестировалось. Перед использованием проверьте настройку навыка.

Проверьте настройку

Установите из публичного репозитория навыков Emil Kowalski и выберите этот навык для своего агента.

Команда установки с указанием области
npx skills@latest add emilkowalski/skills --skill animation-performance

README описывает установку репозитория с помощью npx skills@latest add emilkowalski/skills. Приведённая ниже команда с указанием области выбирает эту запись. Для npx требуется Node.js/npm; источник не фиксирует минимальную версию. Перед запуском изучите инструкции первоисточника.

Воспроизведите одно дёргающееся взаимодействие

Это задание составлено нами и не тестировалось. Замените сведения о компоненте и окружении фактическим контекстом вашего проекта.

Пример задания
Используйте animation-performance, чтобы проверить панель нашего веб-дашборда: она дёргается во время загрузки маршрута и работает хуже при 60 элементах списка. Прочитайте существующие CSS и обработчики React, не изменяя их. Перечислите анимируемые свойства, драйвер, обновления состояния и задействованные пользовательские свойства. Предложите минимальные изменения, устраняющие названную причину, с сохранением компоновки, прерывания жеста и поведения при reduced-motion. Если есть доступ к браузеру, запишите взаимодействие с 5 и 60 синтетическими элементами и изучите длинные задачи и доставку кадров. Укажите использованные браузер и устройство. Не заявляйте об улучшении на мобильных устройствах по записи только с компьютера, не добавляйте will-change по умолчанию и остановитесь после отчёта.

Проверьте доказательства до исправлений

Сверьте отчёт с кодом и реальным поведением браузера. Не смешивайте непроверенные наблюдения с воспроизведёнными сбоями.

  • Каждое предлагаемое изменение называет причину в отрисовке или пути обновления и место в исходном коде.
  • Утверждения «до/после» опираются на сопоставимые записанные взаимодействия; неизмеренное поведение устройств чётко отмечено.
  • Предлагаемая оптимизация сохраняет задуманные компоновку и взаимодействие, а не просто выглядит плавнее сама по себе.

OpenDesign предоставляет локальное дизайн-пространство для кодирующих агентов. Эта запись не означает, что навык входит в комплект или что в него включены внешние инструменты, учётные данные и программные зависимости.

05 Источник и лицензия

Источник и лицензия

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

Владелец источника
Emil Kowalski
Репозиторий
emilkowalski/skills
Лицензия
MIT
Проверенный снимок
2026-10-12 · 2d228630ba14
Редакционное резюме источника
Диагностика потерянных кадров в веб-анимации: стоимость отрисовки, конкуренция за основной поток, обновления React на каждом кадре и наследуемые переменные CSS. Это редакционное резюме зафиксированного источника, а не отчёт о выполнении.

Оригинальное резюме от OpenDesign на основе указанного источника. Звёзды репозитория — датированный показатель популярности, а не использование навыка и не оценка качества.

06 Вопросы перед началом

Вопросы перед началом

Нужно ли переписывать каждую анимацию на CSS?

Нет. Источник считает библиотеки JavaScript полезными для пружин, эффектов общей компоновки, жестов и прерывания. Его интересует, способны ли выбранные драйвер и свойства удовлетворить нужды взаимодействия под нагрузкой.

Решает ли will-change проблему потерянных кадров?

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

Достаточно ли плавной записи на настольном компьютере?

Нет. Источник требует данных с реального устройства при оценке мобильной производительности. Замедление ЦП полезно для исследования, но не воспроизводит ограничения GPU и памяти телефона.

Animation Performance

Найдите работу, стоящую за рывками

Выберите одно воспроизводимое взаимодействие, проследите стоимость его кадров и проверьте изменения на целевом устройстве. Рекомендация по коду — отправная точка, а не бенчмарк производительности.

Команда установки с указанием области
npx skills@latest add emilkowalski/skills --skill animation-performance