Curso de tailwind CSS
En este módulo, desarrollaremos una landing page moderna utilizando Tailwind CSS, donde implementaremos dark mode, añadiremos animaciones y transiciones para mejorar la experiencia de usuario (UI/UX), y nos aseguraremos de que sea completamente responsiva para todos los dispositivos.
Creación de una landing page moderna con Tailwind CSS
-
Estructura básica del HTML A continuación, creamos la estructura básica de una landing page con una cabecera (header), una sección de características (features), y una llamada a la acción (CTA).
1<!DOCTYPE html> 2<html lang="es"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link href="dist/output.css" rel="stylesheet"> 7 <title>Landing Page</title> 8</head> 9<body class="bg-gray-100 dark:bg-gray-900 text-gray-900 dark:text-gray-100"> 10 11 <!-- Header --> 12 <header class="bg-white dark:bg-gray-800 shadow-md"> 13 <div class="container mx-auto p-4 flex justify-between items-center"> 14 <h1 class="text-2xl font-bold">Mi Página</h1> 15 <nav> 16 <ul class="flex space-x-4"> 17 <li><a href="#" class="hover:text-blue-500">Inicio</a></li> 18 <li><a href="#" class="hover:text-blue-500">Características</a></li> 19 <li><a href="#" class="hover:text-blue-500">Contacto</a></li> 20 </ul> 21 </nav> 22 </div> 23 </header> 24 25 <!-- Features Section --> 26 <section class="container mx-auto py-16"> 27 <div class="text-center mb-12"> 28 <h2 class="text-4xl font-semibold">Características</h2> 29 <p class="text-lg text-gray-700 dark:text-gray-300">Explora lo que nuestra plataforma ofrece</p> 30 </div> 31 <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> 32 <div class="p-6 bg-white dark:bg-gray-800 shadow-lg rounded-lg transition duration-300 hover:shadow-2xl"> 33 <h3 class="text-2xl font-bold mb-4">Característica 1</h3> 34 <p>Descripción de la característica 1.</p> 35 </div> 36 <div class="p-6 bg-white dark:bg-gray-800 shadow-lg rounded-lg transition duration-300 hover:shadow-2xl"> 37 <h3 class="text-2xl font-bold mb-4">Característica 2</h3> 38 <p>Descripción de la característica 2.</p> 39 </div> 40 <div class="p-6 bg-white dark:bg-gray-800 shadow-lg rounded-lg transition duration-300 hover:shadow-2xl"> 41 <h3 class="text-2xl font-bold mb-4">Característica 3</h3> 42 <p>Descripción de la característica 3.</p> 43 </div> 44 </div> 45 </section> 46 47 <!-- CTA Section --> 48 <section class="bg-blue-500 py-16"> 49 <div class="container mx-auto text-center text-white"> 50 <h2 class="text-3xl font-bold mb-4">¿Listo para empezar?</h2> 51 <p class="mb-8">Regístrate hoy y aprovecha nuestras características.</p> 52 <a href="#" class="bg-white text-blue-500 px-8 py-3 rounded-full hover:bg-gray-100 transition duration-300">Empezar</a> 53 </div> 54 </section> 55 56</body> 57</html> -
Estructura explicada:
- Header: Contiene el logotipo de la página y un menú de navegación.
- Features Section: Muestra tres características con un diseño moderno, utilizando
gridpara un diseño responsivo. - CTA Section: Una llamada a la acción clara y atractiva con un botón centrado.
Implementación de dark mode
Tailwind CSS facilita la implementación de dark mode. Al configurar la clase dark en el elemento <body>, se pueden definir estilos tanto para el modo claro como para el modo oscuro.
-
Activar dark mode en el archivo
tailwind.config.js:1module.exports = { 2 darkMode: 'class', // o 'media' para activar automáticamente según la configuración del sistema 3 theme: { 4 extend: {}, 5 }, 6 plugins: [], 7} -
Cambiar entre dark y light mode: Para que los usuarios puedan alternar entre dark mode y light mode, podemos añadir un botón en el
headerque cambie la clasedarken el<body>.1<button id="dark-mode-toggle" class="bg-gray-800 text-white p-2 rounded">Modo Oscuro</button> 2 3<script> 4 const toggleButton = document.getElementById('dark-mode-toggle'); 5 const body = document.body; 6 7 toggleButton.addEventListener('click', () => { 8 body.classList.toggle('dark'); 9 }); 10</script>Ahora, el botón permitirá cambiar entre el modo claro y oscuro al hacer clic.
Referencia: Implementación de Dark Mode en Tailwind
Uso de animaciones y transiciones para mejorar la UI/UX
Las transiciones y animaciones ayudan a mejorar la experiencia del usuario al suavizar los cambios visuales y hacer la interfaz más interactiva. Tailwind proporciona utilidades predefinidas para ambas.
-
Transiciones (
transition): Puedes aplicar transiciones suaves a cualquier cambio de estado, como en el ejemplo anterior de las tarjetas de características:1<div class="transition duration-300 hover:shadow-2xl">...</div>Aquí se aplica una transición de 300ms cuando el usuario pasa el mouse sobre la tarjeta (
hover:shadow-2xl), lo que mejora la experiencia visual. -
Animaciones (
animate): Para animaciones más complejas, puedes usar las clasesanimate-. Tailwind incluye animaciones predefinidas comoanimate-bounce,animate-spin,animate-pulse, entre otras.Ejemplo de un botón con animación:
1<a href="#" class="bg-blue-500 text-white px-8 py-3 rounded-full animate-bounce">Empezar</a>Este botón "salta" repetidamente, atrayendo la atención del usuario.
Referencia: Transiciones y Animaciones en Tailwind
Implementación de diseño completamente responsivo
Tailwind CSS facilita la creación de layouts adaptativos mediante sus clases utilitarias y breakpoints. Ya vimos en módulos anteriores cómo usar breakpoints (sm:, md:, lg:, etc.) para adaptar el diseño a diferentes tamaños de pantalla.
-
Diseño adaptativo con Grid: El diseño de la sección de características utiliza
gridpara crear un layout con una columna en móviles y tres columnas en pantallas más grandes:1<div class="grid grid-cols-1 md:grid-cols-3 gap-8">...</div> -
Uso de clases responsivas en el contenedor: El uso de
container mx-autoasegura que el contenido esté centrado en pantallas grandes y que el diseño sea fluido en pantallas pequeñas. -
Adaptación de tipografía y tamaños: Puedes ajustar los tamaños de texto o paddings según el tamaño de la pantalla usando las clases de breakpoints:
1<h2 class="text-2xl md:text-4xl">Título adaptativo</h2>En este ejemplo, el tamaño del texto cambiará de
2xlen pantallas pequeñas a4xlen pantallas medianas o más grandes.
Referencia: Documentación sobre diseño responsivo
Conclusión
En este proyecto final, hemos cubierto cómo crear una landing page moderna utilizando Tailwind CSS, implementando características clave como dark mode, transiciones y animaciones para mejorar la UI/UX, y asegurándonos de que el diseño sea completamente responsivo para ofrecer una experiencia óptima en cualquier dispositivo. Este proyecto te da una base sólida para construir páginas web modernas y atractivas con Tailwind.