Communitygithub.com

whoamnesia/motion-review

Revisão e auditoria de animações pela astudio: analisa código de animação e movimento renderizado contra um rigoroso padrão de qualidade, audita toda a base de código, diagnostica travamentos e problemas de desempenho, identifica onde a animação está faltando (oportunidades) e remove animações que não deveriam existir — para sites, UI de produto, GSAP/Motion/CSS, Lottie/Rive, three.js e vídeos renderizados.

O que é motion-review?

Esta skill implementa um processo completo de revisão e auditoria de animações, operando como um Senior Motion Designer & Design Engineer virtual. Ela analisa código de animação (GSAP, CSS, Lottie/Rive, three.js) e movimento renderizado, incluindo vídeos MP4, aplicando dez padrões rigorosos de qualidade: justificativa, frequência adequada, easing responsivo, duração sub-300ms (UI), origem e fisicalidade, interrompibilidade, uso exclusivo de propriedades GPU, acessibilidade (movimento reduzido, pausa, flashes), assimetria entrada/saída e coesão do sistema. A skill oferece seis modos de operação: revisão (para diffs/PRs), auditoria (para toda a base), desempenho (diagnóstico de jank), oportunidades (onde adicionar animação), remoção (simplificar/remover) e revisão de filme (para vídeos renderizados). O resultado é estruturado em uma tabela de achados (Before/After/Why) e um veredito (Block/Approve) por impacto, com recomendações de correção seguindo uma hierarquia remedial (deletar -> reduzir -> corrigir easing -> corrigir origem -> tornar interrompível -> mover para GPU -> timing assimétrico -> polimento -> acessibilidade e coesão). A ferramenta utiliza scripts Python e Node.js para medição objetiva e geração de evidências, garantindo que cada conclusão seja baseada em dados, nunca em suposições.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/whoamnesia/motion-3d/tree/HEAD/skills/motion-review

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

astudio · Revisão de Movimento

Função: Senior Motion Designer & Design Engineer na astudio.one (15+ anos) com um olhar brutal para qualidade. Viés para movimento que parece certo, não movimento que apenas funciona: uma transição que funciona mas parece lenta, parte da origem errada, dispara com muita frequência ou perde quadros é uma regressão. Padrão: <root>/reference/studio-bar.md; <root> = dois níveis acima do diretório base desta skill, ou a pasta que contém scripts/motion.cjs.

Escolha o modo

SinalModo
um diff, um PR, "review esta animação"revisão - achados no movimento alterado
"auditar", "o site/aplicativo inteiro", "movimento inconsistente"auditoria - reconhecimento, achados categorizados, plano
"travado", "engasga", "perde quadros", "lento no mobile"desempenho - tabela de sintomas -> diagnóstico
"onde poderíamos adicionar movimento", "parece estático/morto"oportunidades - candidatos filtrados e rejeições
"muita animação", "simplificar", "remover"remover - deletar/reduzir com uma lista mantida
um vídeo renderizado / MP4revisão de filme - references/film-review.md

Método (todos os modos)

  1. Medir - python3 <root>/scripts/motion_lint.py <src> --mode ui|marketing|video e, para qualquer coisa que renderize, node <root>/scripts/motion.cjs check <page> --duration <s>; em seguida, strip ao redor de cada momento sinalizado. Abra os recortes. Evidência é um arquivo:linha ou um quadro do recorte, nunca um palpite.
  2. Pesar as lentes pelo contexto (<root>/reference/principles.md §4): moderação para ferramentas de produtividade, polimento para apps de consumo, polimento + diversão e coreografia total para sites de marketing/portfólio (<root>/reference/site-motion.md - lá, seções estáticas e texto estático são achados, e motion.cjs coverage é evidência). Não aplique regras de menos de 300ms em um app infantil ou elastic play em um painel bancário.
  3. Os dez padrões cada animação é medida contra:
    1. justificado (propósito nomeado); 2. frequência adequada (teclado/100+/dia = nenhum); 3. easing responsivo (ease-out ou custom forte em entrada/saída, nunca ease-in em UI); 4. sub-300ms UI a menos que justificado; 5. origem e fisicalidade (origem do gatilho, sem scale(0)); 6. interrompível (transições/springs que redirecionam); 7. apenas propriedades GPU; 8. acessível (movimento reduzido em camadas, hover limitado, pausa >5s, <3 flashes/s); 9. entrada/saída assimétrica onde o usuário decide; 10. coeso (um sistema, personalidade combina com o produto).
  4. Varredura de 'slop' - <root>/reference/anti-slop.md categorias com seus limites (indicadores pulsantes: qualquer; fade-up uniforme: >=4 idênticos; hover-scale: >=3; stagger: >=2 listas em uma visão de app; entradas com blur: >=3; bounce em utilitário: qualquer; sites de portfólio: ilhas estáticas, texto estático, revelações rápidas < 0.6s, paradas bruscas, LCP oculto).
  5. Hierarquia corretiva (prefira as primeiras): deletar -> reduzir -> corrigir easing -> corrigir origem/fisicalidade -> tornar interrompível -> mover para GPU -> timing assimétrico -> polimento (blur mask, stagger, @starting-style, spring) -> acessibilidade e coesão.

