Transformaciones 2D y 3D en CSS

Aprende translate, rotate, scale, skew, perspectiva y preserve-3d para crear interacciones fluidas y composiciones visuales avanzadas.

Las transformaciones se aplican en la fase de composición, por lo que suelen rendir mejor que cambios de layout como top/left o width/height.

En 2D trabajarás con translate, rotate, scale y skew; en 3D entran perspective, rotateX/rotateY y transform-style: preserve-3d.

transform-origin define el pivote del movimiento y puede convertir una animación correcta en una animación confusa si está mal elegido.

La clave profesional no es usar muchos efectos, sino usar transformaciones con intención: jerarquía visual, feedback y continuidad espacial.

  • Primero comunica estado, después añade estilo.
  • translate se usa para microinteracciones y ajustes visuales suaves; rotate y scale son muy útiles para feedback de botones, chips y tarjetas clicables.
  • Evita valores extremos: una buena transformación debe ser rápida, legible y coherente con la acción del usuario.
  • Regla práctica: usa duraciones cortas (120ms-220ms) para hover/focus y combina transform con estados claros de color/sombra.
  • La perspectiva vive en el contenedor; la rotación, en el objeto.

Transformaciones 2D con intención UX

Primero comunica estado, después añade estilo.

translate se usa para microinteracciones y ajustes visuales suaves; rotate y scale son muy útiles para feedback de botones, chips y tarjetas clicables.

Evita valores extremos: una buena transformación debe ser rápida, legible y coherente con la acción del usuario.

Regla práctica: usa duraciones cortas (120ms-220ms) para hover/focus y combina transform con estados claros de color/sombra.

Base de 3D: perspective y preserve-3d

La perspectiva vive en el contenedor; la rotación, en el objeto.

perspective controla la profundidad percibida: cuanto menor el valor, más dramático se ve el efecto 3D.

transform-style: preserve-3d permite que los hijos mantengan su posición espacial. Sin esta propiedad, el efecto suele verse plano.

En componentes reales (tarjetas, cubos de producto, iconos), combina 3D con transiciones suaves para evitar mareo visual.

transform-origin: el pivote importa

Cambiar el pivote cambia el significado del movimiento.

El valor por defecto es center center. Si cambias a top left o left center, la sensación pasa de giro centrado a bisagra lateral.

Para menús desplegables suele funcionar transform-origin: top center; para paneles laterales, left center o right center.

Cuando el origen es parte de la intención visual del diseño, documéntalo en el componente para que no se rompa en refactors.

Rendimiento y accesibilidad

Animar mejor también es respetar al usuario.

Prefiere transform y opacity para animaciones frecuentes: suelen ser más fluidas porque no fuerzan reflow completo.

Evita animaciones continuas innecesarias. En interfaces densas, demasiada animación reduce claridad cognitiva.

Respeta preferencias de movimiento con media query: @media (prefers-reduced-motion: reduce) y ofrece una versión estática o con transición mínima.

CSS
46

Transformaciones 2D y 3D en CSS

Aprende translate, rotate, scale, skew, perspectiva y preserve-3d para crear interacciones fluidas y composiciones visuales avanzadas.

Código del tema: display: grid; gap: 1rem;

📘 Teoría

Transformaciones 2D con intención UX

Primero comunica estado, después añade estilo.

1

translate se usa para microinteracciones y ajustes visuales suaves; rotate y scale son muy útiles para feedback de botones, chips y tarjetas clicables.

2

Evita valores extremos: una buena transformación debe ser rápida, legible y coherente con la acción del usuario.

3

Regla práctica: usa duraciones cortas (120ms-220ms) para hover/focus y combina transform con estados claros de color/sombra.

Base de 3D: perspective y preserve-3d

La perspectiva vive en el contenedor; la rotación, en el objeto.

1

perspective controla la profundidad percibida: cuanto menor el valor, más dramático se ve el efecto 3D.

2

transform-style: preserve-3d permite que los hijos mantengan su posición espacial. Sin esta propiedad, el efecto suele verse plano.

3

En componentes reales (tarjetas, cubos de producto, iconos), combina 3D con transiciones suaves para evitar mareo visual.

transform-origin: el pivote importa

Cambiar el pivote cambia el significado del movimiento.

1

El valor por defecto es center center. Si cambias a top left o left center, la sensación pasa de giro centrado a bisagra lateral.

2

Para menús desplegables suele funcionar transform-origin: top center; para paneles laterales, left center o right center.

3

Cuando el origen es parte de la intención visual del diseño, documéntalo en el componente para que no se rompa en refactors.

Rendimiento y accesibilidad

Animar mejor también es respetar al usuario.

1

Prefiere transform y opacity para animaciones frecuentes: suelen ser más fluidas porque no fuerzan reflow completo.

2

Evita animaciones continuas innecesarias. En interfaces densas, demasiada animación reduce claridad cognitiva.

3

Respeta preferencias de movimiento con media query: @media (prefers-reduced-motion: reduce) y ofrece una versión estática o con transición mínima.

🧭 Visuales clave

Transformaciones y transform-origin

Refuerza por que el orden de funciones transform cambia el resultado visual.

Aplicacion combinada de translate rotate y scale sobre un elemento.

🧪 Aprende probando

Ejemplo Demo interactiva: pivote, rotación y escala Compara cómo cambian la sensación y legibilidad según transform-origin e intensidad.
Ejemplo Demo interactiva: transformaciones 3D guiadas por scroll Explora rotaciones en X/Y, profundidad y `preserve-3d` en una demo inmersiva controlada por el desplazamiento.

🏁 Retos

Reto Reto: tarjeta giratoria 3D Configura perspectiva y oculta la cara trasera.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre CSS.

Test de CSS
CodePen: Keyframes y transform
Abrir en CodePen

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com