La Guía Completa Sobre Tailwind CSS

by Jos Velasco
La Guía Completa Sobre Tailwind CSS thumbnail

Los frameworks de CSS han cambiado la forma en que los desarrolladores abordan el desarrollo web al proporcionar componentes y estilos predefinidos. Sin embargo, muchos frameworks vienen con diseños con opiniones y hojas de estilo infladas que limitan la personalización.

Tailwind CSS toma un enfoque diferente. Como un framework de CSS de utilidades primero, proporciona clases de utilidad de bajo nivel que permiten a los desarrolladores construir diseños personalizados sin estar limitados por componentes predefinidos.

Con más de 675,375 sitios web utilizando Tailwind CSS y más de 8.61 millones de repositorios dependientes, Tailwind se ha convertido en algo más que otro framework de CSS.

En este artículo, repasaremos la comprensión de los conceptos de Tailwind CSS, el proceso de configuración y el uso práctico para que puedas comenzar a construir tus hermosas interfaces de usuario personalizadas sin necesidad de aprender CSS.

¡Empecemos!

¿Qué es Tailwind CSS?

Tailwind CSS es un framework de CSS altamente personalizable y de bajo nivel que proporciona un conjunto de clases de utilidad para construir rápidamente interfaces de usuario personalizadas. Fue desarrollado y lanzado por primera vez por Adam Wathan en 2017.

Desde entonces, Tailwind ha experimentado una trayectoria ascendente en sitios web construidos utilizando la biblioteca Tailwind.

"Estadísticas de uso de Tailwind" del millón de sitios web principales con un gráfico que muestra el crecimiento de Tailwind.

Si bien el crecimiento actualmente parece haberse ralentizado según los gráficos de BuiltWith, el framework en sí se actualiza regularmente con nuevas características, clases y más.

Según los datos de la pila tecnológica de BuiltWith, más de 100,000 sitios web solo en los Estados Unidos utilizan Tailwind para construir sus interfaces de usuario, junto con el Reino Unido, Indonesia, Alemania y otros países que figuran entre los 10 principales usuarios de esta biblioteca.

Estadísticas de los "10 países principales que utilizan el viento de cola" en un gráfico que muestra a EE. UU. en la parte superior y Brasil en la parte inferior.

La filosofía principal detrás de Tailwind CSS es proporcionar a los desarrolladores un conjunto de bloques de construcción en lugar de componentes predefinidos. Estos bloques de construcción son clases de utilidad pequeñas y de un solo propósito que se pueden combinar para crear diseños complejos y receptivos.

Este enfoque permite una mayor flexibilidad y control sobre el diseño, ya que puedes personalizar cada aspecto de tu IU sin estar limitado por los estilos con opiniones del framework.

¿Qué hace diferente a Tailwind CSS?

Tradicionalmente, al trabajar con CSS, los desarrolladores escriben clases personalizadas en hojas de estilo separadas para estilizar sus elementos HTML. Este enfoque puede llevar a archivos CSS grandes y hacer que sea difícil mantener y actualizar los estilos en todo un proyecto.

Tailwind proporciona un conjunto completo de clases de utilidad que se pueden aplicar directamente a los elementos HTML. Estas clases son altamente componibles, lo que permite a los desarrolladores construir diseños complejos y personalizados sin escribir una sola línea de CSS personalizado.

Por ejemplo, en lugar de escribir una clase de CSS personalizada para estilizar un botón, puedes usar las clases predefinidas de Tailwind de esta manera:

Este enfoque tiene varios beneficios:

  1. Desarrollo más rápido: Las clases predefinidas ayudan a los desarrolladores a construir e iterar rápidamente en diseños sin tener que cambiar constantemente entre archivos HTML y CSS.
  2. Estilo consistente: Tailwind proporciona un conjunto estandarizado de clases, lo que ayuda a mantener la consistencia en el diseño en todo el proyecto.
  3. Archivos CSS más pequeños: Debido a que los estilos se aplican directamente en el HTML, no es necesario tener archivos CSS grandes y personalizados.
  4. Mantenimiento más fácil: Con los estilos definidos en el HTML, es más fácil ver cómo los cambios afectarán a un elemento específico sin tener que buscar en archivos CSS separados.
  5. Mejor rendimiento: Muchos sistemas de estilo modernos como Emotion o Styled Components dependen de JavaScript (generalmente durante el tiempo de ejecución, lo que ralentiza el rendimiento) para renderizar tu CSS. Tailwind es solo CSS al final del día.

Tailwind me convirtió en un desarrollador de stack completo 🤝” 
Boris Lepikhin

Comenzando con Tailwind CSS

Antes de comenzar con ejemplos, configuremos un proyecto básico con Tailwind CSS. Supondremos que tienes cierta familiaridad con HTML y CSS. Además, debes tener npm instalado en tu sistema. ¡Una vez que hayas terminado, estás listo para seguir adelante!

Crea un nuevo directorio para tu proyecto y navega hacia él:

Inicializa un nuevo proyecto npm e instala Tailwind CSS:

Crea un archivo tailwind.config.js:

Crea un archivo input.css y agrega lo siguiente:

Actualiza tu archivo tailwind.config.js para procesar tu input.css:

Crea un archivo index.html en un directorio src y agrega lo siguiente:

Construye tu CSS:

Ahora, cuando abras index.html en tu navegador, deberías ver un título grande y en negrita que dice “Welcome to Tailwind CSS!”

"Welcome to Tailwind CSS!" encabezado en negrita.

¡Felicidades, has configurado tu primer proyecto de Tailwind!

Clases de Utilidad de Tailwind CSS

Tailwind CSS proporciona una amplia gama de clases de utilidad que cubren varios aspectos de estilo, como diseño, espaciado, tipografía, colores y más. Estas clases siguen una convención de nomenclatura que facilita entender su propósito.

[glossary_term_es title=”Tipografía” text=”La tipografía es el proceso de organizar un tipo de letra en variaciones de fuente, tamaño y espaciado. Esto implica hacer que la apariencia, el estilo y la disposición del texto sean legibles y agradables a la vista.”]

Exploraremos algunas clases de utilidad comúnmente utilizadas en Tailwind CSS.

Clases de Diseño de Tailwind

  • flex: Aplica un contenedor flexible.
  • grid: Aplica un contenedor de cuadrícula.
  • block: Muestra un elemento como un elemento de nivel de bloque.
  • inline: Muestra un elemento como un elemento de nivel en línea.

Ejemplo:

Clases de Espaciado de Tailwind

  • m-{tamaño}: Aplica margen en todos los lados.
  • p-{tamaño}: Aplica relleno en todos los lados.
  • mx-{tamaño}: Aplica margen en el lado izquierdo y derecho.
  • py-{tamaño}: Aplica relleno en la parte superior e inferior.

Ejemplo:

Clases de Tipografía de Tailwind

  • text-{tamaño}: Establece el tamaño de la fuente.
  • font-{peso}: Establece el peso de la fuente.
  • text-{color}: Establece el color del texto.
  • uppercase, lowercase, capitalize: Transforma el formato del texto.

Ejemplo:

Colores de Tailwind

Tailwind CSS proporciona una paleta de colores predeterminada que se puede personalizar. Los colores se definen usando una combinación del nombre del color y la sombra.

  • bg-{color}-{intensidad}: Establece el color de fondo.
  • text-{color}-{intensidad}: Establece el color del texto.
  • border-{color}-{intensidad}: Establece el color del borde.

Ejemplo:

Clases de Tailwind para Diseño Responsivo

Tailwind facilita la creación de diseños responsivos al proporcionar variantes responsivas para la mayoría de sus clases de utilidad. Estas variantes te permiten especificar diferentes estilos para diferentes tamaños de pantalla.

Tailwind utiliza un enfoque móvil primero, donde los estilos base se aplican a todos los tamaños de pantalla, y luego se orientan a tamaños de pantalla más grandes utilizando prefijos responsivos:

  • sm: Aplica estilos a pantallas pequeñas y superiores (640px y superiores).
  • md: Aplica estilos a pantallas medianas y superiores (768px y superiores).
  • lg: Aplica estilos a pantallas grandes y superiores (1024px y superiores).
  • xl: Aplica estilos a pantallas extra grandes y superiores (1280px y superiores).
  • 2xl: Aplica estilos a pantallas extra extra grandes y superiores (1536px y superiores).

Para usar estas variantes responsivas, simplemente agrega el tamaño de pantalla deseado como prefijo a la clase de utilidad:

En este ejemplo, el div tendrá un fondo azul en pantallas pequeñas, un fondo verde en pantallas medianas y un fondo rojo en pantallas grandes.

También puedes usar variantes responsivas para controlar el diseño de tus elementos:

Aquí, las columnas se apilarán verticalmente en pantallas pequeñas, se mostrarán en dos columnas en pantallas medianas y en tres columnas en pantallas grandes.

Recibe contenido directamente en tu bandeja de entrada

Suscríbete ahora para recibir todas las últimas actualizaciones, directamente en tu bandeja de entrada.

Personalización de las Clases Predeterminadas de Tailwind CSS

Una de las fortalezas de Tailwind CSS son sus opciones de personalización. Puedes personalizar fácilmente la configuración predeterminada para que coincida con los requisitos de diseño o marca de tu proyecto. El archivo tailwind.config.js te permite extender o anular la configuración predeterminada.

