03 Capítulo 3 · Lección 6

Animation Name

Redactado por
Author Sebastian V.
Fecha de publicación

12/04/2025

Tiempo de lectura

5 min

Tema

@keyframes

El nombre es el hilo invisible que conecta todo

Imagina que escribes una canción y la guardas en un estudio de grabación bajo un nombre. Más tarde, cuando quieres que suene en un local, llamas al estudio y dices ese nombre. El estudio la busca y la reproduce. Si el nombre que recuerdas no coincide exactamente con el nombre que usaste al guardarla, el estudio no sabe de qué hablas.

Eso es exactamente lo que ocurre con animation-name. Tú defines un bloque @keyframes con un nombre, y luego usas ese nombre en la propiedad animation-name del selector CSS. El navegador busca ese nombre y conecta los fotogramas al elemento. Si hay cualquier diferencia —un carácter extra, una mayúscula distinta— la animación simplemente no ocurre, sin ningún mensaje de error.

Cómo funciona la vinculación

La vinculación entre keyframes y elemento es estrictamente por coincidencia de nombre. Y aquí hay algo que atrapa a mucha gente: la propiedad es case-sensitive. fadeIn y fadein son nombres completamente distintos para el navegador.

> _
/* 1. Definimos la animación */
@keyframes slideInRight {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

/* 2. La vinculamos al elemento */
.toast-notification {
  animation-name: slideInRight;
  animation-duration: 0.4s;
}

Convenciones de nomenclatura que usan los profesionales

No existe un estándar oficial, pero hay dos convenciones que dominan el mundo real:

  • kebab-case: Todo en minúsculas, palabras separadas por guiones: fade-in-down, rotate-spinner, slide-from-right. Es el preferido para CSS puro por su legibilidad.
  • camelCase: Primera palabra en minúscula, resto capitalizadas: fadeInDown, rotateSpinner. Muy común cuando el CSS lo genera o consume JavaScript.

El consejo más valioso: elige la convención que te resulte más natural y apégate a ella en todo el proyecto. La inconsistencia es enemiga del mantenimiento.

Los nombres que jamás debes usar

  • none: Le dice al navegador que no hay ninguna animación aplicada. Usar este nombre en tu @keyframes causará conflictos imposibles de depurar.
  • initial, inherit, unset, default: Son palabras clave globales de CSS. El navegador las interpretará como instrucciones, no como nombres.

Aplicar más de una animación al mismo elemento

Una de las capacidades más poderosas de CSS es que puedes ejecutar múltiples animaciones simultáneamente en el mismo elemento, simplemente separando los nombres por comas. Cada animación mantiene sus propias propiedades de duración, delay y easing:

> _
.hero-image {
  animation-name: fadeIn, floatEffect;
  animation-duration: 1s, 4s;
}

Consejo profesional

Mantener tus @keyframes agrupados al final del archivo CSS, o en un archivo exclusivo de utilidades de animación, ayuda a mantener el orden de tus proyectos.

Ejemplo práctico

> _
<div class="link-demo">
  <div class="glow-box">Genesis Pixel</div>
</div>
> _
Genesis Pixel

Una caja de texto que brilla gracias a la animación vinculada textGlowEffect.

Errores comunes

01
Errores tipográficos o de mayúsculas Si defines @keyframes fadeIn y usas animation-name: fadein, la animación fallará de forma silenciosa.
02
Nombres duplicados Si declaras dos @keyframes con el mismo nombre en diferentes archivos cargados, prevalecerá la última regla leída.
03
Intentar usar variables CSS directamente Declarar animation-name: var(--mi-nombre) puede no funcionar correctamente en ciertos navegadores antiguos.

Practica lo aprendido

Crea una animación que haga rotar un elemento y vincúlala correctamente asegurándote de no usar términos reservados.

01 Elige un nombre claro y descriptivo para tu @keyframes
02 Asigna el valor exacto a la propiedad animation-name de tu selector
03 Asegúrate de respetar mayúsculas y minúsculas (es case-sensitive)
04 Evita colisiones con nombres reservados o repetidos