Communitygithub.com

astudio · Lottie & Rive

Intégration, contrôle et optimisation d'animations conçues par des designers dans vos produits : lecture Lottie/dotLottie, segments, animations interactives et pilotées par le défilement, thèmes à l'exécution, optimisation de taille ; machines d'état Rive (entrées, transitions, écouteurs), liaison de données avec ViewModels, événements, runtimes pour web, React, React Native, iOS, Android, Flutter ; choix entre Lottie, Rive et code ; préparation des fichiers (After Effects + Bodymovin, Figma Motion, Lottie Creator, exports Cavalry).

Qu'est-ce que astudio · Lottie & Rive ?

Ce skill fournit un guide complet pour intégrer et contrôler des animations conçues par des designers (Lottie et Rive) dans des applications, destiné aux développeurs et aux designers techniques. Il couvre deux formats principaux : Lottie (`.json` ou `.lottie` compressé) pour les animations linéaires segmentables (icônes, écrans d'intégration, états vides), et Rive (`.riv`) pour les animations interactives, étatiques, pilotées par les données ou les entrées utilisateur (boutons, personnages, UI réactive). Le skill détaille les workflows spécifiques : pour Lottie, il explique l'utilisation du runtime dotLottie (play/pause/stop, segments, défilement, thèmes dynamiques, optimisation de taille) et la compatibilité avec `@lottiefiles/dotlottie-web` et `@lottiefiles/dotlottie-react` ; pour Rive, il décrit l'utilisation des machines d'état (entrées booléennes/numériques/trigger, transitions, écouteurs d'événements), la liaison de données via les ViewModels, et les runtimes principaux (`@rive-app/react-canvas`, web, natifs). Il offre également des conseils pour choisir le bon format, optimiser les fichiers, et assurer l'accessibilité (réduction de mouvement, `aria-label`). Le skill s'appuie sur une barre de référence située dans `<root>/reference/studio-bar.md` et un script d'inspection visuelle `scripts/motion.cjs`.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/whoamnesia/motion-3d/tree/HEAD/skills/lottie-rive

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait astudio · Lottie & Rive ?

Rôle : Senior Motion Designer & Creative Developer chez astudio.one (15+ ans) - des animations conçues par des designers qui s'exportent nettes, légères et interactives. Barre : <root>/reference/studio-bar.md ; <root> = deux niveaux au-dessus du répertoire de base de ce skill, ou le dossier contenant scripts/motion.cjs.

Choisir le format

BesoinChoix
une animation linéaire conçue par un designer (icône, illustration, écran d'intégration, état vide) lue/mise en pause/segmentéeLottie (.lottie via le runtime dotLottie)
une animation interactive, étatique, réagissant aux entrées ou aux données de l'app (boutons avec états, personnages, progression, UI de jeu, illustrations pilotées par les données)Rive (machines d'état + liaison de données)
changements d'état UI simples, survol/pression, transitionsCSS/Motion (astudio-motion:ui-motion) - aucun fichier nécessaire
logo/icône pouvant être dessiné en SVG et animé en codeSVG + GSAP (astudio-motion:svg-motion) - exporter en Lottie uniquement si un runtime d'application en a besoin
contenu de type vidéo (personnes, séquences)vidéo (<video>), pas de Lottie

Workflow Lottie (references/lottie.md)

  1. Préférer .lottie (zip, 60-80% plus petit, regroupe images/thèmes/machines d'état) + @lottiefiles/dotlottie-web (canvas + WASM) ou @lottiefiles/dotlottie-react ; lottie-web uniquement pour des besoins hérités en rendu SVG.
  2. Contrôle : play/pause/stop/setSpeed/setMode/setFrame/setSegment, événements load/complete/frame ; "machines d'état" basées sur les segments (jouer le segment checked, puis boucler idle).
  3. Défilement : mapper la progression du défilement sur setFrame ; interactivité sans câblage via @lottiefiles/lottie-interactivity.
  4. Thèmes à l'exécution (couleurs de marque, mode sombre) via les thèmes/emplacements dotLottie - ne pas expédier deux fichiers.
  5. Optimiser : supprimer les calques cachés/ressources inutilisées, pas d'images matricielles sauf nécessité, moins de masques/mattes/effets (non supportés ou lents), réduire à la plage d'images visible, vérifier la taille du fichier (< 50-100 Ko pour les icônes).
  6. Accessibilité : role="img" + aria-label ; pause en mouvement réduit (afficher une image fixe pertinente via setFrame) ; pas de boucles automatiques > 5s sans contrôle de pause.

Workflow Rive (references/rive.md)

  1. Dans l'éditeur : plans de travail, timelines, une machine d'état (états, transitions avec conditions, entrées : booléenne/numérique/déclencheur, écouteurs pour événements de pointeur), ViewModels pour la liaison de données (propriétés chaîne/numérique/couleur/énumération/déclencheur/liste liées aux propriétés de la scène), événements pour les callbacks de l'app.
  2. Runtime : @rive-app/react-canvas (useRive, useStateMachineInput, useViewModel, useViewModelInstance*), @rive-app/canvas pour le vanilla, runtimes natifs pour iOS/Android/Flutter/RN ; moteur de rendu WebGL2 pour les scènes lourdes.
  3. Piloter depuis les données de l'application (liaison de données) plutôt qu'une multitude d'entrées ; écouter les événements Rive pour les réactions de l'app.
  4. Précharger les fichiers critiques ; dimensionner le canvas avec la mise en page de useRive (Fit, Alignment) ; mettre en pause hors écran.

Vérification

node <root>/scripts/motion.cjs strip page.html --duration <s> rend une page hébergeant le fichier Lottie/Rive (le mode horloge pilote leurs boucles rAF). Vérifier la première et la dernière image, les limites des segments et les couleurs après thématisation.

Notes de remise pour les designers

  • AE -> Lottie : plugin Bodymovin/LottieFiles ; supporté : calques de forme, transformations, chemins de coupe, masques (limité), texte (préférer vectorisé), précompositions ; éviter les rigs lourds en expressions, effets, calques 3D, modes de fusion.
  • Figma Motion exporte MP4/GIF/SVG/WebM et du code (CSS/React/motion.dev) - pour Lottie, utiliser Lottie Creator ou le plugin LottieFiles. Cavalry exporte Lottie nativement.
  • Nommer les calques de manière significative (ils deviennent des sélecteurs pour la thématisation et le débogage) ; livrer .lottie avec thèmes.

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/motion-review

Motion review and audit by astudio: reviews animation code and rendered motion against a strict craft bar, audits a whole codebase's motion, diagnoses jank and performance, finds where motion is missing (opportunities) and removes motion that should not exist - for websites, product UI, GSAP/Motion/CSS, Lottie/Rive, three.js and rendered videos. Use for "review my animations", "why is this janky", "this feels cheap/slow/AI-made", "audit the motion", "where should we add animation", "remove unnecessary animations", "проверь анимации", "почему дёргается", "аудит моушена". Default to flagging; approval is earned. Outputs a findings table and a Block/Approve verdict, with rendered strips as evidence.

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.

Skills associés