Aquí tienes algunas opciones de personalización comunes. Puedes personalizar completamente cada parte de Tailwind, por lo que esta no es una lista exhaustiva en absoluto.

Colores

Tailwind CSS proporciona una paleta de colores rica de forma predeterminada, pero puedes personalizarla fácilmente para que coincida con los requisitos de diseño o marca de tu proyecto. El archivo tailwind.config.js te permite extender o anular la paleta de colores predeterminada. Para agregar colores personalizados, puedes usar la propiedad extend dentro del objeto de colores:

En este ejemplo, hemos agregado tres colores personalizados: brand-primary, brand-secondary y brand-accent.

Estos colores ahora pueden usarse con clases de utilidad como bg-brand-primary, text-brand-secondary, border-brand-accent, etc. También puedes modificar los tonos de color existentes o agregar nuevos tonos a la paleta de colores predeterminada de la siguiente manera:

Familia de Fuentes

Tailwind CSS utiliza una pila de fuentes predeterminada, pero al igual que los colores, puedes cambiar estos valores predeterminados para que coincidan con el estilo tipográfico de tu proyecto.

En el archivo tailwind.config.js, puedes extender o reemplazar la familia de fuentes predeterminada. Para agregar familias de fuentes personalizadas, usa la propiedad extend dentro del objeto fontFamily:

También puedes reemplazar completamente la familia de fuentes predeterminada omitiendo la propiedad extend:

Puntos de Interrupción Responsivos

Tailwind CSS proporciona un sistema de diseño responsivo listo para usar, pero puedes personalizarlo aún más para que coincida con los puntos de interrupción específicos de tu proyecto y los requisitos responsivos.

Al modificar el objeto screens en el archivo tailwind.config.js, puedes definir puntos de interrupción personalizados y aplicar diferentes estilos según los tamaños de pantalla.

Por ejemplo, digamos que tienes un punto de interrupción único en 1440px donde deseas aplicar estilos específicos:

Con este punto de interrupción personalizado definido, puedes usar clases de utilidad responsivas como xl:text-lg, xl:flex, xl:w-1/2, etc., para aplicar estilos específicamente para pantallas más anchas que 1440px.

Espaciado

Tailwind CSS proporciona un conjunto completo de valores de espaciado para márgenes, rellenos y otras utilidades relacionadas con el espaciado. Puedes personalizar estos valores para que coincidan con los requisitos de diseño de tu proyecto. Para agregar valores de espaciado personalizados, usa la propiedad extend dentro del objeto spacing:

Integración de Bibliotecas de Terceros

Tailwind CSS se integra con bibliotecas y frameworks front-end populares como React, Vue y Angular. Al trabajar con estas bibliotecas, puedes aprovechar las clases de utilidad de Tailwind para estilizar tus componentes y crear interfaces de usuario consistentes y mantenibles. Por ejemplo, en un componente de React, puedes aplicar clases de utilidad de Tailwind directamente a los elementos JSX:

Este enfoque multi-framework hace que sea muy fácil combinar lo mejor de todos los mundos, ayudándote a crear una aplicación hermosa con casi ningún esfuerzo.

Construyendo una Aplicación Simple en Tailwind CSS

Imaginemos que estás construyendo una simple página de inicio para una plataforma de cursos en línea ficticia llamada LearnHub utilizando Tailwind para estilizar toda la página.

Paso 1: Configurando la Estructura HTML

Primero, creemos la estructura básica de HTML para nuestra página de inicio:

En este paso, hemos configurado la estructura básica de nuestro documento HTML. Tenemos la sección <head> donde incluimos las etiquetas meta necesarias y el enlace a nuestro archivo CSS (output.css). Dentro del <body>, tenemos las secciones <header>, <main>, y <footer> donde agregaremos nuestro contenido.

Paso 2: Creando el Menú de Navegación

Ahora, agreguemos un menú de navegación simple a la sección <header> utilizando las clases de utilidad de Tailwind CSS:

Barra superior azul "LearnHub" enfocada con botones para cursos, precios y a la derecha.

Aquí está lo que hace cada clase:

  • bg-blue-600: Establece el color de fondo del encabezado a un tono de azul.
  • text-white: Establece el color del texto en blanco.
  • py-4: Agrega relleno en la parte superior e inferior del encabezado.
  • container mx-auto: Centra el menú de navegación horizontalmente.
  • flex justify-between items-center: Usa flexbox para distribuir uniformemente el logo y los elementos del menú y alinearlos verticalmente.
  • text-2xl font-bold: Hace que el texto del logo sea más grande y en negrita.
  • flex space-x-4: Agrega espaciado entre los elementos del menú utilizando flexbox.
  • hover:text-blue-200: Cambia el color del texto a un tono más claro de azul cuando se pasa el mouse sobre los elementos del menú.

