transition: 0.3s
scale(1.1)
rotate(15deg)
translateY(-5px)
HTML & CSSSesión 13

Transiciones y
transformaciones CSS

Añadir movimiento y efectos visuales a los elementos con transiciones y transformaciones.

1

Transiciones CSSAnimar cambios de propiedades de forma suave

Las transiciones permiten animar el cambio de una propiedad CSS de forma suave, en lugar de que sea instantáneo.

/* Sintaxis: propiedad duración función-temporal retraso */ .button { background-color: #4CAF50; color: white; padding: 12px 24px; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease; } .button:hover { background-color: #45a049; }
Propiedad Descripción Valores
transition-propertyQué propiedad se animaall, background-color, transform, etc.
transition-durationCuánto dura la animación0.3s, 500ms
transition-timing-functionCurva de aceleraciónease, linear, ease-in, ease-out, ease-in-out
transition-delayRetraso antes de empezar0s, 0.2s

Transición múltiple

.link { color: #333; text-decoration: none; padding-bottom: 2px; border-bottom: 2px solid transparent; transition: color 0.3s ease, border-bottom-color 0.3s ease; } .link:hover { color: #4CAF50; border-bottom-color: #4CAF50; }
2

Transformaciones CSSModificar la apariencia visual sin afectar el flujo

/* Escalar (agrandar/reducir) */ img.zoom:hover { transform: scale(1.1); } /* Rotar */ .icono:hover { transform: rotate(15deg); } /* Trasladar (mover) */ .card:hover { transform: translateY(-5px); } /* Inclinar */ .banner { transform: skewX(-5deg); } /* Combinar transformaciones */ .button-3d:hover { transform: scale(1.05) translateY(-3px); }
3

Ejemplos prácticosTarjetas, botones, zoom e iconos animados

Tarjeta animada

.card { background-color: white; border-radius: 10px; padding: 20px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); transition: box-shadow 0.3s ease, transform 0.3s ease; } .card:hover { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); transform: translateY(-5px); }

Zoom de imagen

.image-container { overflow: hidden; /* Oculta la parte que se sale */ border-radius: 8px; } .image-container img { width: 100%; transition: transform 0.4s ease; } .image-container img:hover { transform: scale(1.15); }

Botón con múltiples efectos

.btn-animated { display: inline-block; padding: 12px 30px; background-color: #3498db; color: white; border: none; border-radius: 25px; transition: all 0.3s ease; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); } .btn-animated:hover { background-color: #2980b9; transform: translateY(-3px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); } .btn-animated:active { transform: translateY(-1px); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2); }

Rotación en iconos

.social-icon { display: inline-block; font-size: 24px; color: #333; margin: 0 10px; transition: color 0.3s ease, transform 0.3s ease; } .social-icon:hover { color: #3498db; transform: rotate(360deg) scale(1.2); }
4

Playground de transicionesAjusta los valores y observa el efecto en tiempo real

Controles

0.5s
1.2
-10px
Hover me
Duración: 0.5s
Scale: 1.2
Rotate:
TranslateY: -10px
5

Ejercicio prácticoAplica transiciones y transformaciones a tu proyecto

Tareas de la sesión

  1. Añade una transición suave de color al pasar el ratón sobre los botones de tu formulario.
  2. Crea un efecto de zoom en las imágenes dentro de un contenedor con overflow: hidden.
  3. Haz que las tarjetas (.card) se eleven ligeramente al pasar el ratón (translateY(-5px)) con una sombra más intensa.
  4. Crea un botón con bordes redondeados que cambie de color de fondo y se mueva hacia arriba al hacer hover.
  5. Experimenta con transform: rotate() en algún elemento decorativo.
  6. Crea un menú de navegación donde los enlaces tengan una animación de borde inferior al pasar el ratón (de transparente a un color visible).
  7. Combina varias transformaciones en un mismo hover (por ejemplo, scale + translateY).