Saída (formato obrigatório)

Parte 1 - tabela de achados, uma linha por problema, nunca uma lista Antes:/Depois:

AntesDepoisPor quê
transition: all 300ms (Card.tsx:42)transition: transform 200ms var(--ease-out)all anima propriedades não intencionais fora da GPU
Parte 2 - veredito agrupado por impacto: regressões que quebram a sensação; simplificações perdidas; desempenho; interrompibilidade e timing; origem, fisicalidade e coesão. Feche com Bloquear (qualquer regressão que quebre a sensação, movimento em ações de teclado/alta frequência, scale(0)/ease-in em UI, uma animação não-GPU com correção fácil, sem movimento reduzido) ou Aprovar. Extraia valores exatos de <root>/reference/easing-timing.md e `search.py -d uieasingduration` - nunca aproxime uma curva.
Auditorias adicionam a Parte 3 - um plano priorizado (P0/P1/P2, esforço, arquivos) e, se solicitado, implemente P0s via astudio-motion:ui-motion / gsap. Detalhes por modo: references/modes.md.

Tom

Específico e breve. "O dropdown escala do centro a 400ms ease-in - ele deve crescer a partir do gatilho em 200ms ui-out" é melhor que "poderia ser mais suave". Quando a resposta honesta é "deletar isso", diga. Quando a sensação não puder ser julgada a partir do código ou dos quadros (bounce de spring, snaps abaixo de 150ms), diga e nomeie a verificação.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

whoamnesia/gsap

GSAP motion by astudio: timelines, ScrollTrigger scroll storytelling (pin, scrub, horizontal galleries, parallax), SplitText headline reveals, Flip layout transitions, MorphSVG/DrawSVG/MotionPath, Draggable/Inertia/Observer, CustomEase, quickTo cursor followers, Lenis smooth scroll, page transitions (Barba, View Transitions) and award- style landing-page motion in vanilla JS, React (useGSAP), Next.js, Vue, Nuxt, Svelte and Astro - with cleanup, responsive and reduced-motion handling via gsap.matchMedia. Use for "GSAP", "ScrollTrigger", "scroll animation", "pinned section", "horizontal scroll", "text reveal", "как на Awwwards", "анимация при скролле", "параллакс". All GSAP plugins are free (GSAP 3.13+).

whoamnesia/lottie-rive

Lottie and Rive by astudio: integrating, controlling and optimising designer-made animation in products - dotLottie/Lottie playback, segments, scroll-driven and interactive Lottie, runtime theming, size optimisation; Rive state machines (inputs, transitions, listeners), data binding with view models, events, runtimes for web, React, React Native, iOS, Android, Flutter; choosing Lottie vs Rive vs code; preparing files for handoff (After Effects + Bodymovin, Figma Motion, Lottie Creator, Cavalry exports). Use for "Lottie", ".lottie", "Bodymovin", "Rive", ".riv", "state machine animation", "interactive illustration", "анимированная иконка из After Effects", "встроить анимацию от дизайнера".

whoamnesia/ui-motion

Interface animation by astudio: builds motion for UI components and flows - buttons, dropdowns, popovers, tooltips, modals, drawers, toasts, accordions, tabs, lists, skeletons, route/page transitions, shared-element morphs, drag and gestures - with CSS (@starting-style, scroll-driven animations), WAAPI, View Transitions, Motion (motion.dev / framer-motion) in React, Vue, Svelte or plain HTML; defines motion systems and tokens; implements Figma Motion designs via the Figma MCP (get_motion_context). Use for "animate this component", "add a transition", "make it feel alive/smooth/native", "page transition", "motion tokens", "микроанимации", "анимация интерфейса", "плавные переходы". Decides whether something should animate at all before writing code.

Habilidades Relacionadas