Animación SVG: 20 ejemplos en vivo con código

Ejemplos de animación SVG

Animación SVG: 20 ejemplos en vivo con CSS y SMIL, comparados con Lottie | We.Inc

Veinte animaciones SVG en vivo con código para copiar: trazado de líneas, loaders, transiciones de iconos, barras de gráfico que crecen y morphing de trazados, además de CSS vs SMIL vs GSAP y SVG vs Lottie.

La animación SVG mueve o redibuja formas vectoriales con CSS, SMIL o JavaScript. Los keyframes de CSS se encargan de las transformaciones, la opacidad y el truco de dibujo de líneas con stroke-dasharray y stroke-dashoffset. Las etiquetas SMIL como <animate> pueden transformar trazados y seguir trayectorias sin scripts. Bibliotecas como GSAP añaden líneas de tiempo y control con el scroll. Lottie es ideal para animaciones de After Effects creadas por diseñadores.

Qué técnica usar para cada efecto

Cada animación de esta página se ejecuta en vivo a partir del código que tiene al lado, en un marco con los scripts desactivados, así que lo que copias es exactamente lo que funciona sin JavaScript. Además, cada una se detiene para los visitantes que piden movimiento reducido a su sistema. Arriba, un generador de dibujo de líneas escribe el truco del trazo para cualquier path que pegues.

Preguntas frecuentes

¿Cómo funciona el efecto de dibujo de líneas en SVG?

Dale al trazo un guion tan largo como el path con stroke-dasharray, sácalo de la vista con un stroke-dashoffset igual y luego anima el desplazamiento hasta 0. El guion se desliza a su sitio y la línea parece dibujarse sola. pathLength="1" te permite usar 1 para ambos valores.

¿Está obsoleto SMIL?

No. Chrome anunció en 2015 un plan para retirarlo y después suspendió ese plan. Los elementos SMIL como animate, animateTransform y animateMotion funcionan en todos los navegadores principales actuales y forman parte de la especificación SVG.

¿Puede CSS transformar paths de SVG?

En parte. La propiedad CSS d acepta valores path() y se puede animar en navegadores Chromium y en Firefox, pero Safari no la soportaba en el momento de escribir esto, así que consulta caniuse. Ambos paths deben tener el mismo número y tipo de comandos. SMIL animate sobre el atributo d funciona en más navegadores.

¿Debo usar Lottie o SVG?

Usa SVG simple con CSS para iconos, loaders e ilustraciones sencillas que puedas describir en código. Usa Lottie cuando un diseñador de motion crea en After Effects un personaje o una escena compleja y quieres reproducirlo con fidelidad. Lottie necesita una biblioteca de reproducción; el SVG simple no.

¿Cómo respeto el movimiento reducido en las animaciones SVG?

Envuelve las animaciones CSS en una media query prefers-reduced-motion o desactívalas dentro de ella. CSS no puede pausar SMIL, así que muestra una versión estática del gráfico en esa media query, o ejecuta pauseAnimations() sobre el elemento svg desde un script.

Rendimiento

SVG o Lottie

20 animaciones SVG en vivo

Las veinte funcionan sin JavaScript e incluyen una regla de movimiento reducido. Edita cualquiera directamente.

Dibujo de líneas: marca de verificación

El clásico truco del trazo con pathLength=1, para que los valores del guion no dependan de la longitud real.

Dibujo de líneas: trazo de escritura a mano

Un path más largo dibujado despacio con un easing lineal parece una pluma en movimiento.

Loader: arco giratorio

Un círculo con un guion parcial gira; transform-box mantiene el giro centrado.

Loader: tres puntos

Valores escalonados de animation-delay convierten un único conjunto de keyframes en una ola.

Anillo pulsante

Escala y desvanecimiento a la vez para un radar o un indicador en directo.

Barras de ecualizador

Cada barra escala en el eje Y desde su base con su propia duración.

Barras de gráfico que crecen

Las barras crecen una vez al cargar. Usar forwards conserva el estado final, y la regla de movimiento reducido simplemente muestra el gráfico terminado.

Progreso circular

La misma idea del guion sobre un círculo. Gíralo -90 grados para que empiece arriba.

Transición de icono: menú a cerrar

Pasa el ratón o pon el foco en el botón. Cada línea se mueve y gira con una transición, sin necesidad de keyframes.

Latido

Dos pasos rápidos de escala y luego una pausa, todo en una sola lista de keyframes.

Morphing con la propiedad CSS d

Funciona en Chromium y Firefox. Donde d no está soportada, la forma se queda como un cuadrado. Ambos paths usan los mismos comandos en el mismo orden.

Morphing con SMIL animate

SMIL cambia el propio atributo d, que tiene más soporte que la propiedad CSS d. La copia estática se muestra con movimiento reducido.

Seguir un path con animateMotion

rotate=auto gira la forma para que mire hacia la dirección del movimiento.

Engranaje giratorio con animateTransform

Los valores de rotate toman el punto central como su segundo y tercer número.

Degradado cambiante

SMIL anima los colores de las paradas del degradado, algo que también pueden hacer los keyframes de CSS sobre stop-color.

Ola infinita

Un path el doble de ancho que la vista se desliza a la izquierda exactamente un periodo, así que el bucle no tiene costura.

Campana de notificación que tiembla al pasar el ratón

Rotación desde la parte superior de la campana, activada al pasar el ratón o con el foco del teclado.

Selección de hormigas en marcha

Un trazo discontinuo con un desplazamiento animado, el aspecto de un cuadro de selección en los editores de imágenes.

Datos que fluyen por un conector

Guiones cortos sobre una línea curva se mueven sin parar para sugerir una dirección.

Pelota que rebota y se aplasta

El aplastamiento al impactar transmite el peso. transform-origin en la base mantiene la pelota en el suelo mientras se aplasta.

CSS vs SMIL vs JavaScript (GSAP)

Tres formas de animar SVG

El mismo dibujo de líneas y gráfico de barras en GSAP

Solo código, porque los marcos de demostración tienen los scripts desactivados. GSAP es de uso gratuito bajo su propia licencia, que no es MIT, así que lee sus condiciones antes de publicar.

Generador de dibujo de líneas

Estrella

Ola

Casa

Repetir

Tu sistema pide movimiento reducido, así que el dibujo se muestra terminado. Pulsa Repetir para reproducirlo una vez.

Datos del path (atributo d)

Duración: {n}s

Grosor del trazo: {n}

Easing

Color

SVG y CSS

Copiar código

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio