Communitygithub.com

motion-for-apple-platforms

Cómo se mueven las interfaces de Apple: el vocabulario de muelles de SwiftUI (.smooth, .snappy, .bouncy) y cuándo aplica cada uno, transiciones interrumpibles y guiadas por gestos, transiciones héroe/continuidad entre pantallas, microinteracciones y emparejamiento háptico, y el respeto por Reducir Movimiento. Úsalo al animar cualquier cosa que deba sentirse como Apple, en cualquier plataforma: una transición de SwiftUI, una animación CSS o Framer Motion en la web, una presentación de hoja o modal, una pulsación de botón, un estado de carga o éxito, o cuando una IU es técnicamente correcta pero se siente rígida, flotante o con retraso. También úsalo al revisar movimientos que sobrepasan, rebotan donde no deberían o no se pueden interrumpir a mitad de vuelo. Para las reglas de Apple sobre *si* animar, usa hig-guide; para color, tipografía y geometría de controles, usa ui-kit-for-apple-platforms.

¿Qué es motion-for-apple-platforms?

Este skill es la referencia definitiva sobre cómo deben moverse las interfaces de Apple, basándose en el vocabulario de muelles (springs) de SwiftUI, la interrumpibilidad y el seguimiento de gestos. Es útil cuando diseñas animaciones para cualquier plataforma que busquen sentirse nativas de Apple: transiciones SwiftUI, animaciones web con CSS o Framer Motion, presentaciones de hojas o modales, pulsaciones de botones, estados de carga o éxito. También cuando revisas movimientos que se sienten rígidos, flotantes o que no se pueden interrumpir. El skill destaca que la clave no está en la duración, sino en el tipo de muelle elegido: `.smooth` (sin rebote, para transiciones discretas), `.snappy` (rebote ligero, para manipulación directa) y `.bouncy` (rebote notable, para momentos gratificantes). Además, cubre microinteracciones, retroalimentación háptica, transiciones héroe y la obligatoriedad de respetar `prefers-reduced-motion` en la web. No es una especificación oficial de Apple: los nombres de muelles provienen de la API de SwiftUI, los principios provienen de HIG y el resto son observaciones de aplicaciones en producción. Úsalo junto con `hig-guide` para decidir *si* animar y con `ui-kit-for-apple-platforms` para colores, tipografía y geometría.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/doppe7gangar/hig/tree/main/.claude/skills/motion-for-apple-platforms

Preguntar en tu IA favorita

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

Documentación

Movimiento de Apple

La HIG cubre el movimiento como principio y se detiene ahí. Su página de Movimiento tiene 92 líneas sobre si animar — con propósito, de forma opcional, siguiendo el gesto — y ni un solo parámetro de muelle. Todo sobre cómo se construye realmente el movimiento vive fuera de ella, por lo que esto existe.

ArchivoQué contiene
references/motion-animation.mdEl vocabulario de muelles, duraciones, tipos de transición, interrumpibilidad.
references/microinteractions-feedback.mdEstados de pulsación, carga, retroalimentación de éxito y error, emparejamiento háptico.
references/gestures-interaction.mdDeslizamiento, arrastre, pellizco, gestos de borde y cómo el movimiento debe seguirlos.

De dónde viene cada cosa

Vale la pena ser claro, porque las tres fuentes tienen una posición muy diferente y mezclarlas es cómo los consejos sobre movimiento se convierten en folklore:

  • Principios → hig-guide. "Añade movimiento con propósito." "Haz el movimiento opcional." "Busca un movimiento de retroalimentación realista que siga los gestos y expectativas de las personas." Estas son las propias palabras de Apple, en Motion. Cita esas, no las paráfrasis aquí.
  • Nombres de muelles y su comportamiento → API de SwiftUI. .smooth, .snappy, .bouncy son API reales con valores predeterminados reales. Los porcentajes de rebote en motion-animation.md son caracterizaciones de ellos, no constantes publicadas — trátalos como un punto de partida que ajustas, y no los cites como especificación de Apple.
  • Todo lo demás → observación. Estas referencias están adaptadas de la colección apple-design-skills con licencia MIT (aviso en LICENSE.txt) y están marcadas con [observed] donde el autor infirió el comportamiento de aplicaciones en producción. Útiles, no autoritativas.

Nada de esto está medido como los valores de ui-kit-for-apple-platforms. Esa distinción es el punto: el movimiento es la parte de este repositorio con menos verdad fundamental detrás.

Elegir un muelle

La única decisión que determina la mayor parte de la sensación:

MuelleReboteUsar para
.smoothningunoHojas, modales, transiciones de fondo — cualquier cosa que deba asentarse sin llamar la atención
.snappyligeroPulsaciones de botón, interruptores, selección — el valor predeterminado para manipulación directa
.bouncynotablePulsaciones de iconos, notificaciones que llegan, momentos que deben sentirse gratificantes

El rebote es toda la señal. Una hoja que rebota se lee como de juguete; una pulsación de botón que no rebota se lee como muerta. Acertar con esta única elección hace más que ajustar duraciones.

Qué separa el movimiento de Apple del movimiento ordinario

  • Interrumpible. Un gesto debe poder revertir o redirigir una animación a mitad de vuelo en lugar de encolarla detrás. Cualquier cosa que termina antes de que responda se siente con retraso, sin importar lo rápida que sea.
  • Sigue el dedo, luego toma el control. Durante un arrastre, la superficie sigue el gesto 1:1; el muelle solo toma el control al soltar, llevando la velocidad que tenía el gesto. Esto es el "movimiento de retroalimentación realista que sigue los gestos y expectativas de las personas" de la HIG hecho concreto.
  • La duración es una consecuencia, no una entrada. Los muelles se especifican mediante física y se estabilizan cuando se estabilizan. Recurrir a 300 ms fijos generalmente significa recurrir a la herramienta equivocada.
  • Posición y opacidad, no tamaño y color. Mover y desvanecer se leen como físicos; escalar y recolorar se leen como efectos.

Reducir Movimiento no es opcional

hig-guide lo indica claramente — "Haz el movimiento opcional." En la web eso es prefers-reduced-motion, y significa reemplazar el movimiento, no simplemente acortarlo: fundido cruzado en lugar de deslizamiento, corte en lugar de animar. ios-components.css de ui-kit-for-apple-platforms ya protege sus propias transiciones de esta manera; emúlanlo.

Límites

  • Valores — color, tipografía, geometría de controles, materiales — pertenecen a ui-kit-for-apple-platforms, medidos del kit de UI de Apple. No los repitas aquí; un código hexadecimal en un archivo de movimiento es un código hexadecimal que quedará obsoleto en algún lugar donde nadie mire.
  • Reglas sobre si algo debe animarse, qué presentación usar, cómo se adaptan los diseños — hig-guide, con las citas reales.
  • Este skill cubre cómo se construye el movimiento en sí.

Skills relacionados