Espaciado
Utilidades para controlar el margen de un elemento.
Clase | Estilos |
---|---|
m-<number> | margin: calc(var(--spacing) * <number>); |
-m-<number> | margin: calc(var(--spacing) * -<number>); |
m-auto | margin: auto; |
m-px | margin: 1px; |
-m-px | margin: -1px; |
m-(<custom-property>) | margin: var(<custom-property>); |
m-[<value>] | margin: <value>; |
mx-<number> | margin-inline: calc(var(--spacing) * <number>); |
-mx-<number> | margin-inline: calc(var(--spacing) * -<number>); |
mx-auto | margin-inline: auto; |
mx-px | margin-inline: 1px; |
-mx-px | margin-inline: -1px; |
mx-(<custom-property>) | margin-inline: var(<custom-property>); |
mx-[<value>] | margin-inline: <value>; |
my-<number> | margin-block: calc(var(--spacing) * <number>); |
-my-<number> | margin-block: calc(var(--spacing) * -<number>); |
my-auto | margin-block: auto; |
my-px | margin-block: 1px; |
-my-px | margin-block: -1px; |
my-(<custom-property>) | margin-block: var(<custom-property>); |
my-[<value>] | margin-block: <value>; |
ms-<number> | margin-inline-start: calc(var(--spacing) * <number>); |
-ms-<number> | margin-inline-start: calc(var(--spacing) * -<number>); |
ms-auto | margin-inline-start: auto; |
ms-px | margin-inline-start: 1px; |
-ms-px | margin-inline-start: -1px; |
ms-(<custom-property>) | margin-inline-start: var(<custom-property>); |
ms-[<value>] | margin-inline-start: <value>; |
me-<number> | margin-inline-end: calc(var(--spacing) * <number>); |
-me-<number> | margin-inline-end: calc(var(--spacing) * -<number>); |
me-auto | margin-inline-end: auto; |
me-px | margin-inline-end: 1px; |
-me-px | margin-inline-end: -1px; |
me-(<custom-property>) | margin-inline-end: var(<custom-property>); |
me-[<value>] | margin-inline-end: <value>; |
mt-<number> | margin-top: calc(var(--spacing) * <number>); |
-mt-<number> | margin-top: calc(var(--spacing) * -<number>); |
mt-auto | margin-top: auto; |
mt-px | margin-top: 1px; |
-mt-px | margin-top: -1px; |
mt-(<custom-property>) | margin-top: var(<custom-property>); |
mt-[<value>] | margin-top: <value>; |
mr-<number> | margin-right: calc(var(--spacing) * <number>); |
-mr-<number> | margin-right: calc(var(--spacing) * -<number>); |
mr-auto | margin-right: auto; |
mr-px | margin-right: 1px; |
-mr-px | margin-right: -1px; |
mr-(<custom-property>) | margin-right: var(<custom-property>); |
mr-[<value>] | margin-right: <value>; |
mb-<number> | margin-bottom: calc(var(--spacing) * <number>); |
-mb-<number> | margin-bottom: calc(var(--spacing) * -<number>); |
mb-auto | margin-bottom: auto; |
mb-px | margin-bottom: 1px; |
-mb-px | margin-bottom: -1px; |
mb-(<custom-property>) | margin-bottom: var(<custom-property>); |
mb-[<value>] | margin-bottom: <value>; |
ml-<number> | margin-left: calc(var(--spacing) * <number>); |
-ml-<number> | margin-left: calc(var(--spacing) * -<number>); |
ml-auto | margin-left: auto; |
ml-px | margin-left: 1px; |
-ml-px | margin-left: -1px; |
ml-(<custom-property>) | margin-left: var(<custom-property>); |
ml-[<value>] | margin-left: <value>; |
space-x-<number> | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(calc(var(--spacing) * <number>) * var(--tw-space-x-reverse));
margin-inline-end: calc(calc(var(--spacing) * <number>) * calc(1 - var(--tw-space-x-reverse)));
}; |
-space-x-<number> | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(calc(var(--spacing) * -<number>) * var(--tw-space-x-reverse));
margin-inline-end: calc(calc(var(--spacing) * -<number>) * calc(1 - var(--tw-space-x-reverse)));
}; |
space-x-px | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(1px * var(--tw-space-x-reverse));
margin-inline-end: calc(1px * calc(1 - var(--tw-space-x-reverse)));
}; |
-space-x-px | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(-1px * var(--tw-space-x-reverse));
margin-inline-end: calc(-1px * calc(1 - var(--tw-space-x-reverse)));
}; |
space-x-(<custom-property>) | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(var(<custom-property>) * var(--tw-space-x-reverse));
margin-inline-end: calc(var(<custom-property>) * calc(1 - var(--tw-space-x-reverse)));
}; |
space-x-[<value>] | & > :not(:last-child) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(<value> * var(--tw-space-x-reverse));
margin-inline-end: calc(<value> * calc(1 - var(--tw-space-x-reverse)));
}; |
space-y-<number> | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(calc(var(--spacing) * <number>) * var(--tw-space-y-reverse));
margin-block-end: calc(calc(var(--spacing) * <number>) * calc(1 - var(--tw-space-y-reverse)));
}; |
-space-y-<number> | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(calc(var(--spacing) * -<number>) * var(--tw-space-y-reverse));
margin-block-end: calc(calc(var(--spacing) * -<number>) * calc(1 - var(--tw-space-y-reverse)));
}; |
space-y-px | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(1px * var(--tw-space-y-reverse));
margin-block-end: calc(1px * calc(1 - var(--tw-space-y-reverse)));
}; |
-space-y-px | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(-1px * var(--tw-space-y-reverse));
margin-block-end: calc(-1px * calc(1 - var(--tw-space-y-reverse)));
}; |
space-y-(<custom-property>) | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(var(<custom-property>) * var(--tw-space-y-reverse));
margin-block-end: calc(var(<custom-property>) * calc(1 - var(--tw-space-y-reverse)));
}; |
space-y-[<value>] | & > :not(:last-child) {
--tw-space-y-reverse: 0;
margin-block-start: calc(<value> * var(--tw-space-y-reverse));
margin-block-end: calc(<value> * calc(1 - var(--tw-space-y-reverse)));
}; |
space-x-reverse | & > :not(:last-child)) {
--tw-space-x-reverse: 1;
} |
space-y-reverse | & > :not(:last-child)) {
--tw-space-y-reverse: 1;
} |
Usa utilidades m-<number>
como m-4
y m-8
para controlar el margen en todos los lados de un elemento:
<div class="m-8 ...">m-8</div>
Usa utilidades mt-<number>
, mr-<number>
, mb-<number>
y ml-<number>
como ml-2
y mt-6
para controlar el margen en un lado de un elemento:
<div class="mt-6 ...">mt-6</div><div class="mr-4 ...">mr-4</div><div class="mb-8 ...">mb-8</div><div class="ml-2 ...">ml-2</div>
Usa utilidades mx-<number>
como mx-4
y mx-8
para controlar el margen horizontal de un elemento:
<div class="mx-8 ...">mx-8</div>
Usa utilidades my-<number>
como my-4
y my-8
para controlar el margen vertical de un elemento:
<div class="my-8 ...">my-8</div>
Para usar un valor de margen negativo, antepone un guion al nombre de la clase para convertirlo en un valor negativo:
<div class="h-16 w-36 bg-sky-400 opacity-20 ..."></div><div class="-mt-8 bg-sky-300 ...">-mt-8</div>
Usa utilidades ms-<number>
o me-<number>
como ms-4
y me-8
para establecer las propiedades lógicas margin-inline-start
y margin-inline-end
:
De izquierda a derecha
De derecha a izquierda
<div> <div dir="ltr"> <div class="ms-8 ...">ms-8</div> <div class="me-8 ...">me-8</div> </div> <div dir="rtl"> <div class="ms-8 ...">ms-8</div> <div class="me-8 ...">me-8</div> </div></div>
Usa utilidades space-x-<number>
o space-y-<number>
como space-x-4
y space-y-8
para controlar el espacio entre elementos:
<div class="flex space-x-4 ..."> <div>01</div> <div>02</div> <div>03</div></div>
Si tus elementos están en orden inverso (usando, por ejemplo, flex-row-reverse
o flex-col-reverse
), usa las utilidades space-x-reverse
o space-y-reverse
para asegurarte de que el espacio se añada al lado correcto de cada elemento:
<div class="flex flex-row-reverse space-x-4 space-x-reverse ..."> <div>01</div> <div>02</div> <div>03</div></div>
Las utilidades de espacio son en realidad solo un atajo para añadir margen a todos los elementos de un grupo excepto al último, y no están diseñadas para manejar casos complejos como grids, layouts que se envuelven, o situaciones donde los hijos se renderizan en un orden personalizado complejo en lugar de su orden natural del DOM.
Para esas situaciones, es mejor usar las utilidades gap cuando sea posible, o añadir margen a cada elemento con un margen negativo correspondiente en el padre.
Además, las utilidades de espacio no están diseñadas para funcionar junto con las utilidades divide. Para esas situaciones, considera añadir utilidades de margen/padding a los hijos en su lugar.
Usa utilidades como m-[<value>]
,mx-[<value>]
, y mb-[<value>]
para establecer el margin basado en un valor completamente personalizado:
<div class="m-[5px] ..."> <!-- ... --></div>
Para variables CSS, también puedes usar la sintaxis m-(<custom-property>)
:
<div class="m-(--my-margin) ..."> <!-- ... --></div>
Esto es solo un atajo para m-[var(<custom-property>)]
que agrega la función var()
por ti automáticamente.
Prefija una utilidad margin
con una variante de breakpoint como md:
para aplicar la utilidad solo en tamaños de pantalla medium y superiores:
<div class="mt-4 md:mt-8 ..."> <!-- ... --></div>
Aprende más sobre el uso de variantes en la documentación de variantes.
Las utilidades m-<number>
,mx-<number>
,my-<number>
,ms-<number>
,me-<number>
,mt-<number>
,mr-<number>
,mb-<number>
, y ml-<number>
son impulsadas por la variable de tema --spacing
, la cual puede ser personalizada en tu propio tema:
@theme { --spacing: 1px; }
Aprende más sobre la personalización de la escala de espaciado en la documentación de variables de tema.