Solución de problemas
Cuatro cosas que parecen fallos y normalmente no lo son.
El icono se pinta pero no anima
En orden de con qué frecuencia resulta ser cada una:
- El sistema pide movimiento reducido. Los iconos respetan
prefers-reduced-motionpor defecto y se quedan en su pose base. Es el comportamiento previsto — revisa el ajuste de tu sistema antes que nada. - El disparador nunca ocurre. El default es
hover. Contrigger="manual"no pasa nada hasta que llames aplay(), y contrigger="group"la animación cuelga del hover de un ancestro, no del icono. - Esa variante no existe en ese icono. Pedir
animation="spin"en un icono que solo tienedefaultydrawno hace nada, y no es un error. Cada icono del catálogo lista sus variantes.
El morph se ve raro
El morphing empareja subtrazos por proximidad. Cuando dos iconos no comparten nada estructural —un círculo y una campana, por ejemplo— no hay buen emparejamiento que encontrar, y el resultado es honesto al respecto: las formas viajan por el lienzo de maneras que nadie diseñó. Es un límite de la interpolación de formas, no un defecto.
Lo que ayuda: morphear entre iconos de la misma familia (bell → bell-ring), o entre formas con el mismo número de subtrazos. El Lab te deja probar cualquier pareja antes de comprometerte con ella.
<code>name=</code> no pinta nada
El catálogo es opt-in. Sin provideIconCatalog(ANIMATED_ICONS) en tus providers, name="bell" no tiene dónde buscar y el componente se pinta vacío — a propósito, porque registrar 1767 iconos por defecto metería el catálogo entero en todos los bundles. O agregas el provider, o pasas el icono por valor con [iconDef].
El render en servidor falla o no hidrata
No hay nada que configurar — ni afterNextRender, ni guarda de isPlatformBrowser, ni import diferido. Si tu build falla al renderizar, la causa casi nunca es el icono: el componente no toca ningún global del navegador en el servidor, y eso se verifica en CI en cada commit con una prueba de humo que corre en Node de verdad, no en jsdom.
El SVG que pinta el servidor es exactamente el mismo nodo que anima el cliente — nunca se reemplaza, las animaciones solo se añaden encima. Si ves un parpadeo, busca otra cosa que esté cambiando el DOM.