Proyecto Final de Transform
Redactado por
Sebastian V. Fecha de publicación
31/07/2024
Tiempo de lectura
12 min
Tema
CSS Transform
Todo lo que aprendiste, en un solo proyecto
Has llegado hasta aquí. Has aprendido a mover elementos con translate, a escalarlos con scale, a girarlos con rotate, a distorsionarlos con skew, a controlar su origen de transformación, a combinar múltiples efectos y a sumergirte en el espacio tridimensional del navegador.
Ahora es el momento de juntar todo eso en algo real. Algo que puedas mostrar, compartir y usar como punto de partida en tus proyectos. El objetivo de este proyecto final no es que copies el código: es que lo entiendas lo suficiente como para adaptarlo y hacerlo tuyo.
Consejo profesional
En producción, asegúrate de respetar las preferencias de movimiento reducido del sistema operativo del usuario. Usa @media (prefers-reduced-motion: reduce) para desactivar o simplificar las animaciones. Un usuario con epilepsia fotosensible o vértigo puede verse seriamente afectado por animaciones de rotación continua.
Proyecto 1 — Tarjeta Tilt Interactiva
Una tarjeta que sigue al ratón en 3D usando rotateX y rotateY calculados con JavaScript. El efecto de brillo (highlight) se mueve con la posición del cursor usando una variable CSS dinámica.
<div class="escena-tarjeta-3d">
<div class="tarjeta-3d" id="tarjeta-tilt">
<div class="brillo"></div>
<div class="contenido-tarjeta">
<span class="badge">Premium</span>
<h3 style="color: var(--color-bg)">Genesis Pixel</h3>
<p style="color: var(--color-bg); opacity: 0.7; font-weight: 700; font-family: var(--font-afronaut, system-ui, sans-serif);">Mueve el ratón sobre la tarjeta</p>
</div>
</div>
</div> Genesis Pixel
Mueve el ratón
Mueve el ratón sobre la tarjeta. El tilt 3D sigue la posición exacta del cursor y el brillo se posiciona bajo el ratón usando una variable CSS personalizada.
Proyecto 2 — Loader de Tres Anillos
Tres anillos concéntricos, cada uno rotando a velocidad y dirección distinta, creando un spinner premium que transmite procesamiento activo con distintas capas de actividad.
<div class="loader-avanzado">
<div class="anillo anillo-1"></div>
<div class="anillo anillo-2"></div>
<div class="anillo anillo-3"></div>
</div> Tres anillos con distintas velocidades (1s, 0.7s, 0.5s) y direcciones (normal, reverse, normal). La combinación crea un spinner visualmente rico sin JavaScript.
Desafío final
Combina la tarjeta tilt con el loader: cuando pases el ratón sobre la tarjeta, aparece un overlay con el loader (simulando que se está cargando contenido). Al salir el ratón, desaparece. Usa todas las técnicas del capítulo.