Ir al contenido

rive-interactive

  • Grupo: 3D / WebGL
  • Cuándo se activa: Animaciones interactivas Rive (state machines)
  • Se instala: Opcional: llega con un paquete de skills.

Documentación completa upstream (inglés): SKILL.upstream.md (586 líneas). No la leas entera: usa el mapa y lee solo la sección que necesites (Read con offset/limit o Grep).

  • Usar: componentes animados con lógica de estados (hover/pressed/loading) controlados desde código mediante inputs de state machine.
  • Usar: enlazar datos de la app (texto, números, colores, enums) a la animación con ViewModels, o reaccionar a eventos emitidos desde Rive.
  • Usar: integrar un archivo .riv entregado por diseño en React, con precarga y control por refs.
  • NO usar: animaciones de timeline sin interactividad (loaders simples, iconos) → lottie-animations.
  • NO usar: animación de layout/gestos en React → motion-framer; scroll → gsap-scrolltrigger; 3D → spline-interactive.
Tarea Lee solo
Empezar un proyecto/starter SKILL.upstream.md L34-101 (§Core Concepts + Pattern 1) + assets/README.md
Controlar estados con inputs (hover, click, progreso) L102-150 (§Pattern 2)
Data binding con ViewModels L151-213 (§Pattern 3) + L343-381 (§Pattern 7) + references/api_reference.md
Eventos desde la animación / control por refs / precarga L214-342 (§Pattern 4, 5, 6)
Combinar con Framer Motion o ScrollTrigger L382-448 (§Integration Patterns)
Depurar / rendimiento L449-483 (§Performance Optimization) + L484-546 (§Common Pitfalls and Solutions)
Líneas Sección Para qué
8-33 Overview Qué aporta Rive frente a Lottie/Framer/GSAP y cuándo usarlo
34-66 Core Concepts State Machines (36), Inputs (44), ViewModels (51), Events (61)
67-381 Common Patterns Básico (69), inputs (102), ViewModel (151), eventos (214), precarga useRiveFile (262), refs/useImperativeHandle (294), multi-propiedad (343)
382-448 Integration Patterns Con Framer Motion (384) y con GSAP ScrollTrigger (409)
449-483 Performance Optimization useOffscreenRenderer, optimizar .riv, precarga, automaticallyHandleEvents
484-546 Common Pitfalls and Solutions Input null (486), ViewModel no actualiza por autoBind (504), eventos no disparan (525)
547-569 Resources / Related Skills Docs oficiales, editor, tutoriales y skills relacionadas
570-586 Scripts / Assets Índice de scripts y assets (nota: starter_rive/ y examples/ no existen en esta copia)
  • references/api_reference.md — API de rive-react: useRive, useStateMachineInput, hooks de ViewModel, eventos, layout y props.
  • scripts/component_generator.py — Imprime una plantilla de componente Rive React (modo interactivo): py -3 scripts/component_generator.py.
  • scripts/viewmodel_builder.py — Imprime plantilla de bindings de ViewModel (modo interactivo): py -3 scripts/viewmodel_builder.py.
  • assets/README.md — Quick start y ejemplos de uso básico con rive-react (único asset presente).
  • Los nombres de state machine e inputs deben coincidir exactamente con el editor Rive; comprueba if (input) antes de usarlos (pueden ser null hasta cargar).
  • Para ViewModels manuales usa autoBind: false en useRive; para recibir eventos, automaticallyHandleEvents: true y limpia con rive.off(...) en el cleanup.
  • Colores de ViewModel como número (parseInt(hex.substring(1), 16)), no string.
  • Rendimiento: useOffscreenRenderer, precarga con useRiveFile, artboards < 2 MB, vectores en vez de raster, pocos huesos y state machines simples.
  • Respeta prefers-reduced-motion: pausa o muestra estado final estático (norma del proyecto, no del upstream).
  • Detecta el stack como indica la skill front-activation/skill-router (senzu/senzu.json → package.json).
  • El upstream es solo React (rive-react). Para Vue, Astro o vanilla usa @rive-app/canvas (mismos conceptos: new Rive({ src, stateMachines, autoplay }), stateMachineInputs()), siempre solo en cliente (SSR-safe: useEffect / client:only).