Paso 3: Agregando el Contenido Principal

Agreguemos algo de contenido a la sección <main> de nuestra página de inicio::

Aquí está lo que hace cada clase:

  • container mx-auto: Centra el contenido principal horizontalmente.
  • mt-8: Agrega margen en la parte superior del contenido principal.
  • bg-gray-100 rounded-lg p-6: Agrega un fondo gris claro, redondea las esquinas y agrega relleno a la sección de bienvenida.
  • text-3xl font-bold mb-4: Hace que el texto del encabezado sea más grande, en negrita y agrega margen en la parte inferior.
  • text-gray-700 mb-6: Establece el color del texto en un gris más oscuro y agrega margen en la parte inferior para el párrafo.
  • bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700: Estiliza el botón de Start Learning con un fondo azul, texto blanco, relleno, esquinas redondeadas y un fondo azul más oscuro al pasar el mouse.
  • text-2xl font-bold mb-4: Hace que el texto de  Featured Courses sea más grande, en negrita y agrega margen en la parte inferior.
  • grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4: Crea un diseño de cuadrícula receptivo para las tarjetas de cursos. Muestra una columna en pantallas pequeñas, dos columnas en pantallas medianas y tres columnas en pantallas grandes, con un espacio entre las tarjetas.

Al unir el código del encabezado y el contenido principal, deberías obtener la siguiente salida:

Título grande y en negrita "Bienvenido a LearnHub", un botón azul "Comenzar a aprender" debajo y "Cursos destacados" en negrita.

Paso 4: Agregando el Pie de Página

Finalmente, agreguemos un pie de página simple a nuestra página de inicio:

Aquí está lo que hace cada clase:

  • bg-gray-800 text-white: Establece el color de fondo del pie de página a un gris oscuro y el color del texto en blanco.
  • py-4: Agrega relleno en la parte superior e inferior del pie de página.
  • mt-8: Agrega margen en la parte superior del pie de página.
  • container mx-auto: Centra el contenido del pie de página horizontalmente.
  • text-center: Centra el texto dentro del pie de página.

Poniéndolo Todo Junto

Aquí está el código final unido:

Para mostrar la salida a los usuarios, necesitarás tener Tailwind CSS correctamente configurado en tu proyecto. Asegúrate de haber seguido los pasos de instalación mencionados anteriormente, incluyendo la creación del archivo tailwind.config.js y procesando tu CSS con Tailwind.

Una vez que tengas Tailwind CSS configurado, puedes guardar este código en un archivo HTML (por ejemplo, index.html) y abrirlo en un navegador web. El navegador renderizará la página de inicio con los estilos aplicados utilizando las clases de utilidad de Tailwind CSS. Si simplemente quieres probar Tailwind, siempre puedes usar Tailwind Play, una herramienta ingeniosa de Tailwind donde puedes jugar con las diferentes clases.

El resultado final del código de LearnHub con un encabezado, texto pequeño, un botón azul y un pie de página.

¡Y ahí lo tienes! Hemos creado una página de inicio simple para nuestra plataforma de cursos en línea ficticia utilizando las clases de utilidad de Tailwind CSS.

¿Qué Hacer A Partir De Aquí?

Ahora que has visto el poder y la flexibilidad de Tailwind CSS, sabes que las posibilidades son infinitas aquí. Su naturaleza flexible y personalizable puede ayudarte a construir desde simples páginas de destino hasta aplicaciones web complejas, manteniendo un diseño limpio y consistente.

Aquí tienes algunas ideas para empezar:

  • Construye un sitio web de portafolio: Muestra tus habilidades y proyectos con un portafolio impresionante.
  • Crea un blog: Comparte tus pensamientos e ideas con el mundo utilizando un blog hermoso y funcional diseñado con Tailwind.
  • Desarrolla una aplicación web: Tailwind CSS es perfecto para construir interfaces de usuario para aplicaciones web de todo tipo.

No importa lo que construyas, Tailwind CSS puede ayudarte a crear un sitio web impresionante y funcional.

Y cuando se trata de alojar tu creación, considera una solución confiable y escalable como los servicios VPS de DreamHost para garantizar que tu sitio web funcione de manera fluida y eficiente.

¡Comienza a construir interfaces de usuario hermosas con un conocimiento mínimo de CSS!

Jos Velasco es un Consultor Profesional de WordPress en DreamHost. Sus responsabilidades incluyen ayudar con casos avanzados de WordPress, crear material de capacitación e identificar tendencias que afecten a la comunidad de WordPress. En su tiempo libre, disfruta escalar montañas, comer sano y ver películas de drama. Sigue a Jos en LinkedIn: https://www.linkedin.com/in/josvelasco/