CodeForge

Maquetación Web Dinámica / Transformaciones y transiciones

transform 2D: mover, escalar y rotar sin romper nada

Teoría20 min20 XP

Hasta hoy, mover un elemento significaba pelear con el layout: márgenes que empujan vecinos, position que saca del flujo. transform es otra cosa: mueve, agranda, gira e inclina lo que sea SIN que el resto de la página se entere. Es la propiedad sobre la que se construye TODA la animación web profesional — y este módulo entero.

La ficha que se levanta del tablero

Las cuatro operaciones

transform.css

Un detalle que vale oro: en translate, los porcentajes se refieren al tamaño del propio elemento, no del padre. translateX(-50%) significa "muévete la mitad de TU ancho hacia la izquierda" — de ahí sale el centrado absoluto translate(-50%, -50%) que usaste en el módulo 7, que funciona sin importar cuánto mida el elemento.

Míralas en acción

Por qué transform no rompe el layout

Cuando cambias width, margin o top, el navegador tiene que RECALCULAR la geometría de la página: qué mide cada caja, qué empuja a qué (el trabajo que en el módulo 3 llamamos "el flujo"). transform se salta todo eso: el layout ya está calculado y congelado, y la transformación se aplica al final, como una operación de dibujo sobre el resultado. Consecuencias directas:

  1. Es barato: no dispara recálculos en cadena. Por eso es LA propiedad para animar (la regla formal llega en el módulo 11).
  2. No afecta a los vecinos: puedes escalar una tarjeta al hacer hover sin que la galería entera baile.
  3. El espacio original se conserva: si trasladas un elemento 200px, su hueco sigue ahí. Si eso no es lo que quieres, la herramienta era position (módulo 7), no transform.

Quieres que una tarjeta 'flote' 8px hacia arriba al hacer hover, sin que las tarjetas de al lado se muevan. ¿Qué usas?

Combinar: el orden ES el resultado

orden.css

Las transformaciones se aplican en orden y cada una hereda el sistema de coordenadas que dejó la anterior: después de rotar 45°, "la derecha" del elemento apunta en diagonal. Si combinas y el resultado se ve raro, lo primero que debes revisar es el orden.

Y una modernización que te va a simplificar la vida: translate, scale y rotate existen también como propiedades individuales, y al ser independientes puedes cambiar una sin repetir las otras:

individuales.css

Soportadas en todos los navegadores desde 2022. En este curso verás ambas sintaxis: la clásica en transform (la que usan el 95% de los tutoriales y código existente) y las individuales cuando separar aporta claridad.

Mini-reto

Abre tu periódico "El Observador" y dale vida a las tarjetas de noticia: translateY(-6px) con una sombra sutil al hacer hover. Luego rompe algo a propósito: reemplaza el translateY por margin-top: -6px y observa cómo la fila entera tiembla. Sentir esa diferencia en tu propio layout vale más que releer la teoría.

Qué sigue

Girar está fácil... hasta que necesitas girar SOBRE un punto concreto: una manecilla de reloj no rota sobre su centro. Ese punto de pivote tiene nombre — transform-origin — y en el corazón del módulo 9 ya lo usaste sin la teoría. Ahora la teoría.