Communitygithub.com

motion

Úsalo al añadir, revisar o corregir animaciones y transiciones en una interfaz web: feedback al pasar el ratón, modales, desplegables, toasts, revelaciones al hacer scroll, muelles (springs), easing y duraciones. Decide si algo debería animarse y cómo, con soporte para movimiento reducido.

¿Qué es motion?

Esta skill proporciona una guía completa y reglas de diseño para crear animaciones y transiciones UI profesionales y accesibles. Define criterios claros sobre cuándo animar (nunca en acciones frecuentes, solo con moderación en elementos ocasionales) y especifica valores precisos para easing, duración y técnicas de implementación. La skill recomienda animar exclusivamente transform y opacidad, usar CSS transitions y la View Transitions API siempre que sea posible, y reservar librerías JS (Motion/Framer, React Spring) solo para gestos o secuencias complejas. También incluye una regla obligatoria de soporte para prefers-reduced-motion, reduciendo drásticamente la duración de las animaciones manteniendo cambios de estado visuales. Es útil para revisiones de código: propone un formato de respuesta en tabla (Antes | Después | Por qué) para cada problema encontrado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/F0rger123/CLAUDE-DESIGN-GOD-MODE/tree/main/skills/motion

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace motion?

Motion explica el cambio y confirma la entrada. Si no hace ninguna de las dos cosas, es decoración y necesita una razón.

1. ¿Debería animarse?

Con qué frecuencia lo ve el usuarioDecisión
100+ veces al día (atajos, alternar paleta, escritura)Nunca animar
Decenas de veces (hover, navegación en listas, pestañas)Mínimo o nada (color/opacidad por debajo de 150ms)
Ocasionalmente (modal, cajón, toast, desplegable)Transición estándar
Raramente (onboarding, éxito, hero de primera visita)Espacio para deleite

Nunca animar acciones disparadas por teclado.

2. Easing

  • Al entrar o salir: ease-out fuerte cubic-bezier(.23, 1, .32, 1).
  • Moviéndose en pantalla: ease-in-out cubic-bezier(.77, 0, .175, 1).
  • Cajones/paneles: cubic-bezier(.32, .72, 0, 1).
  • Color/hover: ease. Movimiento constante (marquee, progreso): linear.
  • Nunca ease-in en UI; se siente lento en el momento en que el usuario está mirando.

3. Duración

Presión 100-160ms · tooltip 125-200ms · desplegable 150-250ms · modal/cajón 200-400ms · hero de marketing hasta 800ms. Las salidas ~20% más rápidas que las entradas. El movimiento UI se mantiene por debajo de 300ms.

4. Reglas de oficio

  • Animar solo transform y opacity. Nunca width, height, top, left o transition: all.
  • Nada aparece desde scale(0); comenzar en scale(.95) + opacity: 0.
  • Popovers y menús escalan desde su disparador (transform-origin en el disparador). Los modales se mantienen centrados.
  • Botones: :active { transform: scale(.97) } con una transición de 120ms.
  • Tooltips: retrasar el primero (~400ms); los adyacentes se abren instantáneamente.
  • Escalonar listas 30-50ms por elemento, con un tope total inferior a 400ms.
  • Revelaciones al hacer scroll: como máximo una por página, distancia pequeña (8-16px), ejecutar una vez. No en cada sección.
  • Muelles (springs, Motion/Framer, React Spring) para arrastre, gestos y movimiento interrumpible: { type: "spring", duration: .4, bounce: .15 }. Mantener bounce entre 0.1-0.3, y solo en superficies lúdicas.
  • Preferir transiciones CSS y @starting-style para entrada/salida simples; la API View Transitions para morphs de página/estado; una librería JS solo cuando gestos o secuencias lo requieran.

5. Movimiento reducido (obligatorio)

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

Mantener cambios de opacidad y color de estado; eliminar movimiento, paralaje y sacudidas.

Formato de revisión

Al revisar código de animación, responder con una tabla: | Antes | Después | Por qué |, una fila por problema.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados