Clases de diseño de Tailwind CSS

Tailwind CSS proporciona una amplia variedad de clases relacionadas con el diseño, que permiten a los desarrolladores controlar todos los aspectos de la página de una manera extremadamente flexible.

A continuación, explicaremos en detalle algunas de las clases de diseño más importantes.

1. Relación de aspecto (Aspect Ratio)

Las clases de Aspect Ratio te ayudan a establecer la relación de aspecto de un elemento, evitando que se estire o se comprima en el diseño responsive.

Clases principales:

Nombre de la clasePropiedad y valor CSSDescripción
aspect-autoaspect-ratio: auto;Esta clase hace que el elemento mantenga su relación de aspecto natural, sin ningún ajuste forzado. Es adecuada cuando quieres que el elemento se ajuste automáticamente según su contenido, en lugar de forzarlo a rellenar o reducirse a una relación de aspecto específica.
aspect-squareaspect-ratio: 1 / 1;Esta clase fuerza la relación de aspecto del elemento a 1:1, es decir, que el ancho y la altura sean iguales. Se usa comúnmente para crear elementos cuadrados o circulares.
aspect-videoaspect-ratio: 16 / 9;Esta clase fuerza la relación de aspecto del elemento a 16:9, que es una relación de aspecto común para videos. Es adecuada para elementos que necesitan mostrar videos o simular un reproductor de video.

Ejemplo

<!-- Mantener la relación de aspecto 16:9 -->
<div class="aspect-ratio">
  <img src="video.jpg" alt="Video" class="object-cover">
</div>

Pruébalo »

2. Contenedor (Container)

La clase Container permite que un elemento contenedor se adapte de forma responsive a diferentes tamaños de pantalla. Se usa a menudo para establecer el ancho máximo del contenido.

Clases principales:

  • container: hace que el elemento se convierta en un contenedor responsive.
  • mx-auto: centra el contenedor horizontalmente.
Nombre de la clase Propiedad y valor CSS Descripción
container width: 100%; El ancho del contenedor es del 100% por defecto, ocupando todo el ancho del elemento padre.
sm:container max-width: 640px; Cuando el ancho de la pantalla es mayor o igual a 640px, el ancho máximo del contenedor es de 640px.
md:container max-width: 768px; Cuando el ancho de la pantalla es mayor o igual a 768px, el ancho máximo del contenedor es de 768px.
lg:container max-width: 1024px; Cuando el ancho de la pantalla es mayor o igual a 1024px, el ancho máximo del contenedor es de 1024px.
xl:container max-width: 1280px; Cuando el ancho de la pantalla es mayor o igual a 1280px, el ancho máximo del contenedor es de 1280px.
2xl:container max-width: 1536px; Cuando el ancho de la pantalla es mayor o igual a 1536px, el ancho máximo del contenedor es de 1536px.

Al usar estas clases, puedes crear contenedores con un ancho máximo responsive, lo que es muy útil al crear diseños, especialmente cuando quieres limitar el ancho del contenido para mejorar la legibilidad.

Ejemplo

<div class="container mx-auto">
  <!-- Contenido -->
</div>

<div class="lg:container mx-auto">
  <!-- Contenido con un ancho máximo de 1024px en pantallas grandes -->
</div>

En estos ejemplos, el primer<div>siempre ocupará el 100% del ancho, mientras que el segundo<div>en pantallas grandes (lg) y tamaños de pantalla superiores, su ancho máximo se limitará a 1024px.mx-autoLa clase se utiliza para centrar el contenedor horizontalmente.

3. Diseño de columnas (Columns)

Las clases Columns se utilizan para implementar diseños de varias columnas.

Puedes controlar el número de columnas y el espacio entre ellas.

Clases principales:

  • columns-{n}: establece el número de columnas.
  • space-x-{size}: establece el espacio entre columnas.
Nombre de la clasePropiedad y valor CSSDescripción
columns-1columns: 1;Establece el número de columnas del elemento en 1.
columns-2columns: 2;Establece el número de columnas del elemento en 2.
columns-3columns: 3;Establece el número de columnas del elemento en 3.
columns-4columns: 4;Establece el número de columnas del elemento en 4.
columns-5columns: 5;Establece el número de columnas del elemento en 5.
columns-6columns: 6;Establece el número de columnas del elemento en 6.
columns-7columns: 7;Establece el número de columnas del elemento en 7.
columns-8columns: 8;Establece el número de columnas del elemento en 8.
columns-9columns: 9;Establece el número de columnas del elemento en 9.
columns-10columns: 10;Establece el número de columnas del elemento en 10.
columns-11columns: 11;Establece el número de columnas del elemento en 11.
columns-12columns: 12;Establece el número de columnas del elemento en 12.
columns-autocolumns: auto;Establece el número de columnas del elemento en automático, ajustando automáticamente el ancho de las columnas según el contenido.
columns-3xscolumns: 16rem; /* 256px */Establece el ancho de columna del elemento en 16rem (256px).
columns-2xscolumns: 18rem; /* 288px */Establece el ancho de columna del elemento en 18rem (288px).
columns-xscolumns: 20rem; /* 320px */Establece el ancho de columna del elemento en 20rem (320px).
columns-smcolumns: 24rem; /* 384px */Establece el ancho de columna del elemento en 24rem (384px).
columns-mdcolumns: 28rem; /* 448px */Establece el ancho de columna del elemento en 28rem (448px).
columns-lgcolumns: 32rem; /* 512px */Establece el ancho de columna del elemento en 32rem (512px).
columns-xlcolumns: 36rem; /* 576px */Establece el ancho de columna del elemento en 36rem (576px).
columns-2xlcolumns: 42rem; /* 672px */Establece el ancho de columna del elemento en 42rem (672px).
columns-3xlcolumns: 48rem; /* 768px */Establece el ancho de columna del elemento en 48rem (768px).
columns-4xlcolumns: 56rem; /* 896px */Establece el ancho de columna del elemento en 56rem (896px).
columns-5xl`columns: 64rem; /*

Ejemplo

<!-- Crear un diseño de 3 columnas -->
<div class="columns-3 space-x-4">
  <p>Column 1</p>
  <p>Column 2</p>
  <p>Column 3</p>
</div>

Pruébalo »

4. Paginación

Las siguientes clases ayudan a los desarrolladores a controlar mejor el diseño de paginación y columnas de un documento, para mejorar la legibilidad y la estética de la salida impresa.

Clases principales:

  • break-after-{value}: controla el comportamiento después de un salto de página.
  • break-before-{value}: controla el comportamiento antes de un salto de página.
  • break-inside-{value}: controla el comportamiento de los saltos de página dentro de un elemento.
Nombre de la clasePropiedad y valor CSSDescripción
break-after-autobreak-after: auto;Permite que el contenido se divida en páginas o columnas de forma natural después de este elemento.
break-after-avoidbreak-after: avoid;Evita en lo posible dividir en páginas o columnas después de este elemento.
break-after-allbreak-after: all;Fuerza una división en páginas o columnas después de este elemento, incluso si no es una posición natural para ello.
break-after-avoid-pagebreak-after: avoid-page;Evita en lo posible dividir en páginas después de este elemento, pero permite dividir en columnas.
break-after-pagebreak-after: page;Fuerza una división en páginas después de este elemento, pero no permite dividir en columnas.
break-after-leftbreak-after: left;Fuerza una división en páginas o columnas después de este elemento, prefiriendo la página izquierda.
break-after-rightbreak-after: right;Fuerza una división en páginas o columnas después de este elemento, prefiriendo la página derecha.
break-after-columnbreak-after: column;Fuerza una división en columnas después de este elemento, pero no permite dividir en páginas.

Las clases anteriores se utilizan para controlar el comportamiento de división en páginas o columnas del contenido en impresiones o diseños de columnas:

  • break-after-autoPermite que el navegador decida si dividir en páginas o columnas después de un elemento.
  • break-after-avoidle dice al navegador que evite en lo posible dividir en páginas o columnas después de ese elemento.
Nombre de la clasePropiedad y valor CSSDescripción
break-before-autobreak-before: auto;Permite que el contenido se divida en páginas o columnas de forma natural antes de este elemento.
break-before-avoidbreak-before: avoid;Evita en lo posible dividir en páginas o columnas antes de este elemento.
break-before-allbreak-before: all;Fuerza una división en páginas o columnas antes de este elemento, incluso si no es una posición natural para ello.
break-before-avoid-pagebreak-before: avoid-page;Evita en lo posible dividir en páginas antes de este elemento, pero permite dividir en columnas.
break-before-pagebreak-before: page;Fuerza una división en páginas antes de este elemento, pero no permite dividir en columnas.
break-before-leftbreak-before: left;Fuerza una división en páginas o columnas antes de este elemento, prefiriendo la página izquierda.
break-before-rightbreak-before: right;Fuerza una división en páginas o columnas antes de este elemento, prefiriendo la página derecha.
break-before-columnbreak-before: column;Fuerza una división en columnas antes de este elemento, pero no permite dividir en páginas.

Las clases anteriores se utilizan para controlar el comportamiento de división en páginas o columnas del contenido en impresiones o diseños de columnas.

  • break-before-autoPermite que el navegador decida si dividir en páginas o columnas antes de un elemento.
  • break-before-avoidle dice al navegador que evite en lo posible dividir en páginas o columnas antes de ese elemento.
Nombre de la clasePropiedad y valor CSSDescripción
break-inside-autobreak-inside: auto;Permite que el contenido se divida en páginas o columnas de forma natural dentro de este elemento.
break-inside-avoidbreak-inside: avoid;Evita en lo posible dividir en páginas o columnas dentro de este elemento.
break-inside-avoid-pagebreak-inside: avoid-page;Evita en lo posible dividir en páginas dentro de este elemento, pero permite dividir en columnas.
break-inside-avoid-columnbreak-inside: avoid-column;Evita en lo posible dividir en columnas dentro de este elemento, pero permite dividir en páginas.

Las clases anteriores se utilizan para controlar si se permite dividir en páginas o columnas dentro de un elemento en impresiones o diseños de columnas.

  • break-inside-autoPermite que el navegador decida si dividir en páginas o columnas dentro de un elemento.
  • break-inside-avoidle dice al navegador que evite en lo posible dividir en páginas o columnas dentro de ese elemento.

Ejemplo

<div class="columns-2">
  <p>Bueno, déjame contarte algo...</p>
  <p class="break-after-column">Por supuesto, continuemos con nuestro contenido...</p>
  <p>Quizás podamos...</p>
  <p>Si crees que esto es...</p>
</div>

En este ejemplo, el<div>elemento se configura con un diseño de dos columnas (columns-2), que contiene cuatro<p>párrafos. El segundo<p>párrafo tiene unbreak-after-columnClase, esto fuerza un salto de columna después de ese párrafo, pero no permite un salto de página. Esto significa que si el contenido es suficiente, el contenido después del segundo párrafo comenzará en una nueva columna, en lugar de continuar en la siguiente línea de la misma columna. Los demás párrafos no tienen instrucciones especiales de división de columnas, por lo que fluirán naturalmente según su contenido.

5. Salto de línea de texto

A continuación se presentan las clases de utilidad en Tailwind CSS para controlar cómo se renderizan los fragmentos de elementos en múltiples líneas, columnas o páginas, junto con sus propiedades CSS correspondientes:

Nombre de clasePropiedad y valor CSSDescripción
box-decoration-clonebox-decoration-break: clone;Especifica que cuando un cuadro se divide en varios cuadros (por ejemplo, en los límites de columnas o páginas), cada cuadro debe clonar la decoración del cuadro original (bordes, fondo, etc.).
box-decoration-slicebox-decoration-break: slice;Especifica que cuando un cuadro se divide en varios cuadros, cada cuadro debe "cortar" la decoración del cuadro original, de modo que la decoración se muestre de forma continua en cada cuadro.

Las clases anteriores se utilizan para controlar el comportamiento de la decoración de los elementos (como bordes y fondos) en diseños de varias columnas o al paginar.

  • box-decoration-cloneHará que cada fragmento de cuadro muestre la decoración completa.
  • box-decoration-sliceEn cambio, cortará la decoración donde se divide el cuadro, de modo que la decoración permanezca visualmente continua.

Estas clases de utilidad pueden ayudar a los desarrolladores a controlar mejor el efecto visual de los elementos en diseños complejos.

Ejemplo

<span class="box-decoration-slice bg-gradient-to-r from-indigo-600 to-pink-500 text-white px-2 ...">
  Hello<br />
  World
</span>
<span class="box-decoration-clone bg-gradient-to-r from-indigo-600 to-pink-500 text-white px-2 ...">
  Hello<br />
  World
</span>

Pruébalo »

6. Tamaño de caja

Tailwind CSS proporciona dos clases de utilidad para controlar el modelo de caja (box-sizing) de los elementos:

  • box-border: calcula el tamaño total del elemento incluyendo el relleno y el borde.
  • box-content: calcula el tamaño del elemento sin incluir el relleno ni el borde.

1、box-border

Propiedad CSS:

box-sizing: border-box;

Usa la clase de utilidad `box-border` para establecer la propiedad `box-sizing` del elemento en `border-box`. Esto significa que cuando se especifica una altura o anchura al elemento, el navegador incluirá el borde y el relleno del elemento.

Si un elemento tiene un tamaño de 100px × 100px, con un borde de 2px y un relleno de 4px, el tamaño total de renderizado del elemento será de 112px × 112px.

Ejemplo

<div class="box-content h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

2、box-content

Propiedad CSS:

box-sizing: content-box;

Usa la clase de utilidad `box-content` para establecer la propiedad `box-sizing` del elemento en `content-box`. Esto significa que el navegador añadirá el borde y el relleno fuera del ancho o la altura especificados del elemento.

Si un elemento tiene un tamaño de 100px × 100px, con un borde de 2px y un relleno de 4px, el tamaño real de renderizado del elemento será de 112px × 112px, con un área de contenido interno de 100px × 100px.

Ejemplo

<div class="box-content h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

Pruébalo »

Propiedad display

La propiedad `display` se utiliza para controlar el tipo de visualización del elemento y determina cómo se muestra el elemento en la página.

Nombre de clase TailwindPropiedad y valor CSSDescripción
blockdisplay: block;Muestra el elemento como un elemento de bloque, que ocupa una sola línea.
inline-blockdisplay: inline-block;Muestra el elemento como un elemento de bloque en línea, que puede mostrarse en línea y tener su propio ancho y alto.
inlinedisplay: inline;Muestra el elemento como un elemento en línea, que se mostrará junto a otros elementos en línea.
flexdisplay: flex;Muestra el elemento como un contenedor flexible, permitiendo usar la disposición Flexbox.
inline-flexdisplay: inline-flex;Muestra el elemento como un contenedor flexible en línea, permitiendo usar la disposición Flexbox.
tabledisplay: table;Muestra el elemento como un elemento de tabla.
inline-tabledisplay: inline-table;Muestra el elemento como un elemento de tabla en línea.
table-captiondisplay: table-caption;Muestra el elemento como un título de tabla (caption).
table-celldisplay: table-cell;Muestra el elemento como una celda de tabla.
table-columndisplay: table-column;Muestra el elemento como una columna de tabla.
table-column-groupdisplay: table-column-group;Muestra el elemento como un grupo de columnas de tabla.
table-footer-groupdisplay: table-footer-group;Muestra el elemento como un grupo de pie de tabla.
table-header-groupdisplay: table-header-group;Muestra el elemento como un grupo de cabecera de tabla.
table-row-groupdisplay: table-row-group;Muestra el elemento como un grupo de filas de tabla.
table-rowdisplay: table-row;Muestra el elemento como una fila de tabla.
flow-rootdisplay: flow-root;Muestra el elemento como un elemento raíz de flujo, que es un BFC (contexto de formato de bloque).
griddisplay: grid;Muestra el elemento como un contenedor de cuadrícula (grid), permitiendo usar la disposición CSS Grid.
inline-griddisplay: inline-grid;Muestra el elemento como un contenedor de cuadrícula en línea, permitiendo usar la disposición CSS Grid.
contentsdisplay: contents;Elimina el modelo de caja del elemento, haciendo que sus elementos secundarios se muestren directamente en su lugar.
list-itemdisplay: list-item;Muestra el elemento como un elemento de lista.
hiddendisplay: none;Oculta el elemento, no se muestra en la página.

Ejemplo

<div class="relative rounded-xl overflow-auto">
    <div class="mx-auto max-w-xs bg-white shadow-xl p-4 text-slate-500 text-sm leading-6 sm:text-base sm:leading-7 dark:bg-slate-800 dark:text-slate-400">
Al controlar el flujo del texto, use la propiedad CSS
    <span class="inline bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: inline</span>
hará que el texto dentro del elemento realice saltos de línea normales.
    <br>
    <br>
Mientras que al usar la propiedad<span class="inline-block bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: inline-block</span>
envolverá el elemento, evitando que su texto interno se expanda más allá de su elemento padre.
    <br>
    <br>
Por último, al usar la propiedad<span class="block bg-sky-100 font-bold text-sm text-slate-900 font-mono rounded dark:bg-slate-600 dark:text-slate-200">display: block</span>
hará que el elemento ocupe una sola línea y llene su elemento padre.
    </div>
</div>

Pruébalo »

Use las clases de utilidad `table`, `table-row`, `table-cell`, `table-caption`, `table-column`, `table-column-group`, `table-header-group`, `table-row-group` y `table-footer-group` para crear elementos que se comporten como sus respectivos elementos de tabla.

Ejemplo

<div class="table w-full ...">
  <div class="table-header-group ...">
    <div class="table-row">
      <div class="table-cell text-left ...">Song</div>
      <div class="table-cell text-left ...">Artist</div>
      <div class="table-cell text-left ...">Year</div>
    </div>
  </div>
  <div class="table-row-group">
    <div class="table-row">
      <div class="table-cell ...">The Sliding Mr. Bones (Next Stop, Pottersville)</div>
      <div class="table-cell ...">Malcolm Lockyer</div>
      <div class="table-cell ...">1961</div>
    </div>
    <div class="table-row">
      <div class="table-cell ...">Witchy Woman</div>
      <div class="table-cell ...">The Eagles</div>
      <div class="table-cell ...">1972</div>
    </div>
    <div class="table-row">
      <div class="table-cell ...">Shining Star</div>
      <div class="table-cell ...">Earth, Wind, and Fire</div>
      <div class="table-cell ...">1975</div>
    </div>
  </div>
</div>

Pruébalo »

Flotación

float-*Controla la posición de flotación del elemento, generalmente se usa para envolver texto.

Clases principales:

Nombre de clase TailwindPropiedad y valor CSSDescripción
float-startfloat: inline-start;Hace que el elemento flote hacia la posición inicial de su bloque contenedor. En idiomas LTR (de izquierda a derecha), suele ser la izquierda; en idiomas RTL (de derecha a izquierda), suele ser la derecha.
float-endfloat: inline-end;Hace que el elemento flote hacia la posición final de su bloque contenedor. En idiomas LTR, suele ser la derecha; en idiomas RTL, suele ser la izquierda.
float-rightfloat: right;Hace que el elemento flote a la derecha de su bloque contenedor.
float-leftfloat: left;Hace que el elemento flote a la izquierda de su bloque contenedor.
float-nonefloat: none;Evita que el elemento flote, impidiendo que salga del flujo normal del documento.

Ejemplo

<!-- Crear una imagen flotante -->
<div class="float-right ml-6">
    <div class="relative aspect-w-4 aspect-h-5 sm:aspect-w-16 sm:aspect-h-9 w-20 sm:w-44">
    <img class="object-cover rounded-lg" src="/static.jyshare.com/images/demo/demo2.jpg?v=2">
    <div class="absolute inset-0 ring-1 ring-inset ring-black/10 rounded-lg"></div>
    </div>
</div>

Pruébalo »

Limpiar flotación

En Tailwind CSS, las clases de utilidad para controlar la limpieza de flotación de un elemento y sus propiedades CSS correspondientes son:

Nombre de clasePropiedad y valor CSSDescripción
clear-startclear: inline-start;Limpia los elementos flotantes en la dirección inicial del elemento. En idiomas LTR, suele ser la izquierda; en idiomas RTL, suele ser la derecha.
clear-endclear: inline-end;Limpia los elementos flotantes en la dirección final del elemento. En idiomas LTR, suele ser la derecha; en idiomas RTL, suele ser la izquierda.
clear-leftclear: left;Limpia los elementos flotantes a la izquierda del elemento.
clear-rightclear: right;Limpia los elementos flotantes a la derecha del elemento.
clear-bothclear: both;Limpia los elementos flotantes a ambos lados del elemento.
clear-noneclear: none;No limpia ningún elemento flotante, permitiendo que los elementos flotantes sigan al elemento.

Ejemplo

<article>
  <img class="float-left ..." src="path/to/image.jpg">
  <img class="float-right ..." src="path/to/image.jpg">
  <p class="clear-left ...">Contenido de texto de prueba...</p>
</article>

Pruébalo »

isolate

A continuación se presentan las clases de utilidad para controlar el contexto de apilamiento
Nombre de clase TailwindPropiedad y valor CSSDescripción
isolateisolation: isolate;Este elemento creará un nuevo contexto de apilamiento, lo que significa que sus elementos descendientes no se superpondrán con elementos externos, incluso si tienen un mayorz-indexvalor.
isolation-autoisolation: auto;El contexto de apilamiento de este elemento será determinado por el agente de usuario, normalmente igual que si no se estableciera laisolationpropiedad, los elementos descendientes pueden superponerse con elementos externos.

Estas clases de utilidad permiten a los desarrolladores controlar el comportamiento del contexto de apilamiento del elemento, afectando así a cómo el elemento y sus descendientes participan en el orden de apilamiento.

La clase `isolate` ayuda a crear un entorno aislado donde el orden de apilamiento del elemento no se ve afectado por elementos externos, mientras que `isolation-auto` permite que el navegador maneje el contexto de apilamiento según las reglas predeterminadas.

Use las clases de utilidad `isolate` y `isolation-auto` para controlar si un elemento debe crear explícitamente un nuevo contexto de apilamiento.

Ejemplo

<div class="isolate ...">
  <!-- ... -->
</div>
‌

object-fit

A continuación se presentan las clases de utilidad para controlar cómo se escala el contenido de los elementos reemplazados y sus propiedades CSS correspondientes:

Nombre de clasePropiedad y valor CSSDescripción
object-containobject-fit: contain;Mantiene la relación de aspecto del elemento, ajustando su tamaño para que quepa completamente en el contenedor, posiblemente dejando espacio en blanco en el contenedor.
object-coverobject-fit: cover;Mantiene la relación de aspecto del elemento, ajustando su tamaño para cubrir completamente el contenedor, posiblemente recortando algunas partes del elemento.
object-fillobject-fit: fill;Ignora la relación de aspecto del elemento, estirándolo o comprimiéndolo para llenar completamente el contenedor.
object-noneobject-fit: none;Mantiene el tamaño original del elemento, sin escalado.
object-scale-downobject-fit: scale-down;Mantiene la relación de aspecto del elemento, de manera similar acontainpero elige el tamaño más pequeño para ajustarse al contenedor, sin dejar espacio en blanco.

Use `object-cover` para ajustar el tamaño del contenido del elemento a fin de cubrir su contenedor:

Ejemplo

<div class="bg-indigo-300 ...">
  <img class="object-cover h-48 w-96 ...">
</div>

Pruébalo »
Otras extensiones