Tailwind CSS

Curso de programación con TailwindCSS

Tailwind CSS es el framework de utilidades para diseñar rápidamente sitios web modernos y responsivos. Aprende a estilizar con Tailwind CSS.

TailwindCSS es un framework de css orientado a utilidades que facilita la creación de interfaces de usuario mediante la aplicación directa de clases predefinidas en el marcado html.

Su filosofía difiere de los enfoques tradicionales de diseño en css, donde se suelen crear clases semánticas o componentes reutilizables en archivos separados. En su lugar, TailwindCSS propone un enfoque basado en la composición de pequeñas clases utilitarias que se aplican directamente a los elementos html, permitiendo un control preciso y granular del diseño.

Características técnicas de TailwindCSS

  1. Clases utilitarias: TailwindCSS proporciona un amplio conjunto de clases utilitarias, cada una diseñada para aplicar una única propiedad css con un valor específico. Por ejemplo:

    • text-center: alinea el texto al centro.
    • mt-4: aplica un margen superior (margin-top) de 1rem.
    • bg-blue-500: establece un color de fondo azul con una intensidad específica (#3b82f6).
    • flex: aplica la propiedad display: flex, activando el contexto de un contenedor flexbox.
  2. Configuración personalizable: TailwindCSS permite una personalización completa a través de su archivo de configuración (tailwind.config.js). Este archivo permite redefinir aspectos como:

    • Paletas de colores: personalización de los colores disponibles a través de las clases utilitarias.
    • Espaciado: configuración de los valores de margen, padding y otros elementos de espacio.
    • Tipografía: ajuste de las fuentes, tamaños de letra, alturas de línea, etc.
    • Plugins: posibilidad de extender la funcionalidad de TailwindCSS mediante la adición de plugins personalizados o de la comunidad.
  3. Sistema de diseño basado en configuración: TailwindCSS fomenta un enfoque de diseño basado en sistemas. Gracias a su archivo de configuración, los equipos pueden definir un sistema de diseño consistente que se aplica de manera uniforme en toda la aplicación, garantizando coherencia visual y evitando discrepancias de estilo.

  4. Optimización para producción: una de las ventajas técnicas significativas de TailwindCSS es su integración con herramientas de construcción como PostCSS o Webpack. Estas herramientas permiten purgar las clases css no utilizadas durante el proceso de compilación, lo que resulta en archivos css extremadamente pequeños y optimizados para producción.

  5. Interoperabilidad: TailwindCSS puede coexistir con otros enfoques de estilización, como css tradicional, sass, o incluso css-in-js. Esto permite una integración progresiva en proyectos existentes sin necesidad de una reescritura completa del estilo.

Ventajas técnicas de TailwindCSS frente a usar CSS sin librerías

  • Composicionalidad: las clases utilitarias permiten una alta composicionalidad, facilitando la creación de componentes UI sin necesidad de escribir css adicional.
  • Consistencia y escalabilidad: al definir un sistema de diseño consistente, es más fácil mantener la coherencia visual en proyectos grandes.
  • Reducción de css no utilizado: mediante el proceso de purga, TailwindCSS minimiza la cantidad de css que se incluye en producción, lo que mejora el rendimiento.

Vista general de clases de utilidad de TailwindCSS

  1. Tipografía:

    • font-<weight>: establece el grosor de la fuente (ej. font-bold, font-medium).
    • text-<size>: define el tamaño de la fuente (ej. text-sm, text-lg).
    • leading-<size>: ajusta la altura de línea (ej. leading-tight, leading-relaxed).
    • tracking-<size>: controla el espaciado entre caracteres (ej. tracking-wide, tracking-tight).
    • text-<color>: define el color del texto (ej. text-gray-500, text-red-700).
  2. Espaciado:

    • m-<size>: aplica margen en todas las direcciones (ej. m-4, m-0).
    • p-<size>: define el padding en todas las direcciones (ej. p-2, p-6).
    • mt-<size>, mr-<size>, mb-<size>, ml-<size>: margen individual para cada lado (ej. mt-4, ml-2).
    • pt-<size>, pr-<size>, pb-<size>, pl-<size>: padding individual para cada lado (ej. pt-3, pb-5).
  3. Colores:

    • bg-<color>: establece el color de fondo (ej. bg-blue-500, bg-green-300).
    • text-<color>: aplica un color al texto (ej. text-black, text-white).
    • border-<color>: define el color del borde (ej. border-red-500, border-yellow-400).
    • hover:bg-<color>: cambia el color de fondo al pasar el ratón (ej. hover:bg-gray-700).
  4. Flexbox:

    • flex: activa el contexto flex en un contenedor.
    • flex-<direction>: define la dirección de los elementos flex (ej. flex-row, flex-col).
    • justify-<alignment>: alinea los elementos a lo largo del eje principal (ej. justify-center, justify-between).
    • items-<alignment>: alinea los elementos a lo largo del eje transversal (ej. items-center, items-start).
    • flex-wrap: permite que los elementos se envuelvan a la siguiente línea.
  5. Grid:

    • grid: activa el contexto de grid en un contenedor.
    • grid-cols-<number>: define el número de columnas en el grid (ej. grid-cols-3, grid-cols-12).
    • gap-<size>: establece el espacio entre filas y columnas del grid (ej. gap-4, gap-2).
    • col-span-<number>: especifica cuántas columnas debe ocupar un elemento (ej. col-span-2, col-span-6).
  6. Bordes:

    • border: aplica un borde de 1px a un elemento.
    • border-<side>: define el borde en un lado específico (ej. border-t, border-b).
    • border-<size>: ajusta el grosor del borde (ej. border-2, border-4).
    • rounded-<size>: establece el radio de las esquinas (ej. rounded-lg, rounded-full).
  7. Transiciones y transformaciones:

    • transition-<property>: define las propiedades que cambiarán de manera suave (ej. transition-opacity, transition-transform).
    • duration-<time>: establece la duración de la transición (ej. duration-200, duration-500).
    • transform: habilita las transformaciones css como rotate, scale, etc.
    • scale-<value>: ajusta la escala de un elemento (ej. scale-75, scale-110).
    • rotate-<angle>: rota un elemento en grados (ej. rotate-45, rotate-90).
  8. Posicionamiento:

    • absolute, relative, fixed, sticky: define el tipo de posicionamiento del elemento.
    • top-<value>, right-<value>, bottom-<value>, left-<value>: ajusta la posición de un elemento relativamente a su contenedor (ej. top-0, left-1/2).
    • z-<value>: controla el nivel de apilamiento (z-index) de un elemento (ej. z-10, z-50).
  9. Visibilidad y opacidad:

    • hidden: oculta un elemento.
    • block, inline-block, inline, flex: controla cómo se muestra un elemento.
    • opacity-<value>: establece la opacidad de un elemento (ej. opacity-50, opacity-100).
    • visible, invisible: alterna la visibilidad de un elemento sin afectar su espacio en el flujo del documento.
  10. Tamaños:

    • w-<size>, h-<size>: define el ancho y alto de un elemento (ej. w-1/2, h-screen).
    • min-w-<size>, min-h-<size>: establece el tamaño mínimo de un elemento.
    • max-w-<size>, max-h-<size>: establece el tamaño máximo de un elemento.
  11. Interactividad:

    • hover:<utility>: aplica utilidades al estado hover de un elemento (ej. hover:text-blue-500).
    • focus:<utility>: aplica utilidades al estado focus de un elemento (ej. focus:border-blue-500).
    • active:<utility>: aplica utilidades al estado activo de un elemento (ej. active:bg-red-700).
    • disabled:<utility>: aplica utilidades al estado deshabilitado de un elemento (ej. disabled:opacity-50).

Consideraciones antes de aprender TailwindCSS

  • Curva de aprendizaje: puede requerir un cambio de mentalidad, especialmente para desarrolladores acostumbrados a enfoques semánticos tradicionales en css.
  • Marcos de trabajo existentes: en proyectos donde ya se usa un sistema de diseño consolidado con clases semánticas, la adopción de TailwindCSS puede implicar una reestructuración significativa del código.
Certifícate en TailwindCSS con CertiDevs PLUS

Tutoriales de TailwindCSS

Aprende TailwindCSS con tutoriales de programación en TailwindCSS.

Ejercicios de programación de TailwindCSS

Evalúa tus conocimientos en TailwindCSS con ejercicios de programación TailwindCSS de tipo Test, Puzzle, Código y Proyecto con VSCode.

Tipo de tecnología

Biblioteca

Categoría laboral

Frontend

Año de lanzamiento

2017

Developers

Adam Wathan

Todos los módulos de TailwindCSS

Otras tecnologías

Vuejs

Vuejs

Frontend

Framework de JS progresivo para construir interfaces de usuario reactivas y modulares.

Java

Java

Backend

Lenguaje de programación versátil y multiplataforma.

TypeScript
TypeScript

TypeScript

Full Stack

Superconjunto de JavaScript con tipado estático.

Spring Boot
SpringBoot

SpringBoot

Backend

Framework para desarrollo rápido de aplicaciones Java.

CSharp

CSharp

Backend

Lenguaje de programación de Microsoft para aplicaciones robustas.

Git
Git

Git

DevOps

Sistema de control de versiones distribuido.

React
React

React

Frontend

Librería framework para frontend interfaces de usuario.

NestJS
Nest

Nest

Backend

Framework Node.js para crear aplicaciones escalables y eficientes.

SQL

SQL

Administración de bases de datos

Lenguaje para gestionar bases de datos relacionales.

HTML5
HTML

HTML

Frontend

Lenguaje de marcado para estructurar contenido web.

NumPy
Numpy

Numpy

Ciencia de Datos e Inteligencia artificial

Biblioteca Python para computación científica y matrices.

GNU Bash
Bash

Bash

Administración de sistemas

Intérprete de comandos para sistemas Unix y Linux.

Bootstrap
Bootstrap

Bootstrap

Frontend

Framework CSS para diseños web responsive y modernos.

Hibernate
Hibernate

Hibernate

Backend

ORM para Java, simplifica el acceso a bases de datos.

JavaScript
JavaScript

JavaScript

Full Stack

Lenguaje de scripting para desarrollo web interactivo.

pandas
Pandas

Pandas

Ciencia de Datos e Inteligencia artificial

Herramienta Python para análisis y manipulación de datos.

Docker
Docker

Docker

DevOps

Plataforma de contenedores para aplicaciones portátiles.

Angular
Angular

Angular

Frontend

Framework web de Google para aplicaciones dinámicas.