Transformaciones

Clase 28 de 32Curso de CSS

Resumen

Domina las transformaciones CSS con ejemplos claros y prácticos. Aprende a mover, rotar y escalar elementos con translate, rotate y scale, usando hover como trigger y transition para suavizar el cambio. Además, configura un layout flexible con flexbox para visualizar tus cajas en columnas con buen espaciado.

¿Cómo preparar el contenedor y los elementos con flex y estilos base?

Antes de animar, conviene definir una base visual clara. Un container con display: flex permite alinear y separar elementos de forma sencilla. Cada box tendrá tamaño fijo, color de fondo y centrado de texto.

¿Qué propiedades dan estructura y espaciado?

  • Usa display: flex para organizar en columnas o filas.
  • Aplica gap: 30px para separar elementos.
  • Añade margin-bottom: 40px y padding: 20px para respirar.
  • Define background: #f0f0f0 para contraste suave.
  • Crea box de 100px x 100px con background: #3498DD y texto blanco.
  • Centra contenido con align-items: center y justify-content: center.
.container {
  display: flex;
  gap: 30px;
  margin-bottom: 40px;
  padding: 20px;
  background: #f0f0f0;
}

.box {
  width: 100px;
  height: 100px;
  background: #3498DD;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

¿Cómo suavizar cambios con transition en transform?

  • Añade transition: transform 0.3s para evitar saltos bruscos.
  • Mejora la percepción del movimiento y la interacción.
.box {
  /* ...estilos previos... */
  transition: transform 0.3s;
}

¿Cómo mover elementos con translateX, translateY y en diagonal?

translate desplaza un elemento desde su posición original sin afectar al resto del layout. El trigger será :hover para visualizar el movimiento al pasar el cursor.

¿Qué hace translateX y translateY en hover?

  • translateX(30px) mueve 30 píxeles en horizontal.
  • translateY(-30px) mueve 30 píxeles hacia arriba con valor negativo.
.translate-x:hover { transform: translateX(30px); }
.translate-y:hover { transform: translateY(-30px); }
  • Con transition, el desplazamiento se ve sutil y fluido.
  • Útil cuando quieres indicar interactividad sin reflow del documento.

¿Cómo mover en diagonal con translate?

  • Pasa dos valores: x, y.
  • Un ejemplo común: translate(20px, 20px) para ir a la derecha y abajo.
.translate-xy:hover { transform: translate(20px, 20px); }
  • Recuerda: el trigger es hover, pero puedes usar otros según la interacción deseada.

¿Cómo rotar y escalar con rotate y scale?

rotate gira el elemento desde su centro por defecto (puedes cambiarlo con transform-origin). scale modifica el tamaño relativo sin romper el flujo.

¿Cómo rotar desde el centro con rotate?

  • Define el ángulo en grados: 45deg, 90deg, 180deg.
.rotate-45:hover { transform: rotate(45deg); }
.rotate-90:hover { transform: rotate(90deg); }
.rotate-180:hover { transform: rotate(180deg); }
  • El giro sucede sobre el centro si no especificas otro punto.
  • Ideal para expresar estados o direcciones de forma visual.

¿Cómo reducir o ampliar con scale?

  • scale(0.5) reduce a la mitad.
  • scale(1.5) aumenta 1.5 veces.
  • scale(2) duplica el tamaño.
.scale-small:hover { transform: scale(0.5); }
.scale-medium:hover { transform: scale(1.5); }
.scale-2x:hover { transform: scale(2); }
  • Usa transition: transform 0.3s para evitar cambios bruscos.
  • Aplica valores según el objetivo visual del diseño.

¿Quieres que mostremos combinaciones de transformaciones o triggers alternativos como focus o eventos de JavaScript? Cuéntalo en los comentarios y sumamos ejemplos.