# Tailwind CSS vmain — Documentación técnica oficial

> **Espejo Offline de Documentación Técnica**
> Licencia: MIT | Documentos incluidos: 197 | Versión: main
> Descargado/sincronizado: 2026-09-15
> Documentación oficial en línea: https://tailwindcss.com/docs
> Mantenedor del espejo: Raúl Caro Pastorino (@raupulus) · https://raupulus.dev

---

## Índice de contenidos


### Tailwind Css

- [accent-color](#accent-color)
- [Adding custom styles](#adding-custom-styles)
- [align-content](#align-content)
- [align-items](#align-items)
- [align-self](#align-self)
- [animation](#animation)
- [appearance](#appearance)
- [aspect-ratio](#aspect-ratio)
- [backdrop-filter: blur()](#backdrop-filter-blur)
- [backdrop-filter: brightness()](#backdrop-filter-brightness)
- [backdrop-filter: contrast()](#backdrop-filter-contrast)
- [backdrop-filter: grayscale()](#backdrop-filter-grayscale)
- [backdrop-filter: hue-rotate()](#backdrop-filter-hue-rotate)
- [backdrop-filter: invert()](#backdrop-filter-invert)
- [backdrop-filter: opacity()](#backdrop-filter-opacity)
- [backdrop-filter: saturate()](#backdrop-filter-saturate)
- [backdrop-filter: sepia()](#backdrop-filter-sepia)
- [backdrop-filter](#backdrop-filter)
- [backface-visibility](#backface-visibility)
- [background-attachment](#background-attachment)
- [background-blend-mode](#background-blend-mode)
- [background-clip](#background-clip)
- [background-color](#background-color)
- [background-image](#background-image)
- [background-origin](#background-origin)
- [background-position](#background-position)
- [background-repeat](#background-repeat)
- [background-size](#background-size)
- [block-size](#block-size)
- [border-collapse](#border-collapse)
- [border-color](#border-color)
- [border-radius](#border-radius)
- [border-spacing](#border-spacing)
- [border-style](#border-style)
- [border-width](#border-width)
- [box-decoration-break](#box-decoration-break)
- [box-shadow](#box-shadow)
- [box-sizing](#box-sizing)
- [break-after](#break-after)
- [break-before](#break-before)
- [break-inside](#break-inside)
- [caption-side](#caption-side)
- [caret-color](#caret-color)
- [clear](#clear)
- [color-scheme](#color-scheme)
- [color](#color)
- [Colors](#colors)
- [columns](#columns)
- [Compatibility](#compatibility)
- [content](#content)
- [cursor](#cursor)
- [Dark mode](#dark-mode)
- [Detecting classes in source files](#detecting-classes-in-source-files)
- [display](#display)
- [Editor setup](#editor-setup)
- [field-sizing](#field-sizing)
- [fill](#fill)
- [filter: blur()](#filter-blur)
- [filter: brightness()](#filter-brightness)
- [filter: contrast()](#filter-contrast)
- [filter: drop-shadow()](#filter-drop-shadow)
- [filter: grayscale()](#filter-grayscale)
- [filter: hue-rotate()](#filter-hue-rotate)
- [filter: invert()](#filter-invert)
- [filter: saturate()](#filter-saturate)
- [filter: sepia()](#filter-sepia)
- [filter](#filter)
- [flex-basis](#flex-basis)
- [flex-direction](#flex-direction)
- [flex-grow](#flex-grow)
- [flex-shrink](#flex-shrink)
- [flex-wrap](#flex-wrap)
- [flex](#flex)
- [float](#float)
- [font-family](#font-family)
- [font-feature-settings](#font-feature-settings)
- [font-size](#font-size)
- [font-smoothing](#font-smoothing)
- [font-stretch](#font-stretch)
- [font-style](#font-style)
- [font-variant-numeric](#font-variant-numeric)
- [font-weight](#font-weight)
- [forced-color-adjust](#forced-color-adjust)
- [Functions and directives](#functions-and-directives)
- [gap](#gap)
- [grid-auto-columns](#grid-auto-columns)
- [grid-auto-flow](#grid-auto-flow)
- [grid-auto-rows](#grid-auto-rows)
- [grid-column](#grid-column)
- [grid-row](#grid-row)
- [grid-template-columns](#grid-template-columns)
- [grid-template-rows](#grid-template-rows)
- [height](#height)
- [Hover, focus, and other states](#hover-focus-and-other-states)
- [hyphens](#hyphens)
- [inline-size](#inline-size)
- [isolation](#isolation)
- [justify-content](#justify-content)
- [justify-items](#justify-items)
- [justify-self](#justify-self)
- [letter-spacing](#letter-spacing)
- [line-clamp](#line-clamp)
- [line-height](#line-height)
- [list-style-image](#list-style-image)
- [list-style-position](#list-style-position)
- [list-style-type](#list-style-type)
- [margin](#margin)
- [mask-clip](#mask-clip)
- [mask-composite](#mask-composite)
- [mask-image](#mask-image)
- [mask-mode](#mask-mode)
- [mask-origin](#mask-origin)
- [mask-position](#mask-position)
- [mask-repeat](#mask-repeat)
- [mask-size](#mask-size)
- [mask-type](#mask-type)
- [max-block-size](#max-block-size)
- [max-height](#max-height)
- [max-inline-size](#max-inline-size)
- [max-width](#max-width)
- [min-block-size](#min-block-size)
- [min-height](#min-height)
- [min-inline-size](#min-inline-size)
- [min-width](#min-width)
- [mix-blend-mode](#mix-blend-mode)
- [object-fit](#object-fit)
- [object-position](#object-position)
- [opacity](#opacity)
- [order](#order)
- [outline-color](#outline-color)
- [outline-offset](#outline-offset)
- [outline-style](#outline-style)
- [outline-width](#outline-width)
- [overflow-wrap](#overflow-wrap)
- [overflow](#overflow)
- [overscroll-behavior](#overscroll-behavior)
- [padding](#padding)
- [perspective-origin](#perspective-origin)
- [perspective](#perspective)
- [place-content](#place-content)
- [place-items](#place-items)
- [place-self](#place-self)
- [pointer-events](#pointer-events)
- [position](#position)
- [Preflight](#preflight)
- [resize](#resize)
- [Responsive design](#responsive-design)
- [rotate](#rotate)
- [scale](#scale)
- [scroll-behavior](#scroll-behavior)
- [scroll-margin](#scroll-margin)
- [scroll-padding](#scroll-padding)
- [scroll-snap-align](#scroll-snap-align)
- [scroll-snap-stop](#scroll-snap-stop)
- [scroll-snap-type](#scroll-snap-type)
- [scrollbar-color](#scrollbar-color)
- [scrollbar-gutter](#scrollbar-gutter)
- [scrollbar-width](#scrollbar-width)
- [skew](#skew)
- [stroke-width](#stroke-width)
- [stroke](#stroke)
- [Styling with utility classes](#styling-with-utility-classes)
- [tab-size](#tab-size)
- [table-layout](#table-layout)
- [text-align](#text-align)
- [text-decoration-color](#text-decoration-color)
- [text-decoration-line](#text-decoration-line)
- [text-decoration-style](#text-decoration-style)
- [text-decoration-thickness](#text-decoration-thickness)
- [text-indent](#text-indent)
- [text-overflow](#text-overflow)
- [text-shadow](#text-shadow)
- [text-transform](#text-transform)
- [text-underline-offset](#text-underline-offset)
- [text-wrap](#text-wrap)
- [Theme variables](#theme-variables)
- [top / right / bottom / left](#top-right-bottom-left)
- [touch-action](#touch-action)
- [transform-origin](#transform-origin)
- [transform-style](#transform-style)
- [transform](#transform)
- [transition-behavior](#transition-behavior)
- [transition-delay](#transition-delay)
- [transition-duration](#transition-duration)
- [transition-property](#transition-property)
- [transition-timing-function](#transition-timing-function)
- [translate](#translate)
- [Upgrade guide](#upgrade-guide)
- [user-select](#user-select)
- [vertical-align](#vertical-align)
- [visibility](#visibility)
- [white-space](#white-space)
- [width](#width)
- [will-change](#will-change)
- [word-break](#word-break)
- [z-index](#z-index)
- [zoom](#zoom)

---



---

# accent-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/accent-color*

CustomizingYourThemeColors,
  ResponsiveDesign,
  TargetingSpecificStates,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `accent-inherit` | `accent-color: inherit;` |
| `accent-current` | `accent-color: currentColor;` |
| `accent-transparent` | `accent-color: transparent;` |
| `accent-(<custom-property>)` | `accent-color: var(<custom-property>);` |
| `accent-[<value>]` | `accent-color: <value>;` |

## Examples

### Setting the accent color

Use utilities like `accent-rose-500` and `accent-lime-600` to change the accent color of an element:

  {
    <div className="flex flex-wrap justify-center gap-6">
      <label className="flex items-center space-x-2">
        <input type="checkbox" defaultChecked />
        <div className="text-sm font-semibold text-gray-900 dark:text-gray-200">Browser default</div>
      </label>
      <label className="flex items-center space-x-2">
        <input type="checkbox" className="accent-pink-500" defaultChecked />
        <div className="text-sm font-semibold text-gray-900 dark:text-gray-200">Customized</div>
      </label>
    </div>
  }

```html
<!-- [!code classes:accent-pink-500] -->
<label>
  <input type="checkbox" checked />
  Browser default
</label>
<label>
  <input class="accent-pink-500" type="checkbox" checked />
  Customized
</label>
```

This is helpful for styling elements like checkboxes and radio groups by overriding the browser's default color.

### Changing the opacity

Use the color opacity modifier to control the opacity of an element's accent color:

  {
    <div className="flex flex-wrap justify-center gap-6">
      <label className="flex items-center space-x-2">
        <input type="checkbox" defaultChecked className="accent-purple-500/25" />
        <div className="text-sm font-semibold text-gray-900 dark:text-gray-200">accent-purple-500/25</div>
      </label>
      <label className="flex items-center space-x-2">
        <input type="checkbox" className="accent-purple-500/75" defaultChecked />
        <div className="text-sm font-semibold text-gray-900 dark:text-gray-200">accent-purple-500/75</div>
      </label>
    </div>
  }

```html
<!-- [!code word:/25] -->
<!-- [!code word:/75] -->
<input class="accent-purple-500/25" type="checkbox" checked />
<input class="accent-purple-500/75" type="checkbox" checked />
```

Setting the accent color opacity has limited browser-support and only works in Firefox at this time.

### Using a custom value

### Applying on hover

  {
    <div className="flex flex-wrap justify-center gap-6">
      <label className="flex items-center space-x-2">
        <input type="checkbox" className="accent-black hover:accent-pink-500" defaultChecked />
        <div className="text-sm font-semibold text-gray-900 dark:text-gray-200">Agree to terms</div>
      </label>
    </div>
  }

```html
<!-- [!code classes:hover:accent-pink-500] -->
<input class="accent-black hover:accent-pink-500" type="checkbox" />
```

### Responsive design

## Customizing your theme


---

# Adding custom styles

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/adding-custom-styles*

Often the biggest challenge when working with a framework is figuring out what you’re supposed to do when there’s something you need that the framework doesn’t handle for you.

Tailwind has been designed from the ground up to be extensible and customizable, so that no matter what you’re building you never feel like you’re fighting the framework.

This guide covers topics like customizing your design tokens, how to break out of those constraints when necessary, adding your own custom CSS, and extending the framework with plugins.

## Customizing your theme

If you want to change things like your color palette, spacing scale, typography scale, or breakpoints, add your customizations using the `@theme` directive in your CSS:

```css
/* [!code filename:CSS] */
@theme {
  --font-display: "Satoshi", "sans-serif";

  --breakpoint-3xl: 120rem;

  --color-avocado-100: oklch(0.99 0 0);
  --color-avocado-200: oklch(0.98 0.04 113.22);
  --color-avocado-300: oklch(0.94 0.11 115.03);
  --color-avocado-400: oklch(0.92 0.19 114.08);
  --color-avocado-500: oklch(0.84 0.18 117.33);
  --color-avocado-600: oklch(0.53 0.12 118.34);

  --ease-fluid: cubic-bezier(0.3, 0, 0, 1);
  --ease-snappy: cubic-bezier(0.2, 0, 0, 1);

  /* ... */
}
```

Learn more about customizing your theme in the [theme variables documentation](/docs/theme).

## Using arbitrary values

While you can usually build the bulk of a well-crafted design using a constrained set of design tokens, once in a while you need to break out of those constraints to get things pixel-perfect.

When you find yourself really needing something like `top: 117px` to get a background image in just the right spot, use Tailwind's square bracket notation to generate a class on the fly with any arbitrary value:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:top-[117px]] -->
<div class="top-[117px]">
  <!-- ... -->
</div>
```

This is basically like inline styles, with the major benefit that you can combine it with interactive modifiers like `hover` and responsive modifiers like `lg`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:top-[117px],lg:top-[344px]] -->
<div class="top-[117px] lg:top-[344px]">
  <!-- ... -->
</div>
```

This works for everything in the framework, including things like background colors, font sizes, pseudo-element content, and more:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-[#bada55],text-[22px],before:content-['Festivus']] -->
<div class="bg-[#bada55] text-[22px] before:content-['Festivus']">
  <!-- ... -->
</div>
```

If you're referencing a CSS variable as an arbitrary value, you can use the custom property syntax:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:fill-(--my-brand-color)] -->
<div class="fill-(--my-brand-color) ...">
  <!-- ... -->
</div>
```

This is just a shorthand for <code>fill-{'[var(--my-brand-color)]'}</code> that adds the `var()` function for you automatically.

### Arbitrary properties

If you ever need to use a CSS property that Tailwind doesn't include a utility for out of the box, you can also use square bracket notation to write completely arbitrary CSS:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:[mask-type:luminance]] -->
<div class="[mask-type:luminance]">
  <!-- ... -->
</div>
```

This is _really_ like inline styles, but again with the benefit that you can use modifiers:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:[mask-type:luminance],hover:[mask-type:alpha]] -->
<div class="[mask-type:luminance] hover:[mask-type:alpha]">
  <!-- ... -->
</div>
```

This can be useful for things like CSS variables as well, especially when they need to change under different conditions:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:[--scroll-offset:56px],lg:[--scroll-offset:44px]] -->
<div class="[--scroll-offset:56px] lg:[--scroll-offset:44px]">
  <!-- ... -->
</div>
```

### Arbitrary variants

Arbitrary _variants_ are like arbitrary values but for doing on-the-fly selector modification, like you can with built-in pseudo-class variants like `hover:{utility}` or responsive variants like `md:{utility}` but using square bracket notation directly in your HTML.

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:\[&\:nth-child(-n+3)\]] -->
<ul role="list">
  {#each items as item}
  <li class="lg:[&:nth-child(-n+3)]:hover:underline">{item}</li>
  {/each}
</ul>
```

Learn more in the [arbitrary variants](/docs/hover-focus-and-other-states#using-arbitrary-variants) documentation.

### Handling whitespace

When an arbitrary value needs to contain a space, use an underscore (`_`) instead and Tailwind will automatically convert it to a space at build-time:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:grid-cols-[1fr_500px_2fr]] -->
<div class="grid grid-cols-[1fr_500px_2fr]">
  <!-- ... -->
</div>
```

In situations where underscores are common but spaces are invalid, Tailwind will preserve the underscore instead of converting it to a space, for example in URLs:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-[url('/what_a_rush.png')]] -->
<div class="bg-[url('/what_a_rush.png')]">
  <!-- ... -->
</div>
```

In the rare case that you actually need to use an underscore but it's ambiguous because a space is valid as well, escape the underscore with a backslash and Tailwind won't convert it to a space:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:before:content-['hello\_world']] -->
<div class="before:content-['hello\_world']">
  <!-- ... -->
</div>
```

If you're using something like JSX where the backslash is stripped from the rendered HTML, use [String.raw()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw) so the backslash isn't treated as a JavaScript escape character:

```jsx
<div className={String.raw`before:content-['hello\_world']`}>
  <!-- ... -->
</div>
```

### Resolving ambiguities

Many utilities in Tailwind share a common namespace but map to different CSS properties. For example `text-lg` and `text-black` both share the `text-` namespace, but one is for `font-size` and the other is for `color`.

When using arbitrary values, Tailwind can generally handle this ambiguity automatically based on the value you pass in:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:text-[22px],text-[#bada55]] -->
<!-- Will generate a font-size utility -->
<div class="text-[22px]">...</div>

<!-- Will generate a color utility -->
<div class="text-[#bada55]">...</div>
```

Sometimes it really is ambiguous though, for example when using CSS variables:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:text-(--my-var)] -->
<div class="text-(--my-var)">...</div>
```

In these situations, you can "hint" the underlying type to Tailwind by adding a [CSS data type](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types) before the value:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:text-(length:--my-var),text-(color:--my-var)] -->
<!-- Will generate a font-size utility -->
<div class="text-(length:--my-var)">...</div>

<!-- Will generate a color utility -->
<div class="text-(color:--my-var)">...</div>
```

## Using custom CSS

While Tailwind is designed to handle the bulk of your styling needs, there is nothing stopping you from just writing plain CSS when you need to:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

/* [!code highlight:4] */
.my-custom-style {
  /* ... */
}
```

### Adding base styles

If you just want to set some defaults for the page (like the text color, background color, or font family), the easiest option is just adding some classes to the `html` or `body` elements:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-gray-100,font-serif,text-gray-900] -->
<!doctype html>
<html lang="en" class="bg-gray-100 font-serif text-gray-900">
  <!-- ... -->
</html>
```

This keeps your base styling decisions in your markup alongside all of your other styles, instead of hiding them in a separate file.

If you want to add your own default base styles for specific HTML elements, use the `@layer` directive to add those styles to Tailwind's `base` layer:

```css
/* [!code filename:CSS] */
/* [!code highlight:2] */
@layer base {
  h1 {
    font-size: var(--text-2xl);
  }

  h2 {
    font-size: var(--text-xl);
  }
  /* [!code highlight:2] */
}
```

### Adding component classes

Use the `components` layer for any more complicated classes you want to add to your project that you'd still like to be able to override with utility classes.

Traditionally these would be classes like `card`, `btn`, `badge` — that kind of thing.

```css
/* [!code filename:CSS] */
/* [!code highlight:2] */
@layer components {
  .card {
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: --spacing(6);
    box-shadow: var(--shadow-xl);
  }
  /* [!code highlight:2] */
}
```

By defining component classes in the `components` layer, you can still use utility classes to override them when necessary:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:card,rounded-none] -->
<!-- Will look like a card, but with square corners -->
<div class="card rounded-none">
  <!-- ... -->
</div>
```

Using Tailwind you probably don't need these types of classes as often as you think. Read our guide on [managing duplication](/docs/styling-with-utility-classes#managing-duplication) for our recommendations.

The `components` layer is also a good place to put custom styles for any third-party components you're using:

```css
/* [!code filename:CSS] */
@layer components {
  .select2-dropdown {
    /* ... */
  }
}
```

### Using variants

Use the `@variant` directive to apply a Tailwind variant within custom CSS:

```css
/* [!code filename:app.css] */
.my-element {
  background: white;

  /* [!code highlight:4] */
  @variant dark {
    background: black;
  }
}
```

```css
/* [!code filename:Compiled CSS] */
.my-element {
  background: white;

  /* [!code highlight:4] */
  @media (prefers-color-scheme: dark) {
    background: black;
  }
}
```

If you need to apply multiple variants at the same time, stack them using the same syntax you would in HTML:

```css
/* [!code filename:app.css] */
.my-element {
  background: white;

  /* [!code highlight:4] */
  @variant hover:focus {
    background: black;
  }
}
```

```css
/* [!code filename:Compiled CSS] */
.my-element {
  background: white;

  /* [!code highlight:8] */
  &:hover {
    @media (hover: hover) {
      &:focus {
        background: black;
      }
    }
  }
}
```

To apply the same styles for multiple variants, separate each variant with a comma:

```css
/* [!code filename:app.css] */
.my-element {
  background: white;

  /* [!code highlight:4] */
  @variant hover, focus {
    background: black;
  }
}
```

```css
/* [!code filename:Compiled CSS] */
.my-element {
  background: white;

  /* [!code highlight:6] */
  &:hover {
    @media (hover: hover) {
      background: black;
    }
  }

  /* [!code highlight:4] */
  &:focus {
    background: black;
  }
}
```

## Adding custom utilities

### Simple utilities

In addition to using the utilities that ship with Tailwind, you can also add your own custom utilities. This can be useful when there's a CSS feature you'd like to use in your project that Tailwind doesn't include utilities for out of the box.

Use the `@utility` directive to add a custom utility to your project:

```css
/* [!code filename:CSS] */
@utility content-auto {
  content-visibility: auto;
}
```

You can now use this utility in your HTML:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:content-auto] -->
<div class="content-auto">
  <!-- ... -->
</div>
```

It will also work with variants like `hover`, `focus` and `lg`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:hover:content-auto] -->
<div class="hover:content-auto">
  <!-- ... -->
</div>
```

Custom utilities are automatically inserted into the `utilities` layer along with all of the built-in utilities in the framework.

### Complex utilities

If your custom utility is more complex than a single class name, use nesting to define the utility:

```css
/* [!code filename:CSS] */
@utility scrollbar-hidden {
  &::-webkit-scrollbar {
    display: none;
  }
}
```

### Functional utilities

In addition to registering simple utilities with the `@utility` directive, you can also register functional utilities that accept an argument:

```css
/* [!code filename:CSS] */
@utility tab-* {
  /* prettier-ignore */
  tab-size: --value(--tab-size-*);
}
```

The special `--value()` function is used to resolve the utility value.

#### Matching theme values

Use the `--value(--theme-key-*)` syntax to resolve the utility value against a set of theme keys:

```css
/* [!code filename:CSS] */
@theme {
  --tab-size-2: 2;
  --tab-size-4: 4;
  --tab-size-github: 8;
}

@utility tab-* {
  /* [!code highlight:2] */
  /* prettier-ignore */
  tab-size: --value(--tab-size-*);
}
```

This will match utilities like `tab-2`, `tab-4`, and `tab-github`.

#### Bare values

To resolve the value as a bare value, use the `--value({type})` syntax, where `{type}` is the data type you want to validate the bare value as:

```css
/* [!code filename:CSS] */
@utility tab-* {
  tab-size: --value(integer);
}
```

This will match utilities like `tab-1` and `tab-76`.

Available bare value data types are: `number`, `integer`, `ratio`, and `percentage`.

#### Literal values

To support literal values, use the `--value('literal')` syntax (notice the quotes):

```css
/* [!code filename:CSS] */
@utility tab-* {
  tab-size: --value("inherit", "initial", "unset");
}
```

This will match utilities like `tab-inherit`, `tab-initial`, and `tab-unset`.

#### Arbitrary values

To support arbitrary values, use the `--value([{type}])` syntax (notice the square brackets) to tell Tailwind which types are supported as an arbitrary value:

```css
/* [!code filename:CSS] */
@utility tab-* {
  tab-size: --value([integer]);
}
```

This will match utilities like `tab-[1]` and `tab-[76]`.

Available arbitrary value data types are: `absolute-size`, `angle`, `bg-size`, `color`, `family-name`, `generic-name`, `image`, `integer`, `length`, `line-width`, `number`, `percentage`, `position`, `ratio`, `relative-size`, `url`, `vector`, and `*`.

#### Supporting theme, bare, and arbitrary values together

All three forms of the `--value()` function can be used within a rule as multiple declarations, and any declarations that fail to resolve will be omitted in the output:

```css
/* [!code filename:CSS] */
@theme {
  --tab-size-github: 8;
}

@utility tab-* {
  tab-size: --value([integer]);
  tab-size: --value(integer);
  /* prettier-ignore */
  tab-size: --value(--tab-size-*);
}
```

This makes it possible to treat the value differently in each case if necessary, for example translating a bare integer to a percentage:

```css
/* [!code filename:CSS] */
@utility opacity-* {
  opacity: --value([percentage]);
  /* [!code highlight:2] */
  opacity: calc(--value(integer) * 1%);
  /* prettier-ignore */
  opacity: --value(--opacity-*);
}
```

The `--value()` function can also take multiple arguments and resolve them left to right if you don't need to treat the return value differently in different cases:

```css
/* [!code filename:CSS] */
@theme {
  --tab-size-github: 8;
}

@utility tab-* {
  /* [!code highlight:2] */
  /* prettier-ignore */
  tab-size: --value(--tab-size-*, integer, [integer]);
}

@utility opacity-* {
  opacity: calc(--value(integer) * 1%);
  /* [!code highlight:2] */
  /* prettier-ignore */
  opacity: --value(--opacity-*, [percentage]);
}
```

#### Default values

Use `--default()` inside `--value()` to support a default value when the utility is used without an explicit value:

```css
/* [!code filename:CSS] */
/* [!code word:--default(4)] */
@utility tab-* {
  tab-size: --value(integer, --default(4));
}
```

This matches both `tab-2` and `tab-4`, as well as just `tab` which uses the default value of `4`:

```css
/* [!code filename:Compiled CSS] */
/* [!code highlight:4] */
.tab {
  tab-size: 4;
}

.tab-2 {
  tab-size: 2;
}
```

The `--default()` function can also be used inside `--modifier()` to provide a default value when no modifier is present:

```css
/* [!code filename:CSS] */
/* [!code word:--default(1)] */
@utility tab-* {
  tab-size: --value(integer);
  line-height: --modifier(integer, --default(1));
}
```

This matches `tab-2/3` with a line-height of `3`, and `tab-2` with a line-height of `1`.

#### Negative values

To support negative values, register separate positive and negative utilities into separate declarations:

```css
/* [!code filename:CSS] */
@utility inset-* {
  inset: --spacing(--value(integer));
  inset: --value([percentage], [length]);
}

/* [!code highlight:4] */
@utility -inset-* {
  inset: --spacing(--value(integer) * -1);
  inset: calc(--value([percentage], [length]) * -1);
}
```

#### Modifiers

Modifiers are handled using the `--modifier()` function which works exactly like the `--value()` function but operates on a modifier if present:

```css
/* [!code filename:CSS] */
@utility text-* {
  /* prettier-ignore */
  font-size: --value(--text-*, [length]);
  /* [!code highlight:2] */
  /* prettier-ignore */
  line-height: --modifier(--leading-*, [length], [*]);
}
```

If a modifier isn't present, any declaration depending on a modifier is just not included in the output.

#### Fractions

To handle fractions, we rely on the CSS `ratio` data type. If this is used with `--value()`, it's a signal to Tailwind to treat the value and modifier as a single value:

```css
/* [!code filename:CSS] */
@utility aspect-* {
  /* [!code word:ratio, \[ratio\]] */
  /* prettier-ignore */
  aspect-ratio: --value(--aspect-ratio-*, ratio, [ratio]);
}
```

This will match utilities like `aspect-square`, `aspect-3/4`, and `aspect-[7/9]`.

## Adding custom variants

In addition to using the variants that ship with Tailwind, you can also add your own custom variants using the `@custom-variant` directive:

```css
@custom-variant theme-midnight {
  &:where([data-theme="midnight"] *) {
    @slot;
  }
}
```

Now you can use the `theme-midnight:<utility>` variant in your HTML:

```html
<!-- [!code classes:theme-midnight:bg-black] -->
<html data-theme="midnight">
  <button class="theme-midnight:bg-black ..."></button>
</html>
```

You can create variants using the shorthand syntax when nesting isn't required:

```css
@custom-variant theme-midnight (&:where([data-theme="midnight"] *));
```

When a custom variant has multiple rules, they can be nested within each other:

```css
@custom-variant any-hover {
  @media (any-hover: hover) {
    &:hover {
      @slot;
    }
  }
}
```


---

# align-content

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/align-content*

| Clase | Propiedades CSS |
| :--- | :--- |
| `content-normal` | `align-content: normal;` |
| `content-center` | `align-content: center;` |
| `content-start` | `align-content: flex-start;` |
| `content-end` | `align-content: flex-end;` |
| `content-between` | `align-content: space-between;` |
| `content-around` | `align-content: space-around;` |
| `content-evenly` | `align-content: space-evenly;` |
| `content-baseline` | `align-content: baseline;` |
| `content-stretch` | `align-content: stretch;` |

## Examples

### Start

Use `content-start` to pack rows in a container against the start of the cross axis:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-3 content-start gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-purple-500 p-4">01</div>
        <div className="rounded-lg bg-purple-500 p-4">02</div>
        <div className="rounded-lg bg-purple-500 p-4">03</div>
        <div className="rounded-lg bg-purple-500 p-4">04</div>
        <div className="rounded-lg bg-purple-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-start] -->
<div class="grid h-56 grid-cols-3 content-start gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Center

Use `content-center` to pack rows in a container in the center of the cross axis:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-center gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-sky-500 p-4">01</div>
        <div className="rounded-lg bg-sky-500 p-4">02</div>
        <div className="rounded-lg bg-sky-500 p-4">03</div>
        <div className="rounded-lg bg-sky-500 p-4">04</div>
        <div className="rounded-lg bg-sky-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-center] -->
<div class="grid h-56 grid-cols-3 content-center gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### End

Use `content-end` to pack rows in a container against the end of the cross axis:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-end gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-pink-500 p-4">01</div>
        <div className="rounded-lg bg-pink-500 p-4">02</div>
        <div className="rounded-lg bg-pink-500 p-4">03</div>
        <div className="rounded-lg bg-pink-500 p-4">04</div>
        <div className="rounded-lg bg-pink-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-end] -->
<div class="grid h-56 grid-cols-3 content-end gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Space between

Use `content-between` to distribute rows in a container such that there is an equal amount of space between each line:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-between gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-violet-500 p-4">01</div>
        <div className="rounded-lg bg-violet-500 p-4">02</div>
        <div className="rounded-lg bg-violet-500 p-4">03</div>
        <div className="rounded-lg bg-violet-500 p-4">04</div>
        <div className="rounded-lg bg-violet-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-between] -->
<div class="grid h-56 grid-cols-3 content-between gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Space around

Use `content-around` to distribute rows in a container such that there is an equal amount of space around each line:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-around gap-x-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-blue-500 p-4">01</div>
        <div className="rounded-lg bg-blue-500 p-4">02</div>
        <div className="rounded-lg bg-blue-500 p-4">03</div>
        <div className="rounded-lg bg-blue-500 p-4">04</div>
        <div className="rounded-lg bg-blue-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-around] -->
<div class="grid h-56 grid-cols-3 content-around gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Space evenly

Use `content-evenly` to distribute rows in a container such that there is an equal amount of space around each item, but also accounting for the doubling of space you would normally see between each item when using `content-around`:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-evenly gap-x-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-indigo-500 p-4">01</div>
        <div className="rounded-lg bg-indigo-500 p-4">02</div>
        <div className="rounded-lg bg-indigo-500 p-4">03</div>
        <div className="rounded-lg bg-indigo-500 p-4">04</div>
        <div className="rounded-lg bg-indigo-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-evenly] -->
<div class="grid h-56 grid-cols-3 content-evenly gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Stretch

Use `content-stretch` to allow content items to fill the available space along the container’s cross axis:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 content-stretch gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">01</div>
        <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">02</div>
        <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">03</div>
        <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">04</div>
        <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-stretch] -->
<div class="grid h-56 grid-cols-3 content-stretch gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Normal

Use `content-normal` to pack content items in their default position as if no `align-content` value was set:

  {
    <div className="grid h-56 grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 w-full grid-cols-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">01</div>
        <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
        <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">03</div>
        <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">04</div>
        <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:content-normal] -->
<div class="grid h-56 grid-cols-3 content-normal gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Responsive design


---

# align-items

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/align-items*

"Utilities for controlling how flex and grid items are positioned along a container's cross axis.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `items-start` | `align-items: flex-start;` |
| `items-end` | `align-items: flex-end;` |
| `items-end-safe` | `align-items: safe flex-end;` |
| `items-center` | `align-items: center;` |
| `items-center-safe` | `align-items: safe center;` |
| `items-baseline` | `align-items: baseline;` |
| `items-baseline-last` | `align-items: last baseline;` |
| `items-stretch` | `align-items: stretch;` |

## Examples

### Stretch

Use the `items-stretch` utility to stretch items to fill the container's cross axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full items-stretch gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-cyan-500 py-4">01</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-cyan-500 py-12">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-cyan-500 py-8">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-stretch] -->
<div class="flex items-stretch ...">
  <div class="py-4">01</div>
  <div class="py-12">02</div>
  <div class="py-8">03</div>
</div>
```

### Start

Use the `items-start` utility to align items to the start of the container's cross axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full items-start gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-pink-500 py-4">01</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-pink-500 py-12">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-pink-500 py-8">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-start] -->
<div class="flex items-start ...">
  <div class="py-4">01</div>
  <div class="py-12">02</div>
  <div class="py-8">03</div>
</div>
```

### Center

Use the `items-center` utility to align items along the center of the container's cross axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full items-center gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-violet-500 py-4">01</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-violet-500 py-12">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-violet-500 py-8">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-center] -->
<div class="flex items-center ...">
  <div class="py-4">01</div>
  <div class="py-12">02</div>
  <div class="py-8">03</div>
</div>
```

### End

Use the `items-end` utility to align items to the end of the container's cross axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full items-end gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-sky-500 py-4">01</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-sky-500 py-12">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-sky-500 py-8">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-end] -->
<div class="flex items-end ...">
  <div class="py-4">01</div>
  <div class="py-12">02</div>
  <div class="py-8">03</div>
</div>
```

### Baseline

Use the `items-baseline` utility to align items along the container's cross axis such that all of their baselines align:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full items-baseline gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-blue-500 pt-2 pb-6">01</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-blue-500 pt-8 pb-12">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-blue-500 pt-12 pb-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-baseline] -->
<div class="flex items-baseline ...">
  <div class="pt-2 pb-6">01</div>
  <div class="pt-8 pb-12">02</div>
  <div class="pt-12 pb-4">03</div>
</div>
```

### Last baseline

Use the `items-baseline-last` utility to align items along the container's cross axis such that all of their baselines align with the last baseline in the container:

  {
    <div className="mx-auto grid max-w-md divide-y divide-gray-100 border-x border-x-gray-200 text-gray-700 dark:divide-gray-800 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-300">
      <div className="grid grid-cols-[1fr_auto] items-baseline-last gap-x-4 px-4 py-6">
        <div className="grid grid-cols-[auto_1fr] gap-x-4 max-sm:grid-cols-1">
          <img className="size-8 rounded-full" src={spencerSharp.src} alt="" />
          <div className="font-semibold text-gray-900 sm:col-start-2 dark:text-white">Spencer Sharp</div>
          <p className="text-sm sm:col-start-2">Working on the future of astronaut recruitment at Space Recruit.</p>
        </div>
        <a
          href="#"
          className="font-mono text-xs font-medium text-gray-400 underline hover:text-blue-500 dark:text-gray-500"
        >
          spacerecruit.com
        </a>
      </div>
      <div className="grid grid-cols-[1fr_auto] items-baseline-last gap-x-4 px-4 py-6">
        <div className="grid grid-cols-[auto_1fr] gap-x-4 max-sm:grid-cols-1">
          <img
            className="size-8 rounded-full"
            src="https://images.unsplash.com/photo-1590895340509-793cb98788c9?q=80&w=256&h=256&&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
            alt=""
          />
          <div className="font-semibold text-gray-900 sm:col-start-2 dark:text-white">Alex Reed</div>
          <p className="text-sm sm:col-start-2">A multidisciplinary designer.</p>
        </div>
        <a
          href="#"
          className="font-mono text-xs font-medium text-gray-400 underline hover:text-blue-500 dark:text-gray-500"
        >
          alex-reed.com
        </a>
      </div>
    </div>
  }

```html
<!-- [!code classes:items-baseline-last] -->
<div class="grid grid-cols-[1fr_auto] items-baseline-last">
  <div>
    <img src="img/spencer-sharp.jpg" />
    <h4>Spencer Sharp</h4>
    <p>Working on the future of astronaut recruitment at Space Recruit.</p>
  </div>
  <p>spacerecruit.com</p>
</div>
```

This is useful for ensuring that text items align with each other, even if they have different heights.

### Responsive design


---

# align-self

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/align-self*

"Utilities for controlling how an individual flex or grid item is positioned along its container's cross axis.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `self-auto` | `align-self: auto;` |
| `self-start` | `align-self: flex-start;` |
| `self-end` | `align-self: flex-end;` |
| `self-end-safe` | `align-self: safe flex-end;` |
| `self-center` | `align-self: center;` |
| `self-center-safe` | `align-self: safe center;` |
| `self-stretch` | `align-self: stretch;` |
| `self-baseline` | `align-self: baseline;` |
| `self-baseline-last` | `align-self: last baseline;` |

## Examples

### Auto

Use the `self-auto` utility to align an item based on the value of the container's `align-items` property:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex h-24 w-full items-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-500">
          01
        </div>
        <div className="flex flex-1 items-center justify-center self-auto rounded-lg bg-sky-500 p-4">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-500">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-auto] -->
<div class="flex items-stretch ...">
  <div>01</div>
  <div class="self-auto ...">02</div>
  <div>03</div>
</div>
```

### Start

Use the `self-start` utility to align an item to the start of the container's cross axis, despite the container's `align-items` value:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex h-24 w-full items-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">
          01
        </div>
        <div className="flex flex-1 items-center justify-center self-start rounded-lg bg-pink-500 p-4">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-start] -->
<div class="flex items-stretch ...">
  <div>01</div>
  <div class="self-start ...">02</div>
  <div>03</div>
</div>
```

### Center

Use the `self-center` utility to align an item along the center of the container's cross axis, despite the container's `align-items` value:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex h-24 w-full items-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">
          01
        </div>
        <div className="flex flex-1 items-center justify-center self-center rounded-lg bg-purple-500 p-4">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-center] -->
<div class="flex items-stretch ...">
  <div>01</div>
  <div class="self-center ...">02</div>
  <div>03</div>
</div>
```

### End

Use the `self-end` utility to align an item to the end of the container's cross axis, despite the container's `align-items` value:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex h-24 w-full items-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">
          01
        </div>
        <div className="flex flex-1 items-center justify-center self-end rounded-lg bg-indigo-500 p-4">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-end] -->
<div class="flex items-stretch ...">
  <div>01</div>
  <div class="self-end ...">02</div>
  <div>03</div>
</div>
```

### Stretch

Use the `self-stretch` utility to stretch an item to fill the container's cross axis, despite the container's `align-items` value:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex h-24 w-full items-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          01
        </div>
        <div className="flex flex-1 items-center justify-center self-stretch rounded-lg bg-fuchsia-500 p-4">02</div>
        <div className="flex flex-1 items-center justify-center rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-stretch] -->
<div class="flex items-stretch ...">
  <div>01</div>
  <div class="self-stretch ...">02</div>
  <div>03</div>
</div>
```

### Baseline

Use the `self-baseline` utility to align an item such that its baseline aligns with the baseline of the flex container's cross axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex w-full gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center self-baseline rounded-lg bg-blue-500 pt-2 pb-6">01</div>
        <div className="flex flex-1 items-center justify-center self-baseline rounded-lg bg-blue-500 pt-8 pb-12">
          02
        </div>
        <div className="flex flex-1 items-center justify-center self-baseline rounded-lg bg-blue-500 pt-12 pb-4">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-baseline] -->
<div class="flex ...">
  <div class="self-baseline pt-2 pb-6">01</div>
  <div class="self-baseline pt-8 pb-12">02</div>
  <div class="self-baseline pt-12 pb-4">03</div>
</div>
```

### Last baseline

Use the `self-baseline-last` utility to align an item along the container's cross axis such that its baseline aligns with the last baseline in the container:

  {
    <div className="mx-auto grid max-w-md divide-y divide-gray-100 border-x border-x-gray-200 text-gray-700 dark:divide-gray-800 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-300">
      <div className="grid grid-cols-[auto_1fr_auto] gap-x-4 px-4 py-6">
        <img className="size-8 rounded-full" src={spencerSharp.src} alt="" />
        <div className="font-semibold text-gray-900 sm:col-start-2 dark:text-white">Spencer Sharp</div>
        <p className="self-baseline-last text-sm sm:col-start-2">
          Working on the future of astronaut recruitment at Space Recruit.
        </p>
        <a
          href="#"
          className="self-baseline-last font-mono text-xs font-medium text-gray-400 underline hover:text-blue-500 dark:text-gray-500"
        >
          spacerecruit.com
        </a>
      </div>
      <div className="grid grid-cols-[auto_1fr_auto] gap-x-4 px-4 py-6">
        <img
          className="size-8 rounded-full"
          src="https://images.unsplash.com/photo-1590895340509-793cb98788c9?q=80&w=256&h=256&&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
          alt=""
        />
        <div className="font-semibold text-gray-900 sm:col-start-2 dark:text-white">Alex Reed</div>
        <p className="self-baseline-last text-sm sm:col-start-2">A multidisciplinary designer.</p>
        <a
          href="#"
          className="self-baseline-last font-mono text-xs font-medium text-gray-400 underline hover:text-blue-500 dark:text-gray-500"
        >
          alex-reed.com
        </a>
      </div>
    </div>
  }

```html
<!-- [!code classes:self-baseline-last] -->
<div class="grid grid-cols-[1fr_auto]">
  <div>
    <img src="img/spencer-sharp.jpg" />
    <h4>Spencer Sharp</h4>
    <p class="self-baseline-last">Working on the future of astronaut recruitment at Space Recruit.</p>
  </div>
  <p class="self-baseline-last">spacerecruit.com</p>
</div>
```

This is useful for ensuring that text items align with each other, even if they have different heights.

### Responsive design


---

# animation

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/animation*

| Clase | Propiedades CSS |
| :--- | :--- |
| `animate-spin` | `animation: var(--animate-spin); /* spin 1s linear infinite */          @keyframes spin {           to {             transform: rotate(360deg);           }         }` |
| `animate-ping` | `animation: var(--animate-ping); /* ping 1s cubic-bezier(0, 0, 0.2, 1) infinite */          @keyframes ping {           75%, 100% {             transform: scale(2);             opacity: 0;           }         }` |
| `animate-pulse` | `animation: var(--animate-pulse); /* pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite */          @keyframes pulse {           50% {             opacity: 0.5;           }         }` |
| `animate-bounce` | `animation: var(--animate-bounce); /* bounce 1s infinite */          @keyframes bounce {           0%, 100% {             transform: translateY(-25%);             animation-timing-function: cubic-bezier(0.8, 0, 1, 1);           }           50% {             transform: none;             animation-timing-function: cubic-bezier(0, 0, 0.2, 1);           }         }` |
| `animate-none` | `animation: none;` |
| `animate-(<custom-property>)` | `animation: var(<custom-property>);` |
| `animate-[<value>]` | `animation: <value>;` |

## Examples

### Adding a spin animation

Use the `animate-spin` utility to add a linear spin animation to elements like loading indicators:

  {
    <div className="flex items-center justify-center">
      <button
        type="button"
        className="inline-flex cursor-not-allowed items-center rounded-md bg-indigo-500 px-4 py-2 text-sm leading-6 font-semibold text-white transition duration-150 ease-in-out hover:bg-indigo-400"
        disabled
      >
        <svg
          className="mr-3 -ml-1 size-5 animate-spin text-white"
          xmlns="http://www.w3.org/2000/svg"
          fill="none"
          viewBox="0 0 24 24"
        >
          <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
          <path
            className="opacity-75"
            fill="currentColor"
            d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
          ></path>
        </svg>
        Processing…
      </button>
    </div>
  }

```html
<!-- [!code classes:animate-spin] -->
<button type="button" class="bg-indigo-500 ..." disabled>
  <svg class="mr-3 size-5 animate-spin ..." viewBox="0 0 24 24">
    <!-- ... -->
  </svg>
  Processing…
</button>
```

### Adding a ping animation

Use the `animate-ping` utility to make an element scale and fade like a radar ping or ripple of water—useful for things like notification badges:

  {
    <div className="flex items-center justify-center">
      <span className="relative inline-flex">
        <button
          type="button"
          className="inline-flex cursor-not-allowed items-center rounded-md bg-white px-4 py-2 text-sm leading-6 font-semibold text-sky-500 ring-1 ring-gray-900/10 transition duration-150 ease-in-out dark:bg-white/5 dark:ring-white/20"
          disabled
        >
          Transactions
        </button>
        <span className="absolute top-0 right-0 -mt-1 -mr-1 flex size-3">
          <span className="absolute inline-flex h-full w-full animate-ping rounded-full bg-sky-400 opacity-75"></span>
          <span className="relative inline-flex size-3 rounded-full bg-sky-500"></span>
        </span>
      </span>
    </div>
  }

```html
<!-- [!code classes:animate-ping] -->
<span class="relative flex size-3">
  <span class="absolute inline-flex h-full w-full animate-ping rounded-full bg-sky-400 opacity-75"></span>
  <span class="relative inline-flex size-3 rounded-full bg-sky-500"></span>
</span>
```

### Adding a pulse animation

Use the `animate-pulse` utility to make an element gently fade in and out—useful for things like skeleton loaders:

  {
    <div className="flex items-center justify-center">
      <div className="-lg h-28 w-full max-w-xs rounded-lg bg-white p-4 ring-1 ring-gray-900/5 dark:bg-gray-800">
        <div className="flex animate-pulse space-x-4">
          <div className="size-10 rounded-full bg-gray-200 dark:bg-gray-700"></div>
          <div className="flex-1 space-y-6 py-1">
            <div className="h-2 rounded bg-gray-200 dark:bg-gray-700"></div>
            <div className="space-y-3">
              <div className="grid grid-cols-3 gap-4">
                <div className="col-span-2 h-2 rounded bg-gray-200 dark:bg-gray-700"></div>
                <div className="col-span-1 h-2 rounded bg-gray-200 dark:bg-gray-700"></div>
              </div>
              <div className="h-2 rounded bg-gray-200 dark:bg-gray-700"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:animate-pulse] -->
<div class="mx-auto w-full max-w-sm rounded-md border border-blue-300 p-4">
  <div class="flex animate-pulse space-x-4">
    <div class="size-10 rounded-full bg-gray-200"></div>
    <div class="flex-1 space-y-6 py-1">
      <div class="h-2 rounded bg-gray-200"></div>
      <div class="space-y-3">
        <div class="grid grid-cols-3 gap-4">
          <div class="col-span-2 h-2 rounded bg-gray-200"></div>
          <div class="col-span-1 h-2 rounded bg-gray-200"></div>
        </div>
        <div class="h-2 rounded bg-gray-200"></div>
      </div>
    </div>
  </div>
</div>
```

### Adding a bounce animation

Use the `animate-bounce` utility to make an element bounce up and down—useful for things like "scroll down" indicators:

  {
    <div className="flex justify-center">
      <div className="-lg flex size-10 animate-bounce items-center justify-center rounded-full bg-white p-2 ring-1 ring-gray-900/5 dark:bg-white/5 dark:ring-white/20">
        <svg
          className="size-6 text-violet-500"
          fill="none"
          strokeLinecap="round"
          strokeLinejoin="round"
          strokeWidth="2"
          viewBox="0 0 24 24"
          stroke="currentColor"
        >
          <path d="M19 14l-7 7m0 0l-7-7m7 7V3"></path>
        </svg>
      </div>
    </div>
  }

```html
<!-- [!code classes:animate-bounce] -->
<svg class="size-6 animate-bounce ...">
  <!-- ... -->
</svg>
```

### Supporting reduced motion

For situations where the user has specified that they prefer reduced motion, you can conditionally apply animations and transitions using the `motion-safe` and `motion-reduce` variants:

```html
<!-- [!code classes:motion-safe:animate-spin] -->
<button type="button" class="bg-indigo-600 ..." disabled>
  <svg class="mr-3 size-5 motion-safe:animate-spin ..." viewBox="0 0 24 24">
    <!-- ... -->
  </svg>
  Processing
</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# appearance

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/appearance*

| Clase | Propiedades CSS |
| :--- | :--- |
| `appearance-none` | `appearance: none;` |
| `appearance-auto` | `appearance: auto;` |

## Examples

### Removing default appearance

Use `appearance-none` to reset any browser specific styling on an element:

  {
    <div className="mx-auto max-w-sm items-center">
      <div className="my-6 flex">
        <select className="w-20">
          <option>Yes</option>
          <option>No</option>
          <option>Maybe</option>
        </select>
        <div className="mx-6 text-sm font-semibold text-gray-900 dark:text-gray-200">
          Default browser styles applied
        </div>
      </div>
      <div className="my-6 flex items-center">
        <div className="grid">
          <svg
            className="pointer-events-none relative right-1 z-10 col-start-1 row-start-1 h-4 w-4 self-center justify-self-end forced-colors:hidden"
            viewBox="0 0 16 16"
            fill="currentColor"
            aria-hidden="true"
          >
            <path
              fillRule="evenodd"
              d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z"
              clipRule="evenodd"
            />
          </svg>
          <select className="col-start-1 row-start-1 w-20 appearance-none rounded-lg border border-gray-300 bg-gray-50 px-2 text-gray-700 hover:border-cyan-500 hover:bg-white dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:border-cyan-700 dark:hover:bg-gray-700 forced-colors:appearance-auto">
            <option>Yes</option>
            <option>No</option>
            <option>Maybe</option>
          </select>
        </div>
        <div className="mx-6 text-sm font-semibold text-gray-900 dark:text-gray-200">Remove default browser styles</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:appearance-none] -->
<select>
  <option>Yes</option>
  <option>No</option>
  <option>Maybe</option>
</select>

<div class="grid">
  <select class="col-start-1 row-start-1 appearance-none bg-gray-50 dark:bg-gray-800 ...">
    <option>Yes</option>
    <option>No</option>
    <option>Maybe</option>
  </select>
  <svg class="pointer-events-none col-start-1 row-start-1 ...">
    <!-- ... -->
  </svg>
</div>
```

This utility is often used when creating custom form components.

### Restoring default appearance

Use `appearance-auto` to restore the default browser specific styling on an element:

  {
    <div className="mx-auto my-6 grid max-w-sm items-center justify-center gap-8">
      <div className="flex items-center">
        <label
          htmlFor="checkbox_2"
          className="mx-6 grid grid-flow-col items-center gap-3 text-sm font-semibold text-gray-900 select-none dark:text-gray-200"
        >
          <div className="grid items-center justify-center">
            <input
              type="checkbox"
              id="checkbox_2"
              defaultChecked
              className="peer col-start-1 row-start-1 h-4 w-4 appearance-none rounded border border-gray-300 ring-transparent checked:border-violet-600 checked:bg-violet-600 dark:border-gray-600 dark:checked:border-violet-600 forced-colors:appearance-auto"
            />
            <svg
              viewBox="0 0 14 14"
              fill="none"
              className="invisible col-start-1 row-start-1 stroke-white peer-checked:visible dark:text-violet-300 forced-colors:hidden"
            >
              <path d="M3 8L6 11L11 3.5" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"></path>
            </svg>
          </div>
          Falls back to default appearance
        </label>
      </div>
      <div className="flex items-center">
        <label
          htmlFor="checkbox_1"
          className="mx-6 grid grid-flow-col items-center gap-3 text-sm font-semibold text-gray-900 select-none dark:text-gray-200"
        >
          <div className="grid items-center justify-center">
            <input
              type="checkbox"
              id="checkbox_1"
              defaultChecked
              className="peer col-start-1 row-start-1 h-4 w-4 appearance-none rounded border border-gray-300 ring-transparent checked:border-violet-600 checked:bg-violet-600 dark:border-gray-600 dark:checked:border-violet-600"
            />
            <svg
              viewBox="0 0 14 14"
              fill="none"
              className="invisible col-start-1 row-start-1 stroke-white peer-checked:visible dark:text-violet-300"
            >
              <path d="M3 8L6 11L11 3.5" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"></path>
            </svg>
          </div>
          Keeps custom appearance
        </label>
      </div>
    </div>
  }

```html
<!-- [!code classes:forced-colors:appearance-auto,forced-colors:hidden] -->
<label>
  <div>
    <input type="checkbox" class="appearance-none forced-colors:appearance-auto ..." />
    <svg class="invisible peer-checked:visible forced-colors:hidden ...">
      <!-- ... -->
    </svg>
  </div>
  Falls back to default appearance
</label>

<label>
  <div>
    <input type="checkbox" class="appearance-none ..." />
    <svg class="invisible peer-checked:visible ...">
      <!-- ... -->
    </svg>
  </div>
  Keeps custom appearance
</label>
```

This is useful for reverting to the standard browser controls in certain accessibility modes.

### Responsive design


---

# aspect-ratio

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/aspect-ratio*

| Clase | Propiedades CSS |
| :--- | :--- |
| `aspect-<ratio>` | `aspect-ratio: <ratio>;` |
| `aspect-square` | `aspect-ratio: 1 / 1;` |
| `aspect-video` | `aspect-ratio: var(--aspect-video); /* 16 / 9 */` |
| `aspect-auto` | `aspect-ratio: auto;` |
| `aspect-(<custom-property>)` | `aspect-ratio: var(<custom-property>);` |
| `aspect-[<value>]` | `aspect-ratio: <value>;` |

## Examples

### Basic example

Use <code>aspect-<var>&lt;ratio&gt;</var></code> utilities like `aspect-3/2` to give an element a specific aspect ratio:

  {
    <img
      className="mx-auto aspect-3/2 w-full max-w-sm rounded-lg object-cover"
      src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1200&q=80"
    />
  }

```html
<!-- [!code classes:aspect-3/2] -->
<img class="aspect-3/2 object-cover ..." src="/img/villas.jpg" />
```

### Using a video aspect ratio

Use the `aspect-video` utility to give a video element a 16 / 9 aspect ratio:

  {
    <iframe
      className="aspect-video w-full rounded-lg"
      src="https://www.youtube.com/embed/dQw4w9WgXcQ"
      allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
      allowFullScreen
    ></iframe>
  }

```html
<!-- [!code classes:aspect-video] -->
<iframe class="aspect-video ..." src="https://www.youtube.com/embed/dQw4w9WgXcQ"></iframe>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# backdrop-filter: blur()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-blur*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-blur-xs` | `backdrop-filter: blur(var(--blur-xs)); /* 4px */` |
| `backdrop-blur-sm` | `backdrop-filter: blur(var(--blur-sm)); /* 8px */` |
| `backdrop-blur-md` | `backdrop-filter: blur(var(--blur-md)); /* 12px */` |
| `backdrop-blur-lg` | `backdrop-filter: blur(var(--blur-lg)); /* 16px */` |
| `backdrop-blur-xl` | `backdrop-filter: blur(var(--blur-xl)); /* 24px */` |
| `backdrop-blur-2xl` | `backdrop-filter: blur(var(--blur-2xl)); /* 40px */` |
| `backdrop-blur-3xl` | `backdrop-filter: blur(var(--blur-3xl)); /* 64px */` |
| `backdrop-blur-none` | `backdrop-filter: ;` |
| `backdrop-blur-(<custom-property>)` | `backdrop-filter: blur(var(<custom-property>));` |
| `backdrop-blur-[<value>]` | `backdrop-filter: blur(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-blur-sm` and `backdrop-blur-lg` to control an element’s backdrop blur:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-blur-none
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-blur-none"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-blur-sm
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-blur-sm"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-blur-md
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-blur-md"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-blur-none,backdrop-blur-sm,backdrop-blur-md] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-blur-none ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-blur-sm ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-blur-md ..."></div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# backdrop-filter: brightness()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-brightness*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-brightness-<number>` | `backdrop-filter: brightness(<number>%);` |
| `backdrop-brightness-(<custom-property>)` | `backdrop-filter: brightness(var(<custom-property>));` |
| `backdrop-brightness-[<value>]` | `backdrop-filter: brightness(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-brightness-50` and `backdrop-brightness-100` to control an element's backdrop brightness:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-brightness-50
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-brightness-50"></div>
            <img
              className="h-32 w-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-brightness-150
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-brightness-150"></div>
            <img
              className="h-32 w-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-brightness-50,backdrop-brightness-150] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-brightness-50 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-brightness-150 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: contrast()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-contrast*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-contrast-<number>` | `backdrop-filter: contrast(<number>%);` |
| `backdrop-contrast-(<custom-property>)` | `backdrop-filter: contrast(var(<custom-property>));` |
| `backdrop-contrast-[<value>]` | `backdrop-filter: contrast(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-contrast-50` and `backdrop-contrast-100` to control an element's backdrop contrast:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-contrast-50
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-contrast-50"></div>
            <img
              className="h-32 w-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-contrast-200
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-contrast-200"></div>
            <img
              className="h-32 w-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-contrast-50,backdrop-contrast-200] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-contrast-50 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-contrast-200 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: grayscale()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-grayscale*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-grayscale` | `backdrop-filter: grayscale(100%);` |
| `backdrop-grayscale-<number>` | `backdrop-filter: grayscale(<number>%);` |
| `backdrop-grayscale-(<custom-property>)` | `backdrop-filter: grayscale(var(<custom-property>));` |
| `backdrop-grayscale-[<value>]` | `backdrop-filter: grayscale(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-grayscale-50` and `backdrop-grayscale` to control the grayscale effect applied to an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-grayscale-0
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-grayscale-0"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-grayscale-50
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-grayscale-50"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-grayscale
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-grayscale"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-grayscale-0,backdrop-grayscale-50,backdrop-grayscale] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-grayscale-0 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-grayscale-50 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-grayscale-200 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: hue-rotate()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-hue-rotate*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-hue-rotate-<number>` | `backdrop-filter: hue-rotate(<number>deg);` |
| `-backdrop-hue-rotate-<number>` | `backdrop-filter: hue-rotate(calc(<number>deg * -1));` |
| `backdrop-hue-rotate-(<custom-property>)` | `backdrop-filter: hue-rotate(var(<custom-property>));` |
| `backdrop-hue-rotate-[<value>]` | `backdrop-filter: hue-rotate(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-hue-rotate-90` and `backdrop-hue-rotate-180` to rotate the hue of an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-hue-rotate-90
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-hue-rotate-90"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-hue-rotate-180
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-hue-rotate-180"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-hue-rotate-270
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-hue-rotate-270"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-hue-rotate-90,backdrop-hue-rotate-180,backdrop-hue-rotate-270] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-hue-rotate-90 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-hue-rotate-180 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-hue-rotate-270 ..."></div>
</div>
```

### Using negative values

Use utilities like `-backdrop-hue-rotate-90` and `-backdrop-hue-rotate-180` to set a negative backdrop hue rotation value:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -backdrop-hue-rotate-15
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 -backdrop-hue-rotate-15"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -backdrop-hue-rotate-45
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 -backdrop-hue-rotate-45"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -backdrop-hue-rotate-90
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 -backdrop-hue-rotate-90"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-backdrop-hue-rotate-15,-backdrop-hue-rotate-45,-backdrop-hue-rotate-90] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 -backdrop-hue-rotate-15 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 -backdrop-hue-rotate-45 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 -backdrop-hue-rotate-90 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: invert()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-invert*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-invert` | `backdrop-filter: invert(100%);` |
| `backdrop-invert-<number>` | `backdrop-filter: invert(<number>%);` |
| `backdrop-invert-(<custom-property>)` | `backdrop-filter: invert(var(<custom-property>))` |
| `backdrop-invert-[<value>]` | `backdrop-filter: invert(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-invert` and `backdrop-invert-65` to control the color inversion of an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-invert-0
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert-0"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-invert-65
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert-65"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-invert
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-invert-0,backdrop-invert-65,backdrop-invert] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert-0 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert-65 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: opacity()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-opacity*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-opacity-<number>` | `backdrop-filter: opacity(<number>%);` |
| `backdrop-opacity-(<custom-property>)` | `backdrop-filter: opacity(var(<custom-property>));` |
| `backdrop-opacity-[<value>]` | `backdrop-filter: opacity(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-opacity-50` and `backdrop-opacity-75` to control the opacity of all the backdrop filters applied to an element:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-opacity-10
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert backdrop-opacity-10"></div>
            <img
              className="object-coveryea size-32 rounded-lg"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-opacity-60
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert backdrop-opacity-60"></div>
            <img
              className="object-coveryea size-32 rounded-lg"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-opacity-95
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-invert backdrop-opacity-95"></div>
            <img
              className="object-coveryea size-32 rounded-lg"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-opacity-10,backdrop-opacity-60,backdrop-opacity-95] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert backdrop-opacity-10 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert backdrop-opacity-60 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-invert backdrop-opacity-95 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: saturate()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-saturate*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-saturate-<number>` | `backdrop-filter: saturate(<number>%);` |
| `backdrop-saturate-(<custom-property>)` | `backdrop-filter: saturate(var(<custom-property>));` |
| `backdrop-saturate-[<value>]` | `backdrop-filter: saturate(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-saturate-50` and `backdrop-saturate-100` utilities to control the saturation of an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-saturate-50
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-saturate-50"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-saturate-125
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-saturate-125"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-saturate-200
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-saturate-200"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-saturate-50,backdrop-saturate-125,backdrop-saturate-200] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-saturate-50 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-saturate-125 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-saturate-200 ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter: sepia()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter-sepia*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-sepia` | `backdrop-filter: sepia(100%);` |
| `backdrop-sepia-<number>` | `backdrop-filter: sepia(<number>%);` |
| `backdrop-sepia-(<custom-property>)` | `backdrop-filter: sepia(var(<custom-property>));` |
| `backdrop-sepia-[<value>]` | `backdrop-filter: sepia(<value>);` |

## Examples

### Basic example

Use utilities like `backdrop-sepia` and `backdrop-sepia-50` to control the sepia effect applied to an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-sepia-0
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-sepia-0"></div>
            <img
              className="size-32 rounded-lg object-cover shadow-xl"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-sepia-50
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-sepia-50"></div>
            <img
              className="size-32 rounded-lg object-cover shadow-xl"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-sepia
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-sepia"></div>
            <img
              className="size-32 rounded-lg object-cover shadow-xl"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-sepia-0,backdrop-sepia-50,backdrop-sepia] -->
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-sepia-0 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-sepia-50 ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)]">
  <div class="bg-white/30 backdrop-sepia ..."></div>
</div>
```

### Using a custom value

### Responsive design


---

# backdrop-filter

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backdrop-filter*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backdrop-filter-none` | `backdrop-filter: none;` |
| `backdrop-filter-(<custom-property>)` | `backdrop-filter: var(<custom-property>);` |
| `backdrop-filter-[<value>]` | `backdrop-filter: <value>;` |

## Examples

### Basic example

Use utilities like `backdrop-blur-xs` and `backdrop-grayscale` to apply filters to an element's backdrop:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-blur-xs
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-blur-xs"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            backdrop-grayscale
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-grayscale"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 italic dark:text-gray-400">
            combined
          </p>
          <div className="relative">
            <div className="absolute inset-6 size-20 bg-white/30 backdrop-blur-xs backdrop-grayscale"></div>
            <img
              className="size-32 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backdrop-blur-xs,backdrop-grayscale] -->
<div class="bg-[url(/img/mountains.jpg)] ...">
  <div class="backdrop-blur-xs ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)] ...">
  <div class="backdrop-grayscale ..."></div>
</div>
<div class="bg-[url(/img/mountains.jpg)] ...">
  <div class="backdrop-blur-xs backdrop-grayscale ..."></div>
</div>
```

You can combine the following backdrop filter utilities: [blur](/docs/backdrop-filter-blur), [brightness](/docs/backdrop-filter-brightness), [contrast](/docs/backdrop-filter-contrast), [grayscale](/docs/backdrop-filter-grayscale), [hue-rotate](/docs/backdrop-filter-hue-rotate), [invert](/docs/backdrop-filter-invert), [opacity](/docs/backdrop-filter-opacity), [saturate](/docs/backdrop-filter-saturate), and [sepia](/docs/backdrop-filter-sepia).

### Removing filters

Use the `backdrop-filter-none` utility to remove all of the backdrop filters applied to an element:

```html
<!-- [!code classes:md:backdrop-filter-none] -->
<div class="backdrop-blur-md backdrop-brightness-150 md:backdrop-filter-none"></div>
```

### Using a custom value

### Applying on hover

### Responsive design


---

# backface-visibility

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/backface-visibility*

| Clase | Propiedades CSS |
| :--- | :--- |
| `backface-hidden` | `backface-visibility: hidden;` |
| `backface-visible` | `backface-visibility: visible;` |

## Examples

### Basic example

Use the `backface-visible` utility to show the backface of an element, like a cube, even when it's rotated away from view:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          backface-hidden
        </p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] transform-3d">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-hidden dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-hidden dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-hidden dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-hidden dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-hidden dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-hidden dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          backface-visible
        </p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] transform-3d">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-visible dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-visible dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-visible dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-visible dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 backface-visible dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 backface-visible dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:backface-hidden,backface-visible] -->
<div class="size-20 ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 backface-hidden ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 backface-hidden ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 backface-hidden ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 backface-hidden ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 backface-hidden ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 backface-hidden ...">6</div>
</div>

<div class="size-20 ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 backface-visible ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 backface-visible ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 backface-visible ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 backface-visible ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 backface-visible ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 backface-visible ...">6</div>
</div>
```

### Responsive design


---

# background-attachment

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-attachment*

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-fixed` | `background-attachment: fixed;` |
| `bg-local` | `background-attachment: local;` |
| `bg-scroll` | `background-attachment: scroll;` |

## Examples

### Fixing the background image

Use the `bg-fixed` utility to fix the background image relative to the viewport:

  {
    <div className="mx-auto h-80 overflow-y-scroll border-x border-x-gray-200 bg-[url('https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1200&h=800&q=80')] bg-cover bg-position-[center_-100px] dark:border-gray-800">
      <div className="mt-45">
        <div className="border-x border-x-gray-200 bg-white p-4 text-gray-500 sm:p-8 dark:border-x-gray-800 dark:bg-gray-900 dark:text-gray-400">
          <div className="font-inter text-2xl font-extrabold tracking-tight text-black dark:text-white">
            My trip to the summit
          </div>
          <div className="mt-1 text-sm font-medium text-gray-500">November 16, 2021 · 4 min read</div>
          <p className="mt-4 leading-7">
            Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world,
            but what about that kid, sitting down, opening a book, right now, in a branch at the local library and
            finding drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE
            deserve better?
          </p>
          <p className="mt-4 leading-7">
            Look. If you think this is about overdue fines and missing books, you'd better think again. This is about
            that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
            maybe that's how y'get your kicks. You and your good-time buddies.
          </p>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-fixed] -->
<div class="bg-[url(/img/mountains.jpg)] bg-fixed ...">
  <!-- ... -->
</div>
```

### Scrolling with the container

Use the `bg-local` utility to scroll the background image with the container and the viewport:

  {
    <div>
      <div className="h-64 overflow-y-scroll bg-[url('https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=666&q=80')] bg-cover bg-local">
        <div className="min-h-full bg-black/40 p-8 sm:px-16 sm:py-12">
          <p className="text-center font-serif text-xl leading-6 text-white italic sm:text-2xl sm:leading-8">
            Because the mail never stops. It just keeps coming and coming and coming, there's never a let-up. It's
            relentless. Every day it piles up more and more and more. And you gotta get it out but the more you get it
            out the more it keeps coming in. And then the barcode reader breaks and it's Publisher's Clearing House day.
          </p>
          <div className="font-inter mt-6 text-center text-sm font-bold text-white sm:text-base">&mdash; Newman</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-local] -->
<div class="bg-[url(/img/mountains.jpg)] bg-local ...">
  <!-- ... -->
</div>
```

### Scrolling with the viewport

Use the `bg-scroll` utility to scroll the background image with the viewport, but not with the container:

  {
    <div>
      <div className="h-64 overflow-y-scroll bg-[url('https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=666&q=80')] bg-cover bg-scroll">
        <div className="min-h-full bg-black/40 p-8 sm:px-16 sm:py-12">
          <p className="text-center font-serif text-xl leading-6 text-white italic sm:text-2xl sm:leading-8">
            Because the mail never stops. It just keeps coming and coming and coming, there's never a let-up. It's
            relentless. Every day it piles up more and more and more. And you gotta get it out but the more you get it
            out the more it keeps coming in. And then the barcode reader breaks and it's Publisher's Clearing House day.
          </p>
          <div className="font-inter mt-6 text-center text-sm font-bold text-white sm:text-base">&mdash; Newman</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-scroll] -->
<div class="bg-[url(/img/mountains.jpg)] bg-scroll ...">
  <!-- ... -->
</div>
```

### Responsive design


---

# background-blend-mode

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-blend-mode*

"Utilities for controlling how an element's background image should blend with its background color.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-blend-normal` | `background-blend-mode: normal;` |
| `bg-blend-multiply` | `background-blend-mode: multiply;` |
| `bg-blend-screen` | `background-blend-mode: screen;` |
| `bg-blend-overlay` | `background-blend-mode: overlay;` |
| `bg-blend-darken` | `background-blend-mode: darken;` |
| `bg-blend-lighten` | `background-blend-mode: lighten;` |
| `bg-blend-color-dodge` | `background-blend-mode: color-dodge;` |
| `bg-blend-color-burn` | `background-blend-mode: color-burn;` |
| `bg-blend-hard-light` | `background-blend-mode: hard-light;` |
| `bg-blend-soft-light` | `background-blend-mode: soft-light;` |
| `bg-blend-difference` | `background-blend-mode: difference;` |
| `bg-blend-exclusion` | `background-blend-mode: exclusion;` |
| `bg-blend-hue` | `background-blend-mode: hue;` |
| `bg-blend-saturation` | `background-blend-mode: saturation;` |
| `bg-blend-color` | `background-blend-mode: color;` |
| `bg-blend-luminosity` | `background-blend-mode: luminosity;` |

## Examples

### Basic example

Use utilities like `bg-blend-difference` and `bg-blend-saturation` to control how the background image and color of an element are blended:

  {
    <div className="flex flex-col items-center justify-between gap-y-6 px-1 sm:flex-row md:px-4">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-blend-multiply
        </p>
        <div className="size-24 bg-blue-500 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat bg-blend-multiply md:size-32"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-blend-soft-light
        </p>
        <div className="size-24 bg-blue-500 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat bg-blend-soft-light md:size-32"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-blend-overlay
        </p>
        <div className="size-24 bg-blue-500 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat bg-blend-overlay md:size-32"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-blend-multiply,bg-blend-soft-light,bg-blend-overlay] -->
<div class="bg-blue-500 bg-[url(/img/mountains.jpg)] bg-blend-multiply ..."></div>
<div class="bg-blue-500 bg-[url(/img/mountains.jpg)] bg-blend-soft-light ..."></div>
<div class="bg-blue-500 bg-[url(/img/mountains.jpg)] bg-blend-overlay ..."></div>
```

### Responsive design


---

# background-clip

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-clip*

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-clip-border` | `background-clip: border-box;` |
| `bg-clip-padding` | `background-clip: padding-box;` |
| `bg-clip-content` | `background-clip: content-box;` |
| `bg-clip-text` | `background-clip: text;` |

## Examples

### Basic example

Use the `bg-clip-border`, `bg-clip-padding`, and `bg-clip-content` utilities to control the bounding box of an element's background:

  {
    <div className="flex flex-col items-center justify-center space-y-10 sm:flex-row sm:space-y-0 sm:space-x-10">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-clip-border
        </p>
        <div className="flex h-24 w-24 items-center justify-center rounded-lg border-3 border-dashed border-white/50 bg-indigo-500 bg-clip-border p-3 font-mono text-sm font-extrabold text-white"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-clip-padding
        </p>
        <div className="flex h-24 w-24 items-center justify-center rounded-lg border-3 border-dashed border-indigo-500/50 bg-indigo-500 bg-clip-padding p-3 font-mono text-sm font-extrabold text-white"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-clip-content
        </p>
        <div className="flex h-24 w-24 items-center justify-center rounded-lg border-3 border-dashed border-indigo-500/50 bg-indigo-500 bg-clip-content p-3 font-mono text-sm font-extrabold text-white"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-clip-border,bg-clip-padding,bg-clip-content] -->
<div class="border-4 bg-indigo-500 bg-clip-border p-3"></div>
<div class="border-4 bg-indigo-500 bg-clip-padding p-3"></div>
<div class="border-4 bg-indigo-500 bg-clip-content p-3"></div>
```

### Cropping to text

Use the `bg-clip-text` utility to crop an element's background to match the shape of the text:

  {
    <p className="bg-linear-to-r from-pink-500 to-violet-500 bg-clip-text text-center text-4xl leading-none font-extrabold tracking-tight text-transparent sm:text-5xl">
      Hello world
    </p>
  }

```html
<!-- [!code classes:bg-clip-text] -->
<p class="bg-linear-to-r from-pink-500 to-violet-500 bg-clip-text text-5xl font-extrabold text-transparent ...">
  Hello world
</p>
```

### Responsive design


---

# background-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-color*

CustomizingYourThemeColors,
  ResponsiveDesign,
  TargetingSpecificStates,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-inherit` | `background-color: inherit;` |
| `bg-current` | `background-color: currentColor;` |
| `bg-transparent` | `background-color: transparent;` |
| `bg-(<custom-property>)` | `background-color: var(<custom-property>);` |
| `bg-[<value>]` | `background-color: <value>;` |

## Examples

### Basic example

Use utilities like `bg-white`, `bg-indigo-500` and `bg-transparent` to control the background color of an element:

  {
    <div className="grid grid-cols-1 gap-4 text-sm text-white sm:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">bg-blue-500</p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-blue-500 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">bg-cyan-500</p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-cyan-500 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">bg-pink-500</p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-pink-500 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-blue-500,bg-cyan-500,bg-pink-500] -->
<button class="bg-blue-500 ...">Button A</button>
<button class="bg-cyan-500 ...">Button B</button>
<button class="bg-pink-500 ...">Button C</button>
```

### Changing the opacity

Use the color opacity modifier to control the opacity of an element's background color:

  {
    <div className="grid grid-cols-1 gap-4 text-sm text-white sm:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          bg-sky-500/100
        </p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-sky-500/100 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">bg-sky-500/75</p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-sky-500/75 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">bg-sky-500/50</p>
        <button
          type="button"
          tabIndex="-1"
          className="rounded-md bg-sky-500/50 px-4 py-2 text-sm font-semibold text-white opacity-100 focus:outline-none"
        >
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code word:/100] -->
<!-- [!code word:/75] -->
<!-- [!code word:/50] -->
<button class="bg-sky-500/100 ..."></button>
<button class="bg-sky-500/75 ..."></button>
<button class="bg-sky-500/50 ..."></button>
```

### Using a custom value

### Applying on hover

  {
    <button
      type="button"
      tabIndex="-1"
      className="mx-auto block rounded-md bg-indigo-500 px-3 py-2 text-sm font-semibold text-white hover:bg-fuchsia-500 focus:outline-none"
    >
      Save changes
    </button>
  }

```html
<!-- [!code classes:hover:bg-fuchsia-500] -->
<button class="bg-indigo-500 hover:bg-fuchsia-500 ...">Save changes</button>
```

### Responsive design

## Customizing your theme


---

# background-image

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-image*

<svg className="hidden">
  <symbol id="gradient-color-stop" viewBox="0 0 32 34">
    <path d="M1 4a4 4 0 0 1 4-4h22a4 4 0 0 1 4 4v19.6a4 4 0 0 1-2.118 3.53L16 34 3.118 27.13A4 4 0 0 1 1 23.6V4Z" />
    <path
      fill="none"
      stroke="#000"
      strokeOpacity=".05"
      d="M5 .5h22A3.5 3.5 0 0 1 30.5 4v19.6a3.5 3.5 0 0 1-1.853 3.088L16 33.433 3.353 26.688A3.5 3.5 0 0 1 1.5 23.6V4A3.5 3.5 0 0 1 5 .5Z"
    />
  </symbol>
</svg>

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-[<value>]` | `background-image: <value>;` |
| `bg-(image:<custom-property>)` | `background-image: var(<custom-property>);` |
| `bg-none` | `background-image: none;` |
| `bg-linear-to-t` | `background-image: linear-gradient(to top, var(--tw-gradient-stops));` |
| `bg-linear-to-tr` | `background-image: linear-gradient(to top right, var(--tw-gradient-stops));` |
| `bg-linear-to-r` | `background-image: linear-gradient(to right, var(--tw-gradient-stops));` |
| `bg-linear-to-br` | `background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));` |
| `bg-linear-to-b` | `background-image: linear-gradient(to bottom, var(--tw-gradient-stops));` |
| `bg-linear-to-bl` | `background-image: linear-gradient(to bottom left, var(--tw-gradient-stops));` |
| `bg-linear-to-l` | `background-image: linear-gradient(to left, var(--tw-gradient-stops));` |
| `bg-linear-to-tl` | `background-image: linear-gradient(to top left, var(--tw-gradient-stops));` |
| `bg-linear-<angle>` | `background-image: linear-gradient(<angle> in oklab, var(--tw-gradient-stops));` |
| `-bg-linear-<angle>` | `background-image: linear-gradient(-<angle> in oklab, var(--tw-gradient-stops));` |
| `bg-linear-(<custom-property>)` | `background-image: linear-gradient(var(--tw-gradient-stops, var(<custom-property>)));` |
| `bg-linear-[<value>]` | `background-image: linear-gradient(var(--tw-gradient-stops, <value>));` |
| `bg-radial` | `background-image: radial-gradient(in oklab, var(--tw-gradient-stops));` |
| `bg-radial-(<custom-property>)` | `background-image: radial-gradient(var(--tw-gradient-stops,  var(<custom-property>)));` |
| `bg-radial-[<value>]` | `background-image: radial-gradient(var(--tw-gradient-stops, <value>));` |
| `bg-conic-<angle>` | `background-image: conic-gradient(from <angle> in oklab, var(--tw-gradient-stops));` |
| `-bg-conic-<angle>` | `background-image: conic-gradient(from -<angle> in oklab, var(--tw-gradient-stops));` |
| `bg-conic-(<custom-property>)` | `background-image: var(<custom-property>);` |
| `bg-conic-[<value>]` | `background-image: <value>;` |
| `from-<color>` | `--tw-gradient-from: <color>;` |
| `from-<percentage>` | `--tw-gradient-from-position: <percentage>;` |
| `from-(<custom-property>)` | `--tw-gradient-from: var(<custom-property>);` |
| `from-[<value>]` | `--tw-gradient-from: <value>;` |
| `via-<color>` | `--tw-gradient-via: <color>;` |
| `via-<percentage>` | `--tw-gradient-via-position: <percentage>;` |
| `via-(<custom-property>)` | `--tw-gradient-via: var(<custom-property>);` |
| `via-[<value>]` | `--tw-gradient-via: <value>;` |
| `to-<color>` | `--tw-gradient-to: <color>;` |
| `to-<percentage>` | `--tw-gradient-to-position: <percentage>;` |
| `to-(<custom-property>)` | `--tw-gradient-to: var(<custom-property>);` |
| `to-[<value>]` | `--tw-gradient-to: <value>;` |

## Examples

### Basic example

Use the `bg-[<value>]` syntax to set the background image of an element:

  {
    <div className="relative mx-auto flex h-48 w-96 items-center justify-center overflow-hidden rounded-lg sm:w-96">
      <div className="h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat"></div>
    </div>
  }

```html
<!-- [!code classes:bg-[url(/img/mountains.jpg)]] -->
<div class="bg-[url(/img/mountains.jpg)] ..."></div>
```

### Adding a linear gradient

Use utilities like `bg-linear-to-r` and `bg-linear-<angle>` with the [color stop utilities](#setting-gradient-color-stops) to add a linear gradient to an element:

  {
    <div className="space-y-4">
      <div className="h-14 rounded-lg bg-linear-to-r from-cyan-500 to-blue-500"></div>
      <div className="h-14 rounded-lg bg-linear-to-t from-sky-500 to-indigo-500"></div>
      <div className="h-14 rounded-lg bg-linear-to-bl from-violet-500 to-fuchsia-500"></div>
      <div className="h-14 rounded-lg bg-linear-65 from-purple-500 to-pink-500"></div>
    </div>
  }

```html
<!-- [!code classes:bg-linear-to-r,bg-linear-to-t,bg-linear-to-bl,bg-linear-65] -->
<div class="h-14 bg-linear-to-r from-cyan-500 to-blue-500"></div>
<div class="h-14 bg-linear-to-t from-sky-500 to-indigo-500"></div>
<div class="h-14 bg-linear-to-bl from-violet-500 to-fuchsia-500"></div>
<div class="h-14 bg-linear-65 from-purple-500 to-pink-500"></div>
```

### Adding a radial gradient

Use the `bg-radial` and `bg-radial-[<position>]` utilities with the [color stop utilities](#setting-gradient-color-stops) to add a radial gradient to an element:

  {
    <div className="flex justify-around p-8 sm:p-12">
      <div className="size-18 rounded-full bg-radial from-pink-400 from-40% to-fuchsia-700 sm:size-24"></div>
      <div className="size-18 rounded-full bg-radial-[at_50%_75%] from-sky-200 via-blue-400 to-indigo-900 to-90% sm:size-24"></div>
      <div className="size-18 rounded-full bg-radial-[at_25%_25%] from-white to-zinc-900 to-75% sm:size-24"></div>
    </div>
  }

```html
<!-- [!code classes:bg-radial-[at_50%_75%],bg-radial-[at_25%_25%],bg-radial] -->
<div class="size-18 rounded-full bg-radial from-pink-400 from-40% to-fuchsia-700"></div>
<div class="size-18 rounded-full bg-radial-[at_50%_75%] from-sky-200 via-blue-400 to-indigo-900 to-90%"></div>
<div class="size-18 rounded-full bg-radial-[at_25%_25%] from-white to-zinc-900 to-75%"></div>
```

### Adding a conic gradient

Use the `bg-conic` and `bg-conic-<angle>` utilities with the [color stop utilities](#setting-gradient-color-stops) to add a conic gradient to an element:

  {
    <div className="flex justify-around p-8 sm:p-12">
      <div className="size-18 rounded-full bg-conic from-blue-600 to-sky-400 to-50% sm:size-24"></div>
      <div className="size-18 rounded-full bg-conic-180 from-indigo-600 via-indigo-50 to-indigo-600 sm:size-24"></div>
      <div className="size-18 rounded-full bg-conic/decreasing from-violet-700 via-lime-300 to-violet-700 sm:size-24"></div>
    </div>
  }

```html
<!-- [!code classes:bg-conic-180,bg-conic/decreasing,bg-conic] -->
<div class="size-24 rounded-full bg-conic from-blue-600 to-sky-400 to-50%"></div>
<div class="size-24 rounded-full bg-conic-180 from-indigo-600 via-indigo-50 to-indigo-600"></div>
<div class="size-24 rounded-full bg-conic/decreasing from-violet-700 via-lime-300 to-violet-700"></div>
```

### Setting gradient color stops

Use utilities like `from-indigo-500`, `via-purple-500`, and `to-pink-500` to set the colors of the gradient stops:

  {
    <div className="mx-5">
      <div className="relative h-14.5">
        <div className="absolute top-0 left-px -ml-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-indigo-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
        </div>
        <div className="absolute top-0 left-1/2 -ml-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-purple-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
        </div>
        <div className="absolute top-0 right-px -mr-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-pink-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
        </div>
      </div>
      <div className="h-10 rounded-lg bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500"></div>
    </div>
  }

```html
<!-- [!code classes:from-indigo-500,via-purple-500,to-pink-500] -->
<div class="bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500 ..."></div>
```

### Setting gradient stop positions

Use utilities like `from-10%`, `via-30%`, and `to-90%` to set more precise positions for the gradient color stops:

  {
    <div className="mx-5">
      <div className="relative h-14.5">
        <div className="absolute top-0 left-[10%] -ml-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-indigo-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          <div className="absolute top-0 left-0 flex h-8 w-full items-center justify-center font-mono text-[0.6875rem] font-semibold tracking-wider text-white">
            10%
          </div>
        </div>
        <div className="absolute top-0 left-[30%] -ml-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-sky-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          <div className="absolute top-0 left-0 flex h-8 w-full items-center justify-center font-mono text-[0.6875rem] font-semibold tracking-wider text-white">
            30%
          </div>
        </div>
        <div className="absolute top-0 right-[10%] -mr-4 flex h-12 flex-col items-center">
          <svg viewBox="0 0 32 34" className="w-8 flex-none fill-emerald-500 drop-shadow">
            <use href="#gradient-color-stop" />
          </svg>
          <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          <div className="absolute top-0 left-0 flex h-8 w-full items-center justify-center font-mono text-[0.6875rem] font-semibold tracking-wider text-white">
            90%
          </div>
        </div>
      </div>
      <div className="h-10 rounded-lg bg-linear-to-r from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90%"></div>
    </div>
  }

```html
<!-- [!code classes:from-10%,via-30%,to-90%] -->
<div class="bg-linear-to-r from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90% ..."></div>
```

### Changing interpolation mode

Use the interpolation modifier to control the interpolation mode of a gradient:

  {
    <div>
      <div className="grid grid-cols-1 items-center gap-x-4 gap-y-0 sm:grid-cols-[auto_1fr] sm:gap-y-2">
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          srgb
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/srgb from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">hsl</p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/hsl from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          oklab
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/oklab from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          oklch
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/oklch from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          longer
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/longer from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          shorter
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/shorter from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          increasing
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/increasing from-indigo-500 to-teal-400"></div>
        <p className="mt-2 font-mono text-xs font-medium text-gray-500 sm:mt-0 sm:text-right dark:text-gray-400">
          decreasing
        </p>
        <div className="mt-1 h-12 rounded-lg bg-linear-to-r/decreasing from-indigo-500 to-teal-400"></div>
      </div>
    </div>
  }

```html
<!-- [!code word:/srgb] -->
<!-- [!code word:/hsl] -->
<!-- [!code word:/oklab] -->
<!-- [!code word:/oklch] -->
<!-- [!code word:/longer] -->
<!-- [!code word:/shorter] -->
<!-- [!code word:/increasing] -->
<!-- [!code word:/decreasing] -->
<div class="bg-linear-to-r/srgb from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/hsl from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/oklab from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/oklch from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/longer from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/shorter from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/increasing from-indigo-500 to-teal-400"></div>
<div class="bg-linear-to-r/decreasing from-indigo-500 to-teal-400"></div>
```

By default gradients are interpolated in the `oklab` color space.

### Removing background images

Use the `bg-none` utility to remove an existing background image from an element:

```html
<!-- [!code classes:bg-none] -->
<div class="bg-none"></div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# background-origin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-origin*

"Utilities for controlling how an element's background is positioned relative to borders, padding, and content.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-origin-border` | `background-origin: border-box;` |
| `bg-origin-padding` | `background-origin: padding-box;` |
| `bg-origin-content` | `background-origin: content-box;` |

## Examples

### Basic example

Use the `bg-origin-border`, `bg-origin-padding`, and `bg-origin-content` utilities to control where an element's background is rendered:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-origin-border
          </p>
          <div className="h-24 w-24 rounded-lg border-4 border-dashed border-white/75 bg-gray-300 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-cover bg-no-repeat bg-origin-border object-cover p-3 dark:border-white/40"></div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-origin-padding
          </p>
          <div className="h-24 w-24 rounded-lg border-4 border-dashed border-white/75 bg-gray-300 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-cover bg-no-repeat bg-origin-padding object-cover p-3 dark:border-white/25 dark:bg-gray-700"></div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-origin-content
          </p>
          <div className="h-24 w-24 rounded-lg border-4 border-dashed border-white/75 bg-gray-300 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-cover bg-no-repeat bg-origin-content object-cover p-3 dark:border-white/25 dark:bg-gray-700"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-origin-border,bg-origin-padding,bg-origin-content] -->
<div class="border-4 bg-[url(/img/mountains.jpg)] bg-origin-border p-3 ..."></div>
<div class="border-4 bg-[url(/img/mountains.jpg)] bg-origin-padding p-3 ..."></div>
<div class="border-4 bg-[url(/img/mountains.jpg)] bg-origin-content p-3 ..."></div>
```

### Responsive design


---

# background-position

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-position*

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-top-left` | `background-position: top left;` |
| `bg-top` | `background-position: top;` |
| `bg-top-right` | `background-position: top right;` |
| `bg-left` | `background-position: left;` |
| `bg-center` | `background-position: center;` |
| `bg-right` | `background-position: right;` |
| `bg-bottom-left` | `background-position: bottom left;` |
| `bg-bottom` | `background-position: bottom;` |
| `bg-bottom-right` | `background-position: bottom right;` |
| `bg-position-(<custom-property>)` | `background-position: var(<custom-property>);` |
| `bg-position-[<value>]` | `background-position: <value>;` |

## Examples

### Basic example

Use utilities like `bg-center`, `bg-right`, and `bg-top-left` to control the position of an element's background image:

  {
    <div className="w-full">
      <div className="flex snap-x scroll-p-4 items-end overflow-x-scroll overflow-y-hidden p-8 pt-16 sm:grid sm:grid-cols-3 sm:gap-16">
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-top-left
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top-left outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute top-0 left-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-top
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute top-0 -left-6 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-top-right
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top-right outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute top-0 right-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-left
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-left outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-6 left-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-center
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-center outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-6 -left-6 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-right
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-right outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-6 right-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-bottom-left
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom-left outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-12 left-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative w-32 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-bottom
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-12 -left-6 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
        <div className="relative -mx-8 w-48 shrink-0 snap-start snap-always sm:w-auto">
          <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            bg-bottom-right
          </p>
          <div className="group relative mx-auto h-20 w-20 rounded-lg">
            <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom-right outline -outline-offset-1 outline-black/10"></div>
            <img
              className="absolute -top-12 right-0 h-32 w-32 max-w-none overflow-hidden rounded-md opacity-0 sm:group-hover:opacity-25"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-top-left,bg-top-right,bg-bottom-right,bg-bottom-left,bg-center,bg-right,bg-top,bg-bottom,bg-left] -->
<div class="bg-[url(/img/mountains.jpg)] bg-top-left"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-top"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-top-right"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-left"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-center"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-right"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-bottom-left"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-bottom"></div>
<div class="bg-[url(/img/mountains.jpg)] bg-bottom-right"></div>
```

### Using a custom value

### Responsive design


---

# background-repeat

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-repeat*

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-repeat` | `background-repeat: repeat;` |
| `bg-repeat-x` | `background-repeat: repeat-x;` |
| `bg-repeat-y` | `background-repeat: repeat-y;` |
| `bg-repeat-space` | `background-repeat: space;` |
| `bg-repeat-round` | `background-repeat: round;` |
| `bg-no-repeat` | `background-repeat: no-repeat;` |

## Examples

### Basic example

Use the `bg-repeat` utility to repeat the background image both vertically and horizontally:

  {<div className="h-64 bg-center bg-repeat" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-repeat] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-repeat ..."></div>
```

### Repeating horizontally

Use the `bg-repeat-x` utility to only repeat the background image horizontally:

  {<div className="h-64 bg-center bg-repeat-x" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-repeat-x] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-repeat-x ..."></div>
```

### Repeating vertically

Use the `bg-repeat-y` utility to only repeat the background image vertically:

  {<div className="h-64 bg-center bg-repeat-y" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-repeat-y] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-repeat-y ..."></div>
```

### Preventing clipping

Use the `bg-repeat-space` utility to repeat the background image without clipping:

  {<div className="h-64 bg-center bg-repeat-space" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-repeat-space] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-repeat-space ..."></div>
```

### Preventing clipping and gaps

Use the `bg-repeat-round` utility to repeat the background image without clipping, stretching if needed to avoid gaps:

  {<div className="h-64 bg-center bg-repeat-round" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-repeat-round] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-repeat-round ..."></div>
```

### Disabling repeating

Use the `bg-no-repeat` utility to prevent a background image from repeating:

  {<div className="h-64 bg-center bg-no-repeat" style={{ backgroundImage: `url(${cloudsImg.src})` }}></div>}

```html
<!-- [!code classes:bg-no-repeat] -->
<div class="bg-[url(/img/clouds.svg)] bg-center bg-no-repeat ..."></div>
```

### Responsive design


---

# background-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/background-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `bg-auto` | `background-size: auto;` |
| `bg-cover` | `background-size: cover;` |
| `bg-contain` | `background-size: contain;` |
| `bg-size-(<custom-property>)` | `background-size: var(<custom-property>);` |
| `bg-size-[<value>]` | `background-size: <value>;` |

## Examples

### Filling the container

Use the `bg-cover` utility to scale the background image until it fills the background layer, cropping the image if needed:

  {
    <div className="relative mx-auto flex w-56 items-center justify-center overflow-hidden rounded-lg sm:w-96">
      <div className="absolute inset-0">
        
      </div>
      <div className="relative z-10 h-48 w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=512&h=640&q=80)] bg-cover bg-center bg-no-repeat"></div>
    </div>
  }

```html
<!-- [!code classes:bg-cover] -->
<div class="bg-[url(/img/mountains.jpg)] bg-cover bg-center"></div>
```

### Filling without cropping

Use the `bg-contain` utility to scale the background image to the outer edges without cropping or stretching:

  {
    <div className="relative mx-auto flex w-56 items-center justify-center overflow-hidden rounded-lg sm:w-96">
      <div className="absolute inset-0">
        
      </div>
      <div className="relative z-10 h-48 w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=512&h=640&q=80)] bg-contain bg-center bg-no-repeat sm:bg-top"></div>
    </div>
  }

```html
<!-- [!code classes:bg-contain] -->
<div class="bg-[url(/img/mountains.jpg)] bg-contain bg-center"></div>
```

### Using the default size

Use the `bg-auto` utility to display the background image at its default size:

  {
    <div className="relative mx-auto flex h-48 w-56 items-center justify-center overflow-hidden rounded-lg sm:w-96">
      <div className="absolute inset-0">
        
      </div>
      <div className="relative z-10 h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=128&h=160&q=80)] bg-auto bg-center bg-no-repeat"></div>
    </div>
  }

```html
<!-- [!code classes:bg-auto] -->
<div class="bg-[url(/img/mountains.jpg)] bg-auto bg-center bg-no-repeat"></div>
```

### Using a custom value

### Responsive design


---

# block-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/block-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `block-<number>` | `block-size: calc(var(--spacing) * <number>);` |
| `block-<fraction>` | `block-size: calc(<fraction> * 100%);` |
| `block-auto` | `block-size: auto;` |
| `block-px` | `block-size: 1px;` |
| `block-full` | `block-size: 100%;` |
| `block-screen` | `block-size: 100vh;` |
| `block-dvh` | `block-size: 100dvh;` |
| `block-dvw` | `block-size: 100dvw;` |
| `block-lvh` | `block-size: 100lvh;` |
| `block-lvw` | `block-size: 100lvw;` |
| `block-svh` | `block-size: 100svh;` |
| `block-svw` | `block-size: 100svw;` |
| `block-min` | `block-size: min-content;` |
| `block-max` | `block-size: max-content;` |
| `block-fit` | `block-size: fit-content;` |
| `block-lh` | `block-size: 1lh;` |
| `block-(<custom-property>)` | `block-size: var(<custom-property>);` |
| `block-[<value>]` | `block-size: <value>;` |

## Examples

### Basic example

Use `block-<number>` utilities like `block-24` and `block-64` to set an element to a fixed block size based on the spacing scale:

  {
    <div className="flex items-end justify-center space-x-4 font-mono text-xs font-bold text-white">
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-96">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-96</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-80">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-80</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-64">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-64</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-48">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-48</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-40">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-40</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-32">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-32</div>
      </div>
      <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-24">
        <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-24</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:block-96,block-80,block-64,block-48,block-40,block-32,block-24] -->
<div class="block-96 ...">block-96</div>
<div class="block-80 ...">block-80</div>
<div class="block-64 ...">block-64</div>
<div class="block-48 ...">block-48</div>
<div class="block-40 ...">block-40</div>
<div class="block-32 ...">block-32</div>
<div class="block-24 ...">block-24</div>
```

### Using a percentage

Use `block-full` or `block-<fraction>` utilities like `block-1/2` and `block-2/5` to give an element a percentage-based block size:

  {
    <div className="flex items-end justify-center space-x-4 font-mono text-xs font-bold text-white block-96">
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 block-full">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-full</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 block-9/10">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-9/10</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 block-3/4">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-3/4</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 block-1/2">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-1/2</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 block-1/3">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">block-1/3</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:block-9/10,block-3/4,block-1/2,block-1/3,block-full] -->
<div class="block-full ...">block-full</div>
<div class="block-9/10 ...">block-9/10</div>
<div class="block-3/4 ...">block-3/4</div>
<div class="block-1/2 ...">block-1/2</div>
<div class="block-1/3 ...">block-1/3</div>
```

### Matching viewport

Use the `block-screen` utility to make an element span the entire block size of the viewport:

```html
<!-- [!code classes:block-screen] -->
<div class="block-screen">
  <!-- ... -->
</div>
```

### Matching dynamic viewport

Use the `block-dvh` utility to make an element span the entire block size of the viewport, which changes as the browser UI expands or contracts:

```html
<!-- [!code classes:block-dvh] -->
<div class="block-dvh">
  <!-- ... -->
</div>
```

### Matching large viewport

Use the `block-lvh` utility to set an element's block size to the largest possible size of the viewport:

```html
<!-- [!code classes:block-lvh] -->
<div class="block-lvh">
  <!-- ... -->
</div>
```

### Matching small viewport

Use the `block-svh` utility to set an element's block size to the smallest possible size of the viewport:

```html
<!-- [!code classes:block-svh] -->
<div class="block-svh">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# border-collapse

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-collapse*

| Clase | Propiedades CSS |
| :--- | :--- |
| `border-collapse` | `border-collapse: collapse;` |
| `border-separate` | `border-collapse: separate;` |

## Examples

### Collapsing table borders

Use the `border-collapse` utility to combine adjacent cell borders into a single border when possible:

  {
    <div className="px-4 py-8 sm:px-8">
      <table className="w-full border-collapse border border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              State
            </th>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              City
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indiana
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indianapolis
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">Ohio</td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Columbus
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Michigan
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Detroit
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:border-collapse] -->
<table class="border-collapse border border-gray-400 ...">
  <thead>
    <tr>
      <th class="border border-gray-300 ...">State</th>
      <th class="border border-gray-300 ...">City</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="border border-gray-300 ...">Indiana</td>
      <td class="border border-gray-300 ...">Indianapolis</td>
    </tr>
    <tr>
      <td class="border border-gray-300 ...">Ohio</td>
      <td class="border border-gray-300 ...">Columbus</td>
    </tr>
    <tr>
      <td class="border border-gray-300 ...">Michigan</td>
      <td class="border border-gray-300 ...">Detroit</td>
    </tr>
  </tbody>
</table>
```

Note that this includes collapsing borders on the top-level `<table>` tag.

### Separating table borders

Use the `border-separate` utility to force each cell to display its own separate borders:

  {
    <div className="px-4 py-8 sm:px-8">
      <table className="w-full border-separate border border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              State
            </th>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              City
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indiana
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indianapolis
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">Ohio</td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Columbus
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Michigan
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Detroit
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:border-separate] -->
<table class="border-separate border border-gray-400 ...">
  <thead>
    <tr>
      <th class="border border-gray-300 ...">State</th>
      <th class="border border-gray-300 ...">City</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="border border-gray-300 ...">Indiana</td>
      <td class="border border-gray-300 ...">Indianapolis</td>
    </tr>
    <tr>
      <td class="border border-gray-300 ...">Ohio</td>
      <td class="border border-gray-300 ...">Columbus</td>
    </tr>
    <tr>
      <td class="border border-gray-300 ...">Michigan</td>
      <td class="border border-gray-300 ...">Detroit</td>
    </tr>
  </tbody>
</table>
```

### Responsive design


---

# border-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-color*

CustomizingYourThemeColors,
  ResponsiveDesign,
  TargetingSpecificStates,
  UsingACustomValue,
} from "@/components/content.tsx";

## Examples

### Basic example

Use utilities like `border-rose-500` and `border-lime-100` to control the border color of an element:

  {
    <div className="grid gap-4 text-center text-sm leading-6 font-bold text-white lg:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-500 bg-white p-4 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-purple-500
        </p>
        <div className="size-16 border-4 border-purple-500 bg-white p-4 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-sky-500
        </p>
        <div className="size-16 border-4 border-sky-500 bg-white p-4 dark:bg-gray-900"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-indigo-500,border-purple-500,border-sky-500] -->
<div class="border-4 border-indigo-500 ..."></div>
<div class="border-4 border-purple-500 ..."></div>
<div class="border-4 border-sky-500 ..."></div>
```

### Changing the opacity

Use the color opacity modifier to control the opacity of an element's border color:

  {
    <div className="grid gap-4 text-center text-sm leading-6 font-bold text-white lg:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-indigo-500/100
        </p>
        <div className="size-16 border-4 border-indigo-500/100 bg-white p-4 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-indigo-500/75
        </p>
        <div className="size-16 border-4 border-indigo-500/75 bg-white p-4 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-indigo-500/50
        </p>
        <div className="size-16 border-4 border-indigo-500/50 bg-white p-4 dark:bg-gray-900"></div>
      </div>
    </div>
  }

```html
<!-- [!code word:/100] -->
<!-- [!code word:/75] -->
<!-- [!code word:/50] -->
<div class="border-4 border-indigo-500/100 ..."></div>
<div class="border-4 border-indigo-500/75 ..."></div>
<div class="border-4 border-indigo-500/50 ..."></div>
```

### Individual sides

Use utilities like `border-t-indigo-500` and `border-r-lime-100` to set the border color for one side of an element:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-8 text-center text-sm leading-6 font-bold text-white sm:grid-cols-2">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-t-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-t-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-t-indigo-500 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-r-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-r-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-r-indigo-500 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-b-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-b-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-b-indigo-500 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-l-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-l-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-l-indigo-500 dark:bg-gray-900"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-t-indigo-500,border-r-indigo-500,border-b-indigo-500,border-l-indigo-500] -->
<div class="border-4 border-indigo-200 border-t-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-r-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-b-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-l-indigo-500 ..."></div>
```

### Horizontal and vertical sides

Use utilities like `border-x-indigo-500` and `border-y-lime-100` to set the border color on two sides of an element at the same time:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-x-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-x-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-x-indigo-500 dark:bg-gray-900"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          border-y-indigo-500
        </p>
        <div className="size-16 border-4 border-indigo-200 border-y-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-y-indigo-500 dark:bg-gray-900"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-x-indigo-500,border-y-indigo-500] -->
<div class="border-4 border-indigo-200 border-x-indigo-500 ..."></div>
<div class="border-4 border-indigo-200 border-y-indigo-500 ..."></div>
```

### Using logical properties

Use utilities like `border-s-indigo-500` and `border-e-lime-100` to set the `border-inline-start-color` and `border-inline-end-color` [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts), which map to either the left or right border based on the text direction:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4" dir="ltr">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="size-16 border-4 border-indigo-200 border-s-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-s-indigo-500 dark:bg-gray-900"></div>
      </div>
      <div className="flex flex-col items-start gap-y-4" dir="rtl">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="size-16 border-4 border-indigo-200 border-s-indigo-500 bg-white p-4 ring-1 ring-gray-900/5 dark:border-indigo-600/20 dark:border-s-indigo-500 dark:bg-gray-900"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-s-indigo-500,border-s-indigo-500] -->
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<div dir="ltr">
  <div class="border-s-indigo-500 ..."></div>
</div>
<div dir="rtl">
  <div class="border-s-indigo-500 ..."></div>
</div>
```

Use the `border-bs-*` and `border-be-*` utilities to set the `border-block-start-color` and `border-block-end-color` logical properties, which map to either the top or bottom border based on the writing mode:

```html
<!-- [!code classes:border-bs-indigo-500] -->
<div class="border-bs-indigo-500 ..."></div>
```

### Divider between children

Use utilities like `divide-indigo-500` and `divide-lime-100` to control the border color between child elements:

  {
    <div className="mx-auto grid max-w-lg grid-cols-3 divide-x-4 divide-indigo-500 rounded-lg text-center font-mono text-sm leading-6 font-bold text-gray-400">
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">01</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">02</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">03</div>
    </div>
  }

```html
<!-- [!code classes:divide-indigo-500] -->
<div class="grid grid-cols-3 divide-x-4 divide-indigo-500">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Using a custom value

### Applying on focus

  {
    <label className="mx-auto block max-w-xs">
      <span className="text-sm font-medium text-gray-900 dark:text-gray-200">Email address</span>
      <input
        type="text"
        placeholder="jane@example.com"
        className="block w-full rounded-lg border-2 border-gray-700 px-3 py-2 font-sans text-sm leading-5 text-gray-500 focus:border-pink-600 focus:outline-none dark:bg-gray-900 dark:text-gray-400 dark:placeholder:text-gray-600"
      />
    </label>
  }

```html
<!-- [!code classes:focus:border-pink-600] -->
<input class="border-2 border-gray-700 focus:border-pink-600 ..." />
```

### Responsive design

## Customizing your theme


---

# border-radius

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-radius*

## Examples

### Basic example

Use utilities like `rounded-sm` and `rounded-md` to apply different border radius sizes to an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-sm</p>
        <div className="size-16 rounded-sm bg-purple-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-md</p>
        <div className="size-16 rounded-md bg-purple-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-lg</p>
        <div className="size-16 rounded-lg bg-purple-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-xl</p>
        <div className="size-16 rounded-xl bg-purple-500 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-sm,rounded-md,rounded-lg,rounded-xl] -->
<div class="rounded-sm ..."></div>
<div class="rounded-md ..."></div>
<div class="rounded-lg ..."></div>
<div class="rounded-xl ..."></div>
```

### Rounding sides separately

Use utilities like `rounded-t-md` and `rounded-r-lg` to only round one side of an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-t-lg</p>
        <div className="size-16 rounded-t-lg bg-blue-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-r-lg</p>
        <div className="size-16 rounded-r-lg bg-blue-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-b-lg</p>
        <div className="size-16 rounded-b-lg bg-blue-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-l-lg</p>
        <div className="size-16 rounded-l-lg bg-blue-500 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-t-lg,rounded-r-lg,rounded-b-lg,rounded-l-lg] -->
<div class="rounded-t-lg ..."></div>
<div class="rounded-r-lg ..."></div>
<div class="rounded-b-lg ..."></div>
<div class="rounded-l-lg ..."></div>
```

### Rounding corners separately

Use utilities like `rounded-tr-md` and `rounded-tl-lg` utilities to only round one corner of an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-tl-lg</p>
        <div className="size-16 rounded-tl-lg bg-pink-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-tr-lg</p>
        <div className="size-16 rounded-tr-lg bg-pink-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-br-lg</p>
        <div className="size-16 rounded-br-lg bg-pink-500 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-bl-lg</p>
        <div className="size-16 rounded-bl-lg bg-pink-500 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-tl-lg,rounded-tr-lg,rounded-br-lg,rounded-bl-lg] -->
<div class="rounded-tl-lg ..."></div>
<div class="rounded-tr-lg ..."></div>
<div class="rounded-br-lg ..."></div>
<div class="rounded-bl-lg ..."></div>
```

### Using logical properties

Use utilities like `rounded-s-md` and `rounded-se-xl` to set the border radius using [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts), which map to the appropriate corners based on the text direction:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4" dir="ltr">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="size-16 rounded-s-lg bg-blue-500 p-4"></div>
      </div>
      <div className="flex flex-col items-start gap-y-4" dir="rtl">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="size-16 rounded-s-lg bg-blue-500 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-s-lg] -->
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<div dir="ltr">
  <div class="rounded-s-lg ..."></div>
</div>

<div dir="rtl">
  <div class="rounded-s-lg ..."></div>
</div>
```

Here are all the available border radius logical property utilities and their physical property equivalents in both LTR and RTL modes.

{

<table>
  <thead>
    <tr>
      <th>Class</th>
      <th>Left-to-right</th>
      <th>Right-to-left</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code>rounded-s-*</code>
      </td>
      <td>
        <code>rounded-l-*</code>
      </td>
      <td>
        <code>rounded-r-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>rounded-e-*</code>
      </td>
      <td>
        <code>rounded-r-*</code>
      </td>
      <td>
        <code>rounded-l-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>rounded-ss-*</code>
      </td>
      <td>
        <code>rounded-tl-*</code>
      </td>
      <td>
        <code>rounded-tr-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>rounded-se-*</code>
      </td>
      <td>
        <code>rounded-tr-*</code>
      </td>
      <td>
        <code>rounded-tl-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>rounded-es-*</code>
      </td>
      <td>
        <code>rounded-bl-*</code>
      </td>
      <td>
        <code>rounded-br-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>rounded-ee-*</code>
      </td>
      <td>
        <code>rounded-br-*</code>
      </td>
      <td>
        <code>rounded-bl-*</code>
      </td>
    </tr>
  </tbody>
</table>

}

For more control, you can also use the [LTR and RTL modifiers](/docs/hover-focus-and-other-states#rtl-support) to conditionally apply specific styles depending on the current text direction.

### Creating pill buttons

Use the `rounded-full` utility to create pill buttons:

  {
    <div className="flex justify-center gap-4 text-center text-sm leading-6 font-bold text-white">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-full</p>
        <button className="rounded-full bg-cyan-500 px-4 py-2 text-sm font-semibold text-white">Save Changes</button>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-full] -->
<button class="rounded-full ...">Save Changes</button>
```

### Removing the border radius

Use the `rounded-none` utility to remove an existing border radius from an element:

  {
    <div className="flex justify-center gap-4 text-center text-sm leading-6 font-bold text-white">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rounded-none</p>
        <button className="rounded-none bg-sky-500 px-4 py-2 text-sm font-semibold text-white">Save Changes</button>
      </div>
    </div>
  }

```html
<!-- [!code classes:rounded-none] -->
<button class="rounded-none ...">Save Changes</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# border-spacing

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-spacing*

| Clase | Propiedades CSS |
| :--- | :--- |
| `border-spacing-<number>` | `border-spacing: calc(var(--spacing) * <number>);` |
| `border-spacing-px` | `border-spacing: 1px;` |
| `border-spacing-(<custom-property>)` | `border-spacing: var(<custom-property>);` |
| `border-spacing-[<value>]` | `border-spacing: <value>;` |
| `border-spacing-x-<number>` | `border-spacing: calc(var(--spacing) * <number>) var(--tw-border-spacing-y);` |
| `border-spacing-x-px` | `border-spacing: 1px var(--tw-border-spacing-y);` |
| `border-spacing-x-(<custom-property>)` | `border-spacing: var(<custom-property>) var(--tw-border-spacing-y);` |
| `border-spacing-x-[<value>]` | `border-spacing: <value> var(--tw-border-spacing-y);` |
| `border-spacing-y-<number>` | `border-spacing: var(--tw-border-spacing-x) calc(var(--spacing) * <number>);` |
| `border-spacing-y-px` | `border-spacing: var(--tw-border-spacing-x) 1px;` |
| `border-spacing-y-(<custom-property>)` | `border-spacing: var(--tw-border-spacing-x) var(<custom-property>);` |
| `border-spacing-y-[<value>]` | `border-spacing: var(--tw-border-spacing-x) <value>;` |

## Examples

### Basic example

Use `border-spacing-<number>` utilities like `border-spacing-2` and `border-spacing-x-3` to control the space between the borders of table cells with [separate borders](/docs/border-collapse#separating-table-borders):

  {
    <div className="px-4 py-8 sm:px-8">
      <table className="w-full border-separate border-spacing-2 border border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              State
            </th>
            <th className="w-1/2 border border-gray-300 p-4 text-left font-semibold text-gray-900 dark:border-gray-600 dark:text-gray-200">
              City
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indiana
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Indianapolis
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">Ohio</td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Columbus
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Michigan
            </td>
            <td className="border border-gray-300 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Detroit
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:border-spacing-2] -->
<table class="border-separate border-spacing-2 border border-gray-400 dark:border-gray-500">
  <thead>
    <tr>
      <th class="border border-gray-300 dark:border-gray-600">State</th>
      <th class="border border-gray-300 dark:border-gray-600">City</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="border border-gray-300 dark:border-gray-700">Indiana</td>
      <td class="border border-gray-300 dark:border-gray-700">Indianapolis</td>
    </tr>
    <tr>
      <td class="border border-gray-300 dark:border-gray-700">Ohio</td>
      <td class="border border-gray-300 dark:border-gray-700">Columbus</td>
    </tr>
    <tr>
      <td class="border border-gray-300 dark:border-gray-700">Michigan</td>
      <td class="border border-gray-300 dark:border-gray-700">Detroit</td>
    </tr>
  </tbody>
</table>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# border-style

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-style*

| Clase | Propiedades CSS |
| :--- | :--- |
| `border-solid` | `border-style: solid;` |
| `border-dashed` | `border-style: dashed;` |
| `border-dotted` | `border-style: dotted;` |
| `border-double` | `border-style: double;` |
| `border-hidden` | `border-style: hidden;` |
| `border-none` | `border-style: none;` |
| `divide-solid` | `& > :not(:last-child) {\n  border-style: solid;\n}` |
| `divide-dashed` | `& > :not(:last-child) {\n  border-style: dashed;\n}` |
| `divide-dotted` | `& > :not(:last-child) {\n  border-style: dotted;\n}` |
| `divide-double` | `& > :not(:last-child) {\n  border-style: double;\n}` |
| `divide-hidden` | `& > :not(:last-child) {\n  border-style: hidden;\n}` |
| `divide-none` | `& > :not(:last-child) {\n  border-style: none;\n}` |

## Examples

### Basic example

Use utilities like `border-solid` and `border-dotted` to control an element's border style:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-8 text-center text-sm leading-6 font-bold text-white sm:grid-cols-2">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-solid</p>
        <button className="rounded-md border-2 border-solid border-indigo-500 bg-white px-4 py-2 text-sm font-semibold text-gray-700 dark:border-sky-500 dark:bg-gray-700 dark:text-white">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-dashed</p>
        <button className="rounded-md border-2 border-dashed border-indigo-500 bg-white px-4 py-2 text-sm font-semibold text-gray-700 dark:border-sky-500 dark:bg-gray-700 dark:text-white">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-dotted</p>
        <button className="rounded-md border-2 border-dotted border-indigo-500 bg-white px-4 py-2 text-sm font-semibold text-gray-700 dark:border-sky-500 dark:bg-gray-700 dark:text-white">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-double</p>
        <button className="rounded-md border-4 border-double border-indigo-500 bg-white px-4 py-2 text-sm font-semibold text-gray-700 dark:border-sky-500 dark:bg-gray-700 dark:text-white">
          Button A
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-solid,border-dashed,border-dotted,border-double] -->
<div class="border-2 border-solid ..."></div>
<div class="border-2 border-dashed ..."></div>
<div class="border-2 border-dotted ..."></div>
<div class="border-4 border-double ..."></div>
```

### Removing a border

Use the `border-none` utility to remove an existing border from an element:

  {
    <div className="flex justify-center gap-4 text-center text-sm leading-6 font-bold text-white">
      <button className="rounded-md border-2 border-none border-indigo-500 bg-gray-100 px-4 py-2 text-sm font-semibold text-gray-700 dark:bg-gray-700 dark:text-white">
        Save Changes
      </button>
    </div>
  }

```html
<!-- [!code classes:border-none] -->
<button class="border-none ...">Save Changes</button>
```

This is most commonly used to remove a border style that was applied at a smaller breakpoint.

### Setting the divider style

Use utilities like `divide-dashed` and `divide-dotted` to control the border style between child elements:

  {
    <div className="mx-auto grid max-w-lg grid-cols-3 divide-x-3 divide-dashed divide-indigo-500 rounded-lg text-center font-mono text-sm leading-6 font-bold text-gray-400">
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">01</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">02</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">03</div>
    </div>
  }

```html
<!-- [!code classes:divide-dashed] -->
<div class="grid grid-cols-3 divide-x-3 divide-dashed divide-indigo-500">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Responsive design


---

# border-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/border-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `border` | `border-width: 1px;` |
| `border-<number>` | `border-width: <number>px;` |
| `border-(length:<custom-property>)` | `border-width: var(<custom-property>);` |
| `border-[<value>]` | `border-width: <value>;` |
| `border-x` | `border-inline-width: 1px;` |
| `border-x-<number>` | `border-inline-width: <number>px;` |
| `border-x-(length:<custom-property>)` | `border-inline-width: var(<custom-property>);` |
| `border-x-[<value>]` | `border-inline-width: <value>;` |
| `border-y` | `border-block-width: 1px;` |
| `border-y-<number>` | `border-block-width: <number>px;` |
| `border-y-(length:<custom-property>)` | `border-block-width: var(<custom-property>);` |
| `border-y-[<value>]` | `border-block-width: <value>;` |
| `border-s` | `border-inline-start-width: 1px;` |
| `border-s-<number>` | `border-inline-start-width: <number>px;` |
| `border-s-(length:<custom-property>)` | `border-inline-start-width: var(<custom-property>);` |
| `border-s-[<value>]` | `border-inline-start-width: <value>;` |
| `border-e` | `border-inline-end-width: 1px;` |
| `border-e-<number>` | `border-inline-end-width: <number>px;` |
| `border-e-(length:<custom-property>)` | `border-inline-end-width: var(<custom-property>);` |
| `border-e-[<value>]` | `border-inline-end-width: <value>;` |
| `border-bs` | `border-block-start-width: 1px;` |
| `border-bs-<number>` | `border-block-start-width: <number>px;` |
| `border-bs-(length:<custom-property>)` | `border-block-start-width: var(<custom-property>);` |
| `border-bs-[<value>]` | `border-block-start-width: <value>;` |
| `border-be` | `border-block-end-width: 1px;` |
| `border-be-<number>` | `border-block-end-width: <number>px;` |
| `border-be-(length:<custom-property>)` | `border-block-end-width: var(<custom-property>);` |
| `border-be-[<value>]` | `border-block-end-width: <value>;` |
| `border-t` | `border-top-width: 1px;` |
| `border-t-<number>` | `border-top-width: <number>px;` |
| `border-t-(length:<custom-property>)` | `border-top-width: var(<custom-property>);` |
| `border-t-[<value>]` | `border-top-width: <value>;` |
| `border-r` | `border-right-width: 1px;` |
| `border-r-<number>` | `border-right-width: <number>px;` |
| `border-r-(length:<custom-property>)` | `border-right-width: var(<custom-property>);` |
| `border-r-[<value>]` | `border-right-width: <value>;` |
| `border-b` | `border-bottom-width: 1px;` |
| `border-b-<number>` | `border-bottom-width: <number>px;` |
| `border-b-(length:<custom-property>)` | `border-bottom-width: var(<custom-property>);` |
| `border-b-[<value>]` | `border-bottom-width: <value>;` |
| `border-l` | `border-left-width: 1px;` |
| `border-l-<number>` | `border-left-width: <number>px;` |
| `border-l-(length:<custom-property>)` | `border-left-width: var(<custom-property>);` |
| `border-l-[<value>]` | `border-left-width: <value>;` |
| `divide-x` | `& > :not(:last-child) {           border-inline-start-width: 0px;           border-inline-end-width: 1px;         }` |
| `divide-x-<number>` | `& > :not(:last-child) {           border-inline-start-width: 0px;           border-inline-end-width: <number>px;         }` |
| `divide-x-(length:<custom-property>)` | `& > :not(:last-child) {           border-inline-start-width: 0px;           border-inline-end-width: var(<custom-property>);         }` |
| `divide-x-[<value>]` | `& > :not(:last-child) {           border-inline-start-width: 0px;           border-inline-end-width: <value>;         }` |
| `divide-y` | `& > :not(:last-child) {           border-top-width: 0px;           border-bottom-width: 1px;         }` |
| `divide-y-<number>` | `& > :not(:last-child) {           border-top-width: 0px;           border-bottom-width: <number>px;         }` |
| `divide-y-(length:<custom-property>)` | `& > :not(:last-child) {           border-top-width: 0px;           border-bottom-width: var(<custom-property>);         }` |
| `divide-y-[<value>]` | `& > :not(:last-child) {           border-top-width: 0px;           border-bottom-width: <value>;         }` |
| `divide-x-reverse` | `--tw-divide-x-reverse: 1;` |
| `divide-y-reverse` | `--tw-divide-y-reverse: 1;` |

## Examples

### Basic example

Use `border` or `border-<number>` utilities like `border-2` and `border-4` to set the border width for all sides of an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border</p>
        <div className="size-16 border border-indigo-600 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-2</p>
        <div className="size-16 border-2 border-indigo-600 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-4</p>
        <div className="size-16 border-4 border-indigo-600 p-4"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-8</p>
        <div className="size-16 border-8 border-indigo-600 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border,border-2,border-4,border-8] -->
<div class="border border-indigo-600 ..."></div>
<div class="border-2 border-indigo-600 ..."></div>
<div class="border-4 border-indigo-600 ..."></div>
<div class="border-8 border-indigo-600 ..."></div>
```

### Individual sides

Use utilities like `border-r` and `border-t-4` to set the border width for one side of an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-t-4</p>
        <div className="size-16 border-t-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-r-4</p>
        <div className="size-16 border-r-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-b-4</p>
        <div className="size-16 border-b-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-l-4</p>
        <div className="size-16 border-l-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-t-4,border-r-4,border-b-4,border-l-4] -->
<div class="border-t-4 border-indigo-500 ..."></div>
<div class="border-r-4 border-indigo-500 ..."></div>
<div class="border-b-4 border-indigo-500 ..."></div>
<div class="border-l-4 border-indigo-500 ..."></div>
```

### Horizontal and vertical sides

Use utilities like `border-x` and `border-y-4` to set the border width on two sides of an element at the same time:

  {
    <div className="flex flex-col items-center justify-around gap-4 text-center text-sm leading-6 font-bold text-white sm:flex-row">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-x-4</p>
        <div className="size-16 border-x-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">border-y-4</p>
        <div className="size-16 border-y-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:border-x-4,border-y-4] -->
<div class="border-x-4 border-indigo-500 ..."></div>
<div class="border-y-4 border-indigo-500 ..."></div>
```

### Using logical properties

Use utilities like `border-s` and `border-e-4` to set the `border-inline-start-width` and `border-inline-end-width` [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts), which map to either the left or right border based on the text direction:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4" dir="ltr">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="size-16 border-s-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
      <div className="flex flex-col items-start gap-y-4" dir="rtl">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="size-16 border-s-4 border-indigo-500 p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20"></div>
      </div>
    </div>
  }

```html
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:border-s-4] -->
<div dir="ltr">
  <div class="border-s-4 ..."></div>
</div>
<div dir="rtl">
  <div class="border-s-4 ..."></div>
</div>
```

Use the `border-bs-<number>` and `border-be-<number>` utilities to set the `border-block-start-width` and `border-block-end-width` logical properties, which map to either the top or bottom border based on the writing mode:

```html
<!-- [!code classes:border-bs-4] -->
<div class="border-bs-4 ..."></div>
```

### Between children

Use utilities like `divide-x` and `divide-y-4` to add borders between child elements:

  {
    <div className="mx-auto grid max-w-lg grid-cols-3 divide-x-4 divide-indigo-500 rounded-lg text-center font-mono text-sm leading-6 font-bold text-gray-400">
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">01</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">02</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">03</div>
    </div>
  }

```html
<!-- [!code classes:divide-x-4] -->
<div class="grid grid-cols-3 divide-x-4">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

#### Reversing children order

If your elements are in reverse order (using say `flex-row-reverse` or `flex-col-reverse`), use the `divide-x-reverse` or `divide-y-reverse` utilities to ensure the border is added to the correct side of each element:

  {
    <div className="mx-auto flex max-w-sm flex-col-reverse divide-y-4 divide-y-reverse divide-indigo-500 rounded-lg text-center font-mono text-sm leading-6 font-bold text-gray-400">
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">01</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">02</div>
      <div className="p-4 outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed dark:outline-white/20">03</div>
    </div>
  }

```html
<!-- [!code classes:flex-col-reverse,divide-y-4,divide-y-reverse] -->
<div class="flex flex-col-reverse divide-y-4 divide-y-reverse divide-gray-200">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Using a custom value

### Responsive design


---

# box-decoration-break

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/box-decoration-break*

"Utilities for controlling how element fragments should be rendered across multiple lines, columns, or pages.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `box-decoration-clone` | `box-decoration-break: clone;` |
| `box-decoration-slice` | `box-decoration-break: slice;` |

## Examples

### Basic example

Use the `box-decoration-slice` and `box-decoration-clone` utilities to control whether properties like background, border, border-image, box-shadow, clip-path, margin, and padding should be rendered as if the element were one continuous fragment, or distinct blocks:

  {
    <div className="grid grid-cols-1 gap-10 px-10 font-mono font-bold sm:grid-cols-2">
      <div className="flex flex-col">
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">box-decoration-slice</p>
        <div className="font-sans text-5xl leading-none font-extrabold tracking-tight">
          <span className="bg-linear-to-r from-indigo-600 to-pink-500 box-decoration-slice px-2 leading-14 text-white">
            Hello
            <br />
            World
          </span>
        </div>
      </div>
      <div className="flex flex-col">
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">box-decoration-clone</p>
        <div className="font-sans text-5xl leading-none font-extrabold tracking-tight">
          <span className="bg-linear-to-r from-indigo-600 to-pink-500 box-decoration-clone px-2 leading-14 text-white">
            Hello
            <br />
            World
          </span>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:box-decoration-slice,box-decoration-clone] -->
<span class="box-decoration-slice bg-linear-to-r from-indigo-600 to-pink-500 px-2 text-white ...">
  Hello<br />World
</span>
<span class="box-decoration-clone bg-linear-to-r from-indigo-600 to-pink-500 px-2 text-white ...">
  Hello<br />World
</span>
```

### Responsive design


---

# box-shadow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/box-shadow*

CustomizingYourTheme,
  CustomizingYourThemeColors,
  ResponsiveDesign,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `shadow-2xs` | `box-shadow: var(--shadow-2xs); /* 0 1px rgb(0 0 0 / 0.05) */` |
| `shadow-xs` | `box-shadow: var(--shadow-xs); /* 0 1px 2px 0 rgb(0 0 0 / 0.05) */` |
| `shadow-sm` | `box-shadow: var(--shadow-sm); /* 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) */` |
| `shadow-md` | `box-shadow: var(--shadow-md); /* 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) */` |
| `shadow-lg` | `box-shadow: var(--shadow-lg); /* 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) */` |
| `shadow-xl` | `box-shadow: var(--shadow-xl); /* 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1) */` |
| `shadow-2xl` | `box-shadow: var(--shadow-2xl); /* 0 25px 50px -12px rgb(0 0 0 / 0.25) */` |
| `shadow-none` | `box-shadow: 0 0 #0000;` |
| `shadow-(<custom-property>)` | `box-shadow: var(<custom-property>);` |
| `shadow-(color:<custom-property>)` | `--tw-shadow-color: var(<custom-property>);` |
| `shadow-[<value>]` | `box-shadow: <value>;` |
| `shadow-inherit` | `--tw-shadow-color: inherit;` |
| `shadow-current` | `--tw-shadow-color: currentColor;` |
| `shadow-transparent` | `--tw-shadow-color: transparent;` |
| `inset-shadow-2xs` | `box-shadow: var(--inset-shadow-2xs); /* inset 0 1px rgb(0 0 0 / 0.05) */` |
| `inset-shadow-xs` | `box-shadow: var(--inset-shadow-xs); /* inset 0 1px 1px rgb(0 0 0 / 0.05) */` |
| `inset-shadow-sm` | `box-shadow: var(--inset-shadow-sm); /* inset 0 2px 4px rgb(0 0 0 / 0.05) */` |
| `inset-shadow-none` | `box-shadow: inset 0 0 #0000;` |
| `inset-shadow-(<custom-property>)` | `box-shadow: var(<custom-property>);` |
| `inset-shadow-[<value>]` | `box-shadow: <value>;` |
| `inset-shadow-inherit` | `--tw-inset-shadow-color: inherit;` |
| `inset-shadow-current` | `--tw-inset-shadow-color: currentColor;` |
| `inset-shadow-transparent` | `--tw-inset-shadow-color: transparent;` |
| `ring` | `--tw-ring-shadow: 0 0 0 1px;` |
| `ring-<number>` | `--tw-ring-shadow: 0 0 0 <number>px;` |
| `ring-(<custom-property>)` | `--tw-ring-shadow: 0 0 0 var(<custom-property>);` |
| `ring-[<value>]` | `--tw-ring-shadow: 0 0 0 <value>;` |
| `ring-inherit` | `--tw-ring-color: inherit;` |
| `ring-current` | `--tw-ring-color: currentColor;` |
| `ring-transparent` | `--tw-ring-color: transparent;` |
| `inset-ring` | `--tw-inset-ring-shadow: inset 0 0 0 1px` |
| `inset-ring-<number>` | `--tw-inset-ring-shadow: inset 0 0 0 <number>px` |
| `inset-ring-(<custom-property>)` | `--tw-inset-ring-shadow: inset 0 0 0 var(<custom-property>);` |
| `inset-ring-[<value>]` | `--tw-inset-ring-shadow: inset 0 0 0 <value>;` |
| `inset-ring-inherit` | `--tw-inset-ring-color: inherit;` |
| `inset-ring-current` | `--tw-inset-ring-color: currentColor;` |
| `inset-ring-transparent` | `--tw-inset-ring-color: transparent;` |

## Examples

### Basic example

Use utilities like `shadow-sm` and `shadow-lg` to apply different sized outer box shadows to an element:

  {
    <div className="flex items-center justify-around gap-4 gap-y-6 bg-white px-6 py-14 font-mono font-bold max-sm:flex-col max-sm:py-10">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-md</p>
        <div className="size-24 rounded-lg bg-white shadow-md"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-lg</p>
        <div className="size-24 rounded-lg bg-white shadow-lg"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-xl</p>
        <div className="size-24 rounded-lg bg-white shadow-xl"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:shadow-md,shadow-lg,shadow-xl] -->
<div class="shadow-md ..."></div>
<div class="shadow-lg ..."></div>
<div class="shadow-xl ..."></div>
```

### Changing the opacity

Use the opacity modifier to adjust the opacity of the box shadow:

  {
    <div className="flex items-center justify-around gap-4 gap-y-6 bg-white px-6 py-14 font-mono font-bold max-sm:flex-col max-sm:py-10">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-xl</p>
        <div className="size-24 rounded-lg bg-white shadow-xl"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-xl/20</p>
        <div className="size-24 rounded-lg bg-white shadow-xl/20"></div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-xl/30</p>
        <div className="size-24 rounded-lg bg-white shadow-xl/30"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:shadow-xl,shadow-xl/20,shadow-xl/30] -->
<div class="shadow-xl ..."></div>
<div class="shadow-xl/20 ..."></div>
<div class="shadow-xl/30 ..."></div>
```

The default box shadow opacities are quite low (25% or less), so increasing the opacity (to like 50%) will make the box shadows more pronounced.

### Setting the shadow color

Use utilities like `shadow-indigo-500` and `shadow-cyan-500/50` to change the color of a box shadow:

  {
    <div className="flex flex-col justify-center gap-8 py-6 sm:flex-row sm:gap-12">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          shadow-cyan-500/50
        </p>
        <button className="rounded-md bg-cyan-500 px-3 py-2 text-sm font-semibold text-white shadow-lg shadow-cyan-500/50 focus:outline-none">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          shadow-blue-500/50
        </p>
        <button className="rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-lg shadow-blue-500/50 focus:outline-none">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          shadow-indigo-500/50
        </p>
        <button className="rounded-md bg-indigo-500 px-3 py-2 text-sm font-semibold text-white shadow-lg shadow-indigo-500/50 focus:outline-none">
          Subscribe
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:shadow-cyan-500/50,shadow-blue-500/50,shadow-indigo-500/50] -->
<button class="bg-cyan-500 shadow-lg shadow-cyan-500/50 ...">Subscribe</button>
<button class="bg-blue-500 shadow-lg shadow-blue-500/50 ...">Subscribe</button>
<button class="bg-indigo-500 shadow-lg shadow-indigo-500/50 ...">Subscribe</button>
```

By default colored shadows have an opacity of 100% but you can adjust this using the opacity modifier.

### Adding an inset shadow

Use utilities like `inset-shadow-xs` and `inset-shadow-sm` to apply an inset box shadow to an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 gap-y-6 bg-white p-6 font-mono font-bold sm:flex-row">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">inset-shadow-2xs</p>
        <div className="size-24 rounded-lg bg-white ring-1 inset-shadow-2xs ring-black/5"></div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">inset-shadow-xs</p>
        <div className="size-24 rounded-lg bg-white ring-1 inset-shadow-xs ring-black/5"></div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">inset-shadow-sm</p>
        <div className="size-24 rounded-lg bg-white ring-1 inset-shadow-sm ring-black/5"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-shadow-2xs,inset-shadow-xs,inset-shadow-sm] -->
<div class="inset-shadow-2xs ..."></div>
<div class="inset-shadow-xs ..."></div>
<div class="inset-shadow-sm ..."></div>
```

You can adjust the opacity of an inset shadow using the opacity modifier, like `inset-shadow-sm/50`. The default inset shadow opacities are quite low (5%), so increasing the opacity (to like 50%) will make the inset shadows more pronounced.

### Setting the inset shadow color

Use utilities like `inset-shadow-indigo-500` and `inset-shadow-cyan-500/50` to change the color of an inset box shadow:

  {
    <div className="flex flex-col items-center justify-around gap-4 gap-y-6 bg-white p-6 font-mono font-bold sm:flex-row">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">inset-shadow-indigo-500</p>
        <div className="size-24 rounded-lg bg-indigo-200 inset-shadow-sm inset-shadow-indigo-500"></div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">inset-shadow-indigo-500/50</p>
        <div className="size-24 rounded-lg bg-indigo-200 inset-shadow-sm inset-shadow-indigo-500/50"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-shadow-indigo-500,inset-shadow-indigo-500/75] -->
<div class="inset-shadow-sm inset-shadow-indigo-500 ..."></div>
<div class="inset-shadow-sm inset-shadow-indigo-500/50 ..."></div>
```

By default colored shadows have an opacity of 100% but you can adjust this using the opacity modifier.

### Adding a ring

Use `ring` or `ring-<number>` utilities like `ring-2` and `ring-4` to apply a solid box-shadow to an element:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-6 text-center leading-6 font-bold text-white sm:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ring</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 ring dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ring-2</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 ring-2 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ring-4</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 ring-4 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:ring,ring-2,ring-4] -->
<button class="ring ...">Subscribe</button>
<button class="ring-2 ...">Subscribe</button>
<button class="ring-4 ...">Subscribe</button>
```

By default rings match the `currentColor` of the element they are applied to.

### Setting the ring color

Use utilities like `ring-indigo-500` and `ring-cyan-500/50` to change the color of a ring:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-6 text-center leading-6 font-bold text-white sm:grid-cols-2">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ring-blue-500</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 ring-2 ring-blue-500 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          ring-blue-500/50
        </p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 ring-2 ring-blue-500/50 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:ring-blue-500,ring-blue-500/50] -->
<button class="ring-2 ring-blue-500 ...">Subscribe</button>
<button class="ring-2 ring-blue-500/50 ...">Subscribe</button>
```

By default rings have an opacity of 100% but you can adjust this using the opacity modifier.

### Adding an inset ring

Use `inset-ring` or `inset-ring-<number>` utilities like `inset-ring-2` and `inset-ring-4` to apply a solid inset box-shadow to an element:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-6 text-center leading-6 font-bold text-white sm:grid-cols-3">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">inset-ring</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 inset-ring dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">inset-ring-2</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 inset-ring-2 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">inset-ring-4</p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 inset-ring-4 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-ring,inset-ring-2,inset-ring-4] -->
<button class="inset-ring ...">Subscribe</button>
<button class="inset-ring-2 ...">Subscribe</button>
<button class="inset-ring-4 ...">Subscribe</button>
```

By default inset rings match the `currentColor` of the element they are applied to.

### Setting the inset ring color

Use utilities like `inset-ring-indigo-500` and `inset-ring-cyan-500/50` to change the color of an inset ring:

  {
    <div className="grid grid-cols-1 gap-x-4 gap-y-6 text-center leading-6 font-bold text-white sm:grid-cols-2">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          inset-ring-blue-500
        </p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 inset-ring-2 inset-ring-blue-500 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          inset-ring-blue-500/50
        </p>
        <button className="rounded-md bg-white px-4 py-2 text-sm font-semibold text-gray-700 inset-ring-2 inset-ring-blue-500/50 dark:bg-white/15 dark:text-gray-200">
          Subscribe
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-ring-blue-500,inset-ring-blue-500/50] -->
<button class="inset-ring-2 inset-ring-blue-500 ...">Subscribe</button>
<button class="inset-ring-2 inset-ring-blue-500/50 ...">Subscribe</button>
```

By default inset rings have an opacity of 100% but you can adjust this using the opacity modifier.

### Removing a box shadow

Use the `shadow-none`, `inset-shadow-none`,`ring-0`, and `inset-ring-0` utilities to remove an existing box shadow from an element:

  {
    <div className="flex items-center justify-around gap-4 bg-white p-6 font-mono font-bold">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">shadow-none</p>
        <div className="size-24 rounded-lg outline-1 -outline-offset-1 outline-gray-900/20 outline-dashed"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:shadow-none] -->
<div class="shadow-none ..."></div>
```

### Using a custom value

### Responsive design

## Customizing your theme

### Customizing shadows

### Customizing inset shadows

### Customizing shadow colors


---

# box-sizing

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/box-sizing*

| Clase | Propiedades CSS |
| :--- | :--- |
| `box-border` | `box-sizing: border-box;` |
| `box-content` | `box-sizing: content-box;` |

## Examples

### Including borders and padding

Use the `box-border` utility to set an element's `box-sizing` to `border-box`, telling the browser to include the element's borders and padding when you give it a height or width.

This means a 100px &times; 100px element with a 2px border and 4px of padding on all sides will be rendered as 100px &times; 100px, with an internal content area of 88px &times; 88px:

  {
    <div className="relative grid w-full grid-cols-[1fr_8rem_1fr] grid-rows-[1fr_3fr_1fr] gap-px bg-gray-700/10 font-mono text-sm leading-6 font-bold dark:bg-gray-700">
      <div className="col-start-1 row-start-1 bg-white dark:bg-gray-900"></div>
      <div className="relative col-start-2 row-start-1 bg-white dark:bg-gray-900">
        {/* w-measure indicator */}
        <div className="absolute right-0 bottom-2 left-0 flex">
          {/* Horizontal line */}
          <div className="absolute top-1/2 right-0 left-0 h-px -translate-y-px bg-sky-400"></div>
          {/* Left chip */}
          <div className="w-full">
            <div className="absolute top-1/2 left-0 h-2 w-px -translate-x-px -translate-y-1 rounded-full bg-sky-400"></div>
          </div>
          {/* Badge */}
          <div className="relative flex w-full flex-auto items-center justify-center bg-white px-1.5 font-mono text-xs leading-none font-bold text-sky-600 dark:bg-gray-900 dark:text-sky-400">
            128px
          </div>
          {/* Right chip */}
          <div className="w-full">
            <div className="absolute top-1/2 right-0 h-2 w-px translate-x-px -translate-y-1 rounded-full bg-sky-400"></div>
          </div>
        </div>
      </div>
      <div className="col-start-3 row-start-1 bg-white dark:bg-gray-900"></div>
      <div className="relative col-start-1 row-start-2 bg-white dark:bg-gray-900">
        {/* h-measure indicator */}
        <div className="absolute top-0 right-2 bottom-0 flex w-3">
          {/* Vertical line */}
          <div className="absolute top-0 bottom-0 left-1/2 w-px translate-x-[-0.5px] bg-sky-400"></div>
          {/* Top chip */}
          <div className="w-full">
            <div className="absolute top-0 left-1/2 h-px w-2 -translate-x-1 -translate-y-px rounded-full bg-sky-400"></div>
          </div>
          {/* Badge */}
          <div className="relative flex h-3 flex-auto translate-x-[-1.15rem] translate-y-14 -rotate-90 items-center justify-center bg-white px-1.5 font-mono text-xs leading-none font-bold text-sky-600 dark:bg-gray-900 dark:text-sky-400">
            128px
          </div>
          {/* Bottom chip */}
          <div className="w-full">
            <div className="absolute bottom-0 left-1/2 h-px w-2 -translate-x-1 translate-y-px rounded-full bg-sky-400"></div>
          </div>
        </div>
      </div>
      <div className="col-start-2 row-start-2 size-32 bg-white ring-1 ring-sky-300 dark:bg-gray-900 dark:ring-sky-400">
        <div className="relative box-border size-32 p-5 ring ring-sky-300 ring-inset">
          <div className="relative z-1 h-full w-full bg-sky-500 ring-1 ring-sky-500"></div>
          <div className="absolute inset-0">
            
          </div>
        </div>
      </div>
      <div className="col-start-3 row-start-2 bg-white dark:bg-gray-900"></div>
      <div className="col-start-1 row-start-3 bg-white dark:bg-gray-900"></div>
      <div className="col-start-2 row-start-3 bg-white dark:bg-gray-900"></div>
      <div className="col-start-3 row-start-3 bg-white dark:bg-gray-900"></div>
    </div>
  }

```html
<!-- [!code classes:box-border] -->
<div class="box-border size-32 border-4 p-4 ...">
  <!-- ... -->
</div>
```

Tailwind makes this the default for all elements in our [preflight base styles](/docs/preflight).

### Excluding borders and padding

Use the `box-content` utility to set an element's `box-sizing` to `content-box`, telling the browser to add borders and padding on top of the element's specified width or height.

This means a 100px &times; 100px element with a 2px border and 4px of padding on all sides will actually be rendered as 112px &times; 112px, with an internal content area of 100px &times; 100px:

  {
    <div className="relative grid grid-cols-[1fr_8rem_1fr] grid-rows-[1fr_2fr_1fr] gap-px bg-gray-700/10 font-mono text-sm leading-6 font-bold dark:bg-gray-700">
      <div className="col-start-1 row-start-1 bg-white dark:bg-gray-900"></div>
      <div className="relative col-start-2 row-start-1 bg-white dark:bg-gray-900">
        {/* w-measure indicator */}
        <div className="absolute right-0 bottom-2 left-0 flex -translate-y-5">
          {/* Horizontal line */}
          <div className="absolute top-1/2 right-0 left-0 h-px -translate-y-px bg-blue-400"></div>
          {/* Left chip */}
          <div className="w-full">
            <div className="absolute top-1/2 left-0 h-2 w-px -translate-x-px -translate-y-1 rounded-full bg-blue-400"></div>
          </div>
          {/* Badge */}
          <div className="relative flex w-full flex-auto items-center justify-center bg-white px-1.5 font-mono text-xs leading-none font-bold text-blue-600 dark:bg-gray-900 dark:text-blue-400">
            128px
          </div>
          {/* Right chip */}
          <div className="w-full">
            <div className="absolute top-1/2 right-0 h-2 w-px translate-x-px -translate-y-1 rounded-full bg-blue-400"></div>
          </div>
        </div>
      </div>
      <div className="col-start-3 row-start-1 bg-white dark:bg-gray-900"></div>
      <div className="relative col-start-1 row-start-2 bg-white dark:bg-gray-900">
        {/* h-measure indicator */}
        <div className="absolute top-0 right-2 bottom-0 flex w-3 -translate-x-5">
          {/* Vertical line */}
          <div className="absolute top-0 bottom-0 left-1/2 w-px translate-x-[-0.5px] bg-blue-400"></div>
          {/* Top chip */}
          <div className="w-full">
            <div className="absolute top-0 left-1/2 h-px w-2 -translate-x-1 -translate-y-px rounded-full bg-blue-400"></div>
          </div>
          {/* Badge */}
          <div className="relative flex h-3 flex-auto translate-x-[-1.15rem] translate-y-14 -rotate-90 items-center justify-center bg-white px-1.5 font-mono text-xs leading-none font-bold text-blue-600 dark:bg-gray-900 dark:text-blue-400">
            128px
          </div>
          {/* Bottom chip */}
          <div className="w-full">
            <div className="absolute bottom-0 left-1/2 h-px w-2 -translate-x-1 translate-y-px rounded-full bg-blue-400"></div>
          </div>
        </div>
      </div>
      <div className="col-start-2 row-start-2 size-32 bg-white">
        <div className="relative box-content size-32 -translate-x-5 -translate-y-5 p-5 ring-4 ring-blue-300 ring-inset dark:ring-blue-500">
          <div className="h-full w-full bg-blue-500 ring-1 ring-blue-500"></div>
          <div className="absolute inset-1 z-10">
            
          </div>
        </div>
      </div>
      <div className="col-start-3 row-start-2 bg-white dark:bg-gray-900"></div>
      <div className="col-start-1 row-start-3 bg-white dark:bg-gray-900"></div>
      <div className="col-start-2 row-start-3 bg-white dark:bg-gray-900"></div>
      <div className="col-start-3 row-start-3 bg-white dark:bg-gray-900"></div>
    </div>
  }

```html
<!-- [!code classes:box-content] -->
<div class="box-content size-32 border-4 p-4 ...">
  <!-- ... -->
</div>
```

### Responsive design


---

# break-after

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/break-after*

| Clase | Propiedades CSS |
| :--- | :--- |
| `break-after-auto` | `break-after: auto;` |
| `break-after-avoid` | `break-after: avoid;` |
| `break-after-all` | `break-after: all;` |
| `break-after-avoid-page` | `break-after: avoid-page;` |
| `break-after-page` | `break-after: page;` |
| `break-after-left` | `break-after: left;` |
| `break-after-right` | `break-after: right;` |
| `break-after-column` | `break-after: column;` |

## Examples

### Basic example

Use utilities like `break-after-column` and `break-after-page` to control how a column or page break should behave after an element:

```html
<!-- [!code classes:break-after-column] -->
<div class="columns-2">
  <p>Well, let me tell you something, ...</p>
  <p class="break-after-column">Sure, go ahead, laugh...</p>
  <p>Maybe we can live without...</p>
  <p>Look. If you think this is...</p>
</div>
```

### Responsive design


---

# break-before

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/break-before*

| Clase | Propiedades CSS |
| :--- | :--- |
| `break-before-auto` | `break-before: auto;` |
| `break-before-avoid` | `break-before: avoid;` |
| `break-before-all` | `break-before: all;` |
| `break-before-avoid-page` | `break-before: avoid-page;` |
| `break-before-page` | `break-before: page;` |
| `break-before-left` | `break-before: left;` |
| `break-before-right` | `break-before: right;` |
| `break-before-column` | `break-before: column;` |

## Examples

### Basic example

Use utilities like `break-before-column` and `break-before-page` to control how a column or page break should behave before an element:

```html
<!-- [!code classes:break-before-column] -->
<div class="columns-2">
  <p>Well, let me tell you something, ...</p>
  <p class="break-before-column">Sure, go ahead, laugh...</p>
  <p>Maybe we can live without...</p>
  <p>Look. If you think this is...</p>
</div>
```

### Responsive design


---

# break-inside

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/break-inside*

| Clase | Propiedades CSS |
| :--- | :--- |
| `break-inside-auto` | `break-inside: auto;` |
| `break-inside-avoid` | `break-inside: avoid;` |
| `break-inside-avoid-page` | `break-inside: avoid-page;` |
| `break-inside-avoid-column` | `break-inside: avoid-column;` |

## Examples

### Basic example

Use utilities like `break-inside-column` and `break-inside-avoid-page` to control how a column or page break should behave within an element:

```html
<!-- [!code classes:break-inside-avoid-column] -->
<div class="columns-2">
  <p>Well, let me tell you something, ...</p>
  <p class="break-inside-avoid-column">Sure, go ahead, laugh...</p>
  <p>Maybe we can live without...</p>
  <p>Look. If you think this is...</p>
</div>
```

### Responsive design


---

# caption-side

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/caption-side*

| Clase | Propiedades CSS |
| :--- | :--- |
| `caption-top` | `caption-side: top;` |
| `caption-bottom` | `caption-side: bottom;` |

## Examples

### Placing at top of table

Use the `caption-top` utility to position a caption element at the top of a table:

  {
    <div className="overflow-hidden px-4 py-8 sm:px-8">
      <table className="w-full table-auto border-collapse text-sm">
        <caption className="caption-top pb-4 text-xs text-gray-500 dark:text-gray-400">
          Table 3.1: Professional wrestlers and their signature moves.
        </caption>
        <thead>
          <tr>
            <th className="border border-gray-200 bg-gray-50 p-4 py-3 pl-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200">
              Wrestler
            </th>
            <th className="border border-gray-200 bg-gray-50 p-4 py-3 pr-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200">
              Signature Move(s)
            </th>
          </tr>
        </thead>
        <tbody className="bg-white dark:bg-gray-800">
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              "Stone Cold" Steve Austin
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Stone Cold Stunner, Lou Thesz Press
            </td>
          </tr>
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Bret "The Hitman" Hart
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              The Sharpshooter
            </td>
          </tr>
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Razor Ramon
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Razor's Edge, Fallaway Slam
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:caption-top] -->
<table>
  <caption class="caption-top">
    Table 3.1: Professional wrestlers and their signature moves.
  </caption>
  <thead>
    <tr>
      <th>Wrestler</th>
      <th>Signature Move(s)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>"Stone Cold" Steve Austin</td>
      <td>Stone Cold Stunner, Lou Thesz Press</td>
    </tr>
    <tr>
      <td>Bret "The Hitman" Hart</td>
      <td>The Sharpshooter</td>
    </tr>
    <tr>
      <td>Razor Ramon</td>
      <td>Razor's Edge, Fallaway Slam</td>
    </tr>
  </tbody>
</table>
```

### Placing at bottom of table

Use the `caption-bottom` utility to position a caption element at the bottom of a table:

  {
    <div className="overflow-hidden px-4 py-8 sm:px-8">
      <table className="w-full table-auto border-collapse text-sm">
        <caption className="caption-bottom pt-4 text-xs text-gray-500 dark:text-gray-400">
          Table 3.1: Professional wrestlers and their signature moves.
        </caption>
        <thead>
          <tr>
            <th className="border border-gray-200 bg-gray-50 p-4 py-3 pl-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200">
              Wrestler
            </th>
            <th className="border border-gray-200 bg-gray-50 p-4 py-3 pr-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200">
              Signature Move(s)
            </th>
          </tr>
        </thead>
        <tbody className="bg-white dark:bg-gray-800">
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              "Stone Cold" Steve Austin
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Stone Cold Stunner, Lou Thesz Press
            </td>
          </tr>
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Bret "The Hitman" Hart
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              The Sharpshooter
            </td>
          </tr>
          <tr>
            <td className="border border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Razor Ramon
            </td>
            <td className="border border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Razor's Edge, Fallaway Slam
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code word:caption-bottom] -->
<table>
  <caption class="caption-bottom">
    Table 3.1: Professional wrestlers and their signature moves.
  </caption>
  <thead>
    <tr>
      <th>Wrestler</th>
      <th>Signature Move(s)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>"Stone Cold" Steve Austin</td>
      <td>Stone Cold Stunner, Lou Thesz Press</td>
    </tr>
    <tr>
      <td>Bret "The Hitman" Hart</td>
      <td>The Sharpshooter</td>
    </tr>
    <tr>
      <td>Razor Ramon</td>
      <td>Razor's Edge, Fallaway Slam</td>
    </tr>
  </tbody>
</table>
```

### Responsive design


---

# caret-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/caret-color*

| Clase | Propiedades CSS |
| :--- | :--- |
| `caret-inherit` | `caret-color: inherit;` |
| `caret-current` | `caret-color: currentColor;` |
| `caret-transparent` | `caret-color: transparent;` |
| `caret-<custom-property>` | `caret-color: var(<custom-property>);` |
| `caret-[<value>]` | `caret-color: <value>;` |

## Examples

### Basic example

Use utilities like `caret-rose-500` and `caret-lime-600` to change the color of the text input cursor:

  {
    <div className="flex w-full items-center justify-center">
      <textarea
        className="w-80 rounded-md p-2 text-sm caret-pink-500 ring-1 ring-gray-900/10 focus:ring-2 focus:ring-pink-500 focus:outline-none dark:bg-gray-950/25 dark:ring-1 dark:ring-white/5 dark:focus:bg-gray-950/10 dark:focus:ring-2 dark:focus:ring-pink-500"
        rows="2"
      />
    </div>
  }

```html
<!-- [!code classes:caret-pink-500] -->
<textarea class="caret-pink-500 ..."></textarea>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# clear

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/clear*

| Clase | Propiedades CSS |
| :--- | :--- |
| `clear-left` | `clear: left;` |
| `clear-right` | `clear: right;` |
| `clear-both` | `clear: both;` |
| `clear-start` | `clear: inline-start;` |
| `clear-end` | `clear: inline-end;` |
| `clear-none` | `clear: none;` |

## Examples

### Clearing left

Use the `clear-left` utility to position an element below any preceding left-floated elements:

  {
    <>
      <img
        className="float-left mr-6 mb-4 aspect-video w-1/4 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <img
        className="float-right ml-6 aspect-6/5 w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="clear-left text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:clear-left] -->
<article>
  <img class="float-left ..." src="/img/snow-mountains.jpg" />
  <img class="float-right ..." src="/img/green-mountains.jpg" />
  <p class="clear-left ...">Maybe we can live without libraries...</p>
</article>
```

### Clearing right

Use the `clear-right` utility to position an element below any preceding right-floated elements:

  {
    <>
      <img
        className="float-left mr-6 aspect-6/5 w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <img
        className="float-right mb-4 ml-6 aspect-video w-1/4 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=formathttps://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="clear-right text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:clear-right] -->
<article>
  <img class="float-left ..." src="/img/green-mountains.jpg" />
  <img class="float-right ..." src="/img/snow-mountains.jpg" />
  <p class="clear-right ...">Maybe we can live without libraries...</p>
</article>
```

### Clearing all

Use the `clear-both` utility to position an element below all preceding floated elements:

  {
    <>
      <img
        className="float-left mr-6 mb-4 aspect-video w-1/4 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=formathttps://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <img
        className="float-right mb-4 ml-6 aspect-6/5 w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="clear-both text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:clear-both] -->
<article>
  <img class="float-left ..." src="/img/snow-mountains.jpg" />
  <img class="float-right ..." src="/img/green-mountains.jpg" />
  <p class="clear-both ...">Maybe we can live without libraries...</p>
</article>
```

### Using logical properties

Use the `clear-start` and `clear-end` utilities, which use [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts) to map to either the left or right side based on the text direction:

  {
    <div dir="rtl">
      <img
        className="float-left mr-6 mb-4 aspect-video w-1/4 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <img
        className="float-right ml-6 aspect-6/5 w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="clear-end text-justify">
        ربما يمكننا العيش بدون مكتبات، أشخاص مثلي ومثلك. ربما. بالتأكيد، نحن أكبر من أن نغير العالم، ولكن ماذا عن ذلك
        الطفل الذي يجلس ويفتح كتابًا الآن في أحد فروع المكتبة المحلية ويجد رسومات للتبول والبول على القطة في القبعة
        والإخوة الصينيون الخمسة؟ ألا يستحق الأفضل؟ ينظر. إذا كنت تعتقد أن الأمر يتعلق بالغرامات المتأخرة والكتب
        المفقودة، فمن الأفضل أن تفكر مرة أخرى. يتعلق الأمر بحق ذلك الطفل في قراءة كتاب دون أن يتشوه عقله! أو: ربما يثيرك
        هذا يا سينفيلد؛ ربما هذه هي الطريقة التي تحصل بها على ركلاتك. أنت ورفاقك الطيبين.
      </p>
    </div>
  }

```html
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:clear-end] -->
<article dir="rtl">
  <img class="float-left ..." src="/img/green-mountains.jpg" />
  <img class="float-right ..." src="/img/green-mountains.jpg" />
  <p class="clear-end ...">...ربما يمكننا العيش بدون مكتبات،</p>
</article>
```

### Disabling clears

Use the `clear-none` utility to reset any clears that are applied to an element:

  {
    <>
      <img
        className="float-left mr-6 aspect-6/5 w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <img
        className="float-right ml-6 aspect-video w-1/4 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=formathttps://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:clear-none] -->
<article>
  <img class="float-left ..." src="/img/green-mountains.jpg" />
  <img class="float-right ..." src="/img/snow-mountains.jpg" />
  <p class="clear-none ...">Maybe we can live without libraries...</p>
</article>
```

### Responsive design


---

# color-scheme

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/color-scheme*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scheme-normal` | `color-scheme: normal;` |
| `scheme-dark` | `color-scheme: dark;` |
| `scheme-light` | `color-scheme: light;` |
| `scheme-light-dark` | `color-scheme: light dark;` |
| `scheme-only-dark` | `color-scheme: only dark;` |
| `scheme-only-light` | `color-scheme: only light;` |

## Examples

### Basic example

Use utilities like `scheme-light` and `scheme-light-dark` to control how element should be rendered:

  {
    <div className="flex justify-between gap-8 text-sm max-sm:flex-col">
      <div className="flex grow flex-col items-center gap-3 text-center scheme-light">
        <p className="font-mono font-medium text-gray-500 dark:text-gray-400">scheme-light</p>
        <input
          type="date"
          className="w-full rounded-lg border border-gray-950/10 bg-[Field] px-3 py-2 text-[FieldText] dark:border-white/10"
        />
      </div>
      <div className="flex grow flex-col items-center gap-3 text-center scheme-dark">
        <p className="font-mono font-medium text-gray-500 dark:text-gray-400">scheme-dark</p>
        <input
          type="date"
          className="w-full rounded-lg border border-gray-950/10 bg-[Field] px-3 py-2 text-[FieldText] dark:border-white/10"
        />
      </div>
      <div className="flex grow flex-col items-center gap-3 text-center scheme-light-dark">
        <p className="font-medium text-gray-500 dark:text-gray-400">scheme-light-dark</p>
        <input
          type="date"
          className="w-full rounded-lg border border-gray-950/10 bg-[Field] px-3 py-2 text-[FieldText] dark:border-white/10"
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:scheme-light-dark,scheme-light,scheme-dark] -->
<div class="scheme-light ...">
  <input type="date" />
</div>

<div class="scheme-dark ...">
  <input type="date" />
</div>

<div class="scheme-light-dark ...">
  <input type="date" />
</div>
```

### Applying in dark mode


---

# color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/color*

CustomizingYourThemeColors,
  ResponsiveDesign,
  TargetingSpecificStates,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-inherit` | `color: inherit;` |
| `text-current` | `color: currentColor;` |
| `text-transparent` | `color: transparent;` |
| `text-(<custom-property>)` | `color: var(<custom-property>);` |
| `text-[<value>]` | `color: <value>;` |
| `text-<value>` | `color: var(--color-<value>); /* <value> */` |

## Examples

### Basic example

Use utilities like `text-blue-600` and `text-sky-400` to control the text color of an element:

  {
    <div className="relative text-center text-xl leading-6 font-medium">
      <p className="text-blue-600 dark:text-sky-400">The quick brown fox jumps over the lazy dog.</p>
    </div>
  }

```html
<!-- [!code classes:text-blue-600,dark:text-sky-400] -->
<p class="text-blue-600 dark:text-sky-400">The quick brown fox...</p>
```

### Changing the opacity

Use the color opacity modifier to control the text color opacity of an element:

  {
    <div className="space-y-4 text-center text-xl leading-6 font-medium">
      <p className="text-blue-600/100 dark:text-sky-400/100">The quick brown fox jumps over the lazy dog.</p>
      <p className="text-blue-600/75 dark:text-sky-400/75">The quick brown fox jumps over the lazy dog.</p>
      <p className="text-blue-600/50 dark:text-sky-400/50">The quick brown fox jumps over the lazy dog.</p>
      <p className="text-blue-600/25 dark:text-sky-400/25">The quick brown fox jumps over the lazy dog.</p>
    </div>
  }

```html
<!-- [!code word:\/100] -->
<!-- [!code word:\/75] -->
<!-- [!code word:\/50] -->
<!-- [!code word:\/25] -->
<p class="text-blue-600/100 dark:text-sky-400/100">The quick brown fox...</p>
<p class="text-blue-600/75 dark:text-sky-400/75">The quick brown fox...</p>
<p class="text-blue-600/50 dark:text-sky-400/50">The quick brown fox...</p>
<p class="text-blue-600/25 dark:text-sky-400/25">The quick brown fox...</p>
```

### Using a custom value

### Applying on hover

  {
    <p className="text-center text-xl font-medium text-gray-900 dark:text-gray-200">
      Oh I gotta get on that{" "}
      <a
        href="https://en.wikipedia.org/wiki/Internet"
        target="_blank"
        className="underline hover:text-blue-600 dark:hover:text-blue-400"
      >
        internet
      </a>
      , I'm late on everything!
    </p>
  }

```html
<!-- [!code classes:hover:text-blue-600,dark:hover:text-blue-400] -->
<!-- prettier-ignore -->
<p class="...">
  Oh I gotta get on that
  <a class="underline hover:text-blue-600 dark:hover:text-blue-400" href="https://en.wikipedia.org/wiki/Internet">internet</a>,
  I'm late on everything!
</p>
```

### Responsive design

## Customizing your theme


---

# Colors

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/colors*

Tailwind CSS includes a vast, beautiful color palette out of the box, carefully crafted by expert designers and suitable for a wide range of different design styles.

<div className="relative my-10">
  {/* {<>Click to copy OKLCH, shift+click to copy nearest hex</>} */}
  {/* <div className="mt-6"> */}
  
  {/* </div> */}
</div>

Every color in the default palette includes 11 steps, with 50 being the lightest, and 950 being the darkest:

  <div className="mx-auto inline-grid max-w-lg grid-cols-1 justify-center gap-3 *:*:first:size-9 *:*:first:rounded-md *:*:first:inset-ring *:*:first:inset-ring-black/5 sm:grid-cols-11 sm:flex-row sm:*:*:first:aspect-square sm:*:*:first:w-full">
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-50"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">50</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-100"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">100</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-200"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">200</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-300"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">300</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-400"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">400</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-500"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">500</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-600"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">600</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-700"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">700</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-800"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">800</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-900"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">900</p>
    </div>
    <div className="flex items-center gap-1.5 sm:flex-col">
      <div className="bg-sky-950"></div>
      <p className="text-center font-mono text-xs text-gray-600 dark:text-gray-400">950</p>
    </div>
  </div>

```html
<!-- [!code classes:bg-sky-50,bg-sky-100,bg-sky-200,bg-sky-300,bg-sky-400,bg-sky-500,bg-sky-600,bg-sky-700,bg-sky-800,bg-sky-900,bg-sky-950] -->
<div>
  <div class="bg-sky-50"></div>
  <div class="bg-sky-100"></div>
  <div class="bg-sky-200"></div>
  <div class="bg-sky-300"></div>
  <div class="bg-sky-400"></div>
  <div class="bg-sky-500"></div>
  <div class="bg-sky-600"></div>
  <div class="bg-sky-700"></div>
  <div class="bg-sky-800"></div>
  <div class="bg-sky-900"></div>
  <div class="bg-sky-950"></div>
</div>
```

The entire color palette is available across all color related utilities, including things like [background color](/docs/background-color), [border color](/docs/border-color), [fill](/docs/fill), [caret color](/docs/caret-color), and many more.

## Working with colors

### Using color utilities

Use color utilities like `bg-white`, `border-pink-300`, and `text-gray-950` to set the different color properties of elements in your design:

  {
    <div className="bg-black/5 p-8 text-sm">
      <div className="mx-auto flex max-w-md items-center gap-4 rounded-lg bg-white p-6 shadow-md outline outline-black/5 dark:bg-gray-800">
        <span className="inline-flex shrink-0 rounded-full border border-pink-300 bg-pink-100 p-2 dark:border-pink-300/10 dark:bg-pink-400/10">
          <svg
            xmlns="http://www.w3.org/2000/svg"
            fill="none"
            viewBox="0 0 24 24"
            strokeWidth={1.5}
            className="size-6 stroke-pink-700 dark:stroke-pink-500"
          >
            <path
              strokeLinecap="round"
              strokeLinejoin="round"
              d="M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0"
            />
          </svg>
        </span>
        <div>
          <p className="text-gray-700 dark:text-gray-400">
            <span className="font-medium text-gray-950 dark:text-white">Tom Watson</span> mentioned you in{" "}
            <span className="font-medium text-gray-950 dark:text-white">Logo redesign</span>
          </p>
          <p className="mt-1 text-gray-500">9:37am</p>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:bg-white,border-pink-300,bg-pink-100,stroke-pink-700,text-gray-950,text-gray-500,outline-black/5,text-gray-700,dark:bg-gray-800,dark:border-pink-300/10,dark:bg-pink-400/10,dark:stroke-pink-500,dark:text-gray-400,dark:text-white] -->
<div class="flex items-center gap-4 rounded-lg bg-white p-6 shadow-md outline outline-black/5 dark:bg-gray-800">
  <!-- prettier-ignore -->
  <span class="inline-flex shrink-0 rounded-full border border-pink-300 bg-pink-100 p-2 dark:border-pink-300/10 dark:bg-pink-400/10">
    <svg class="size-6 stroke-pink-700 dark:stroke-pink-500"><!-- ... --></svg>
  </span>
  <div>
    <p class="text-gray-700 dark:text-gray-400">
      <span class="font-medium text-gray-950 dark:text-white">Tom Watson</span> mentioned you in
      <span class="font-medium text-gray-950 dark:text-white">Logo redesign</span>
    </p>
    <time class="mt-1 block text-gray-500" datetime="9:37">9:37am</time>
  </div>
</div>
```

Here's a full list of utilities that use your color palette:

{

<table>
  <thead>
    <tr>
      <th>Utility</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code>bg-*</code>
      </td>
      <td>
        Sets the <a href="/docs/background-color">background color</a> of an element
      </td>
    </tr>
    <tr>
      <td>
        <code>text-*</code>
      </td>
      <td>
        Sets the <a href="/docs/text-color">text color</a> of an element
      </td>
    </tr>
    <tr>
      <td>
        <code>decoration-*</code>
      </td>
      <td>
        Sets the <a href="/docs/text-decoration-color">text decoration color</a> of an element
      </td>
    </tr>
    <tr>
      <td>
        <code>border-*</code>
      </td>
      <td>
        Sets the <a href="/docs/border-color">border color</a> of an element
      </td>
    </tr>
    <tr>
      <td>
        <code>outline-*</code>
      </td>
      <td>
        Sets the <a href="/docs/outline-color">outline color</a> of an element
      </td>
    </tr>
    <tr>
      <td>
        <code>shadow-*</code>
      </td>
      <td>
        Sets the color of <a href="/docs/box-shadow#setting-the-shadow-color">box shadows</a>
      </td>
    </tr>
    <tr>
      <td>
        <code>inset-shadow-*</code>
      </td>
      <td>
        Sets the color of <a href="/docs/box-shadow#setting-the-inset-shadow-color">inset box shadows</a>
      </td>
    </tr>
    <tr>
      <td>
        <code>ring-*</code>
      </td>
      <td>
        Sets the color of <a href="/docs/box-shadow#setting-the-ring-color">ring shadows</a>
      </td>
    </tr>
    <tr>
      <td>
        <code>inset-ring-*</code>
      </td>
      <td>
        Sets the color of <a href="/docs/box-shadow#setting-the-inset-ring-color">inset ring shadows</a>
      </td>
    </tr>
    <tr>
      <td>
        <code>accent-*</code>
      </td>
      <td>
        Sets the <a href="/docs/accent-color">accent color</a> of form controls
      </td>
    </tr>
    <tr>
      <td>
        <code>caret-*</code>
      </td>
      <td>
        Sets the <a href="/docs/caret-color">caret color</a> in form controls
      </td>
    </tr>
    <tr>
      <td>
        <code>scrollbar-thumb-*</code>
      </td>
      <td>
        Sets the <a href="/docs/scrollbar-color">thumb color</a> of an element's scrollbar
      </td>
    </tr>
    <tr>
      <td>
        <code>scrollbar-track-*</code>
      </td>
      <td>
        Sets the <a href="/docs/scrollbar-color">track color</a> of an element's scrollbar
      </td>
    </tr>
    <tr>
      <td>
        <code>fill-*</code>
      </td>
      <td>
        Sets the <a href="/docs/fill">fill color</a> of SVG elements
      </td>
    </tr>
    <tr>
      <td>
        <code>stroke-*</code>
      </td>
      <td>
        Sets the <a href="/docs/stroke">stroke color</a> of SVG elements
      </td>
    </tr>
  </tbody>
</table>
}

### Adjusting opacity

You can adjust the opacity of a color using syntax like `bg-black/75`, where `75` sets the alpha channel of the color to 75%:

  <div
    className="flex items-center justify-center p-8 [--checkered-bg:--alpha(var(--color-gray-950)/10%)] dark:[--checkered-bg:--alpha(var(--color-white)/5%)]"
    style={{
      backgroundImage: `
      linear-gradient(45deg, var(--checkered-bg) 25%, transparent 25%),
      linear-gradient(-45deg, var(--checkered-bg) 25%, transparent 25%),
      linear-gradient(45deg, transparent 75%, var(--checkered-bg) 75%),
      linear-gradient(-45deg, transparent 75%, var(--checkered-bg) 75%)`,
      backgroundSize: "20px 20px",
      backgroundPosition: "0 0, 0 10px, 10px -10px, -10px 0px",
    }}
  >
    <div className="mx-auto inline-grid max-w-lg grid-cols-1 justify-center gap-3 *:*:first:size-9 *:*:first:rounded-md sm:grid-cols-10 sm:flex-row sm:*:*:first:aspect-square sm:*:*:first:w-full">
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/10"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/20"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/30"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/40"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/50"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/60"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/70"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/80"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/90"></div>
      </div>
      <div className="flex items-center gap-1.5 sm:flex-col">
        <div className="bg-sky-500/100"></div>
      </div>
    </div>
  </div>

```html
<!-- [!code classes:bg-black-50/10,bg-black-100/20,bg-black-200/30,bg-black-300/40,bg-black-400/50,bg-black-500/60,bg-black-600/70,bg-black-700/80,bg-black-800/90,bg-black-900/100] -->
<div>
  <div class="bg-sky-500/10"></div>
  <div class="bg-sky-500/20"></div>
  <div class="bg-sky-500/30"></div>
  <div class="bg-sky-500/40"></div>
  <div class="bg-sky-500/50"></div>
  <div class="bg-sky-500/60"></div>
  <div class="bg-sky-500/70"></div>
  <div class="bg-sky-500/80"></div>
  <div class="bg-sky-500/90"></div>
  <div class="bg-sky-500/100"></div>
</div>
```

This syntax also supports arbitrary values and the CSS variable shorthand:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-pink-500/[71.37%],bg-cyan-400/(--my-alpha-value)] -->
<div class="bg-pink-500/[71.37%]"><!-- ... --></div>
<div class="bg-cyan-400/(--my-alpha-value)"><!-- ... --></div>
```

### Targeting dark mode

Use the `dark` variant to write classes like `dark:bg-gray-800` that only apply a color when dark mode is active:

  {
    <div className="grid grid-cols-1 sm:grid-cols-2">
      <div className="p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-500">Light mode</p>
        <div className="rounded-lg bg-white px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                xmlns="http://www.w3.org/2000/svg"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-gray-900">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-500"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
      <div className="bg-gray-900 p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-400">Dark mode</p>
        <div className="rounded-lg bg-gray-800 px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                xmlns="http://www.w3.org/2000/svg"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-white">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-400"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code word:dark\:bg-gray-800] -->
<!-- prettier-ignore -->
<div class="bg-white dark:bg-gray-800 rounded-lg px-6 py-8 ring shadow-xl ring-gray-900/5">
  <div>
    <span class="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
      <svg class="h-6 w-6 stroke-white" ...>
        <!-- ... -->
      </svg>
    </span>
  </div>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-white] -->
  <h3 class="text-gray-900 dark:text-white mt-5 text-base font-medium tracking-tight ">Writes upside-down</h3>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-gray-400] -->
  <p class="text-gray-500 dark:text-gray-400 mt-2 text-sm ">
    The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer space.
  </p>
</div>
```

Learn more about styling for dark mode in the [dark mode documentation](/docs/dark-mode).

### Referencing in CSS

Colors are exposed as CSS variables in the `--color-*` namespace, so you can reference them in CSS with variables like `--color-blue-500` and `--color-pink-700`:

```css
/* [!code filename:CSS] */
/* [!code word:var(--color-gray-950)] */
/* [!code word:var(--color-blue-500)] */
/* [!code word:var(--color-blue-800)] */
@import "tailwindcss";

@layer components {
  .typography {
    color: var(--color-gray-950);
    a {
      color: var(--color-blue-500);
      &:hover {
        color: var(--color-blue-800);
      }
    }
  }
}
```

You can also use these as [arbitrary values]() in utility classes:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-[light-dark(var(--color-white),var(--color-gray-950))]] -->
<div class="bg-[light-dark(var(--color-white),var(--color-gray-950))]">
  <!-- ... -->
</div>
```

To quickly adjust the opacity of a color when referencing it as a variable in CSS, Tailwind includes a special <code>--alpha()</code> function:

```css
/* [!code filename:CSS] */
/* [!code word:--alpha(var(--color-gray-950) / 10%)] */
@import "tailwindcss";

@layer components {
  .DocSearch-Hit--Result {
    background-color: --alpha(var(--color-gray-950) / 10%);
  }
}
```

## Customizing your colors

Use `@theme` to add custom colors to your project under the `--color-*` theme namespace:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

/* [!code highlight:6] */
@theme {
  --color-midnight: #121063;
  --color-tahiti: #3ab7bf;
  --color-bermuda: #78dcca;
}
```

Now utilities like `bg-midnight`, `text-tahiti`, and `fill-bermuda` will be available in your project in addition to the default colors.

Learn more about theme variables in the [theme variables documentation](/docs/theme).

### Overriding default colors

Override any of the default colors by defining new theme variables with the same name:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

/* [!code highlight:14] */
@theme {
  --color-gray-50: oklch(0.984 0.003 247.858);
  --color-gray-100: oklch(0.968 0.007 247.896);
  --color-gray-200: oklch(0.929 0.013 255.508);
  --color-gray-300: oklch(0.869 0.022 252.894);
  --color-gray-400: oklch(0.704 0.04 256.788);
  --color-gray-500: oklch(0.554 0.046 257.417);
  --color-gray-600: oklch(0.446 0.043 257.281);
  --color-gray-700: oklch(0.372 0.044 257.287);
  --color-gray-800: oklch(0.279 0.041 260.031);
  --color-gray-900: oklch(0.208 0.042 265.755);
  --color-gray-950: oklch(0.129 0.042 264.695);
}
```

### Disabling default colors

Disable any default color by setting the theme namespace for that color to `initial`:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

/* [!code highlight:5] */
@theme {
  --color-lime-*: initial;
  --color-fuchsia-*: initial;
}
```

This is especially useful for removing the corresponding CSS variables from your output for colors you don't intend to use.

### Using a custom palette

Use `--color-*: initial` to completely disable all of the default colors and define your own custom color palette:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

@theme {
  /* [!code highlight:7] */
  --color-*: initial;
  --color-white: #fff;
  --color-purple: #3f3cbb;
  --color-midnight: #121063;
  --color-tahiti: #3ab7bf;
  --color-bermuda: #78dcca;
}
```

### Referencing other variables

Use `@theme inline` when defining colors that reference other colors:

```css
/* [!code filename:CSS] */
@import "tailwindcss";

:root {
  --acme-canvas-color: oklch(0.967 0.003 264.542);
}

[data-theme="dark"] {
  --acme-canvas-color: oklch(0.21 0.034 264.665);
}

/* [!code highlight:4] */
@theme inline {
  --color-canvas: var(--acme-canvas-color);
}
```

Learn more in the theme documentation on [referencing other variables](/docs/theme#referencing-other-variables).

## Default color palette reference

Here's a complete list of the default colors and their values for reference:

```css
/* [!code filename:CSS] */
@theme {
  --color-red-50: oklch(97.1% 0.013 17.38);
  --color-red-100: oklch(93.6% 0.032 17.717);
  --color-red-200: oklch(88.5% 0.062 18.334);
  --color-red-300: oklch(80.8% 0.114 19.571);
  --color-red-400: oklch(70.4% 0.191 22.216);
  --color-red-500: oklch(63.7% 0.237 25.331);
  --color-red-600: oklch(57.7% 0.245 27.325);
  --color-red-700: oklch(50.5% 0.213 27.518);
  --color-red-800: oklch(44.4% 0.177 26.899);
  --color-red-900: oklch(39.6% 0.141 25.723);
  --color-red-950: oklch(25.8% 0.092 26.042);

  --color-orange-50: oklch(98% 0.016 73.684);
  --color-orange-100: oklch(95.4% 0.038 75.164);
  --color-orange-200: oklch(90.1% 0.076 70.697);
  --color-orange-300: oklch(83.7% 0.128 66.29);
  --color-orange-400: oklch(75% 0.183 55.934);
  --color-orange-500: oklch(70.5% 0.213 47.604);
  --color-orange-600: oklch(64.6% 0.222 41.116);
  --color-orange-700: oklch(55.3% 0.195 38.402);
  --color-orange-800: oklch(47% 0.157 37.304);
  --color-orange-900: oklch(40.8% 0.123 38.172);
  --color-orange-950: oklch(26.6% 0.079 36.259);

  --color-amber-50: oklch(98.7% 0.022 95.277);
  --color-amber-100: oklch(96.2% 0.059 95.617);
  --color-amber-200: oklch(92.4% 0.12 95.746);
  --color-amber-300: oklch(87.9% 0.169 91.605);
  --color-amber-400: oklch(82.8% 0.189 84.429);
  --color-amber-500: oklch(76.9% 0.188 70.08);
  --color-amber-600: oklch(66.6% 0.179 58.318);
  --color-amber-700: oklch(55.5% 0.163 48.998);
  --color-amber-800: oklch(47.3% 0.137 46.201);
  --color-amber-900: oklch(41.4% 0.112 45.904);
  --color-amber-950: oklch(27.9% 0.077 45.635);

  --color-yellow-50: oklch(98.7% 0.026 102.212);
  --color-yellow-100: oklch(97.3% 0.071 103.193);
  --color-yellow-200: oklch(94.5% 0.129 101.54);
  --color-yellow-300: oklch(90.5% 0.182 98.111);
  --color-yellow-400: oklch(85.2% 0.199 91.936);
  --color-yellow-500: oklch(79.5% 0.184 86.047);
  --color-yellow-600: oklch(68.1% 0.162 75.834);
  --color-yellow-700: oklch(55.4% 0.135 66.442);
  --color-yellow-800: oklch(47.6% 0.114 61.907);
  --color-yellow-900: oklch(42.1% 0.095 57.708);
  --color-yellow-950: oklch(28.6% 0.066 53.813);

  --color-lime-50: oklch(98.6% 0.031 120.757);
  --color-lime-100: oklch(96.7% 0.067 122.328);
  --color-lime-200: oklch(93.8% 0.127 124.321);
  --color-lime-300: oklch(89.7% 0.196 126.665);
  --color-lime-400: oklch(84.1% 0.238 128.85);
  --color-lime-500: oklch(76.8% 0.233 130.85);
  --color-lime-600: oklch(64.8% 0.2 131.684);
  --color-lime-700: oklch(53.2% 0.157 131.589);
  --color-lime-800: oklch(45.3% 0.124 130.933);
  --color-lime-900: oklch(40.5% 0.101 131.063);
  --color-lime-950: oklch(27.4% 0.072 132.109);

  --color-green-50: oklch(98.2% 0.018 155.826);
  --color-green-100: oklch(96.2% 0.044 156.743);
  --color-green-200: oklch(92.5% 0.084 155.995);
  --color-green-300: oklch(87.1% 0.15 154.449);
  --color-green-400: oklch(79.2% 0.209 151.711);
  --color-green-500: oklch(72.3% 0.219 149.579);
  --color-green-600: oklch(62.7% 0.194 149.214);
  --color-green-700: oklch(52.7% 0.154 150.069);
  --color-green-800: oklch(44.8% 0.119 151.328);
  --color-green-900: oklch(39.3% 0.095 152.535);
  --color-green-950: oklch(26.6% 0.065 152.934);

  --color-emerald-50: oklch(97.9% 0.021 166.113);
  --color-emerald-100: oklch(95% 0.052 163.051);
  --color-emerald-200: oklch(90.5% 0.093 164.15);
  --color-emerald-300: oklch(84.5% 0.143 164.978);
  --color-emerald-400: oklch(76.5% 0.177 163.223);
  --color-emerald-500: oklch(69.6% 0.17 162.48);
  --color-emerald-600: oklch(59.6% 0.145 163.225);
  --color-emerald-700: oklch(50.8% 0.118 165.612);
  --color-emerald-800: oklch(43.2% 0.095 166.913);
  --color-emerald-900: oklch(37.8% 0.077 168.94);
  --color-emerald-950: oklch(26.2% 0.051 172.552);

  --color-teal-50: oklch(98.4% 0.014 180.72);
  --color-teal-100: oklch(95.3% 0.051 180.801);
  --color-teal-200: oklch(91% 0.096 180.426);
  --color-teal-300: oklch(85.5% 0.138 181.071);
  --color-teal-400: oklch(77.7% 0.152 181.912);
  --color-teal-500: oklch(70.4% 0.14 182.503);
  --color-teal-600: oklch(60% 0.118 184.704);
  --color-teal-700: oklch(51.1% 0.096 186.391);
  --color-teal-800: oklch(43.7% 0.078 188.216);
  --color-teal-900: oklch(38.6% 0.063 188.416);
  --color-teal-950: oklch(27.7% 0.046 192.524);

  --color-cyan-50: oklch(98.4% 0.019 200.873);
  --color-cyan-100: oklch(95.6% 0.045 203.388);
  --color-cyan-200: oklch(91.7% 0.08 205.041);
  --color-cyan-300: oklch(86.5% 0.127 207.078);
  --color-cyan-400: oklch(78.9% 0.154 211.53);
  --color-cyan-500: oklch(71.5% 0.143 215.221);
  --color-cyan-600: oklch(60.9% 0.126 221.723);
  --color-cyan-700: oklch(52% 0.105 223.128);
  --color-cyan-800: oklch(45% 0.085 224.283);
  --color-cyan-900: oklch(39.8% 0.07 227.392);
  --color-cyan-950: oklch(30.2% 0.056 229.695);

  --color-sky-50: oklch(97.7% 0.013 236.62);
  --color-sky-100: oklch(95.1% 0.026 236.824);
  --color-sky-200: oklch(90.1% 0.058 230.902);
  --color-sky-300: oklch(82.8% 0.111 230.318);
  --color-sky-400: oklch(74.6% 0.16 232.661);
  --color-sky-500: oklch(68.5% 0.169 237.323);
  --color-sky-600: oklch(58.8% 0.158 241.966);
  --color-sky-700: oklch(50% 0.134 242.749);
  --color-sky-800: oklch(44.3% 0.11 240.79);
  --color-sky-900: oklch(39.1% 0.09 240.876);
  --color-sky-950: oklch(29.3% 0.066 243.157);

  --color-blue-50: oklch(97% 0.014 254.604);
  --color-blue-100: oklch(93.2% 0.032 255.585);
  --color-blue-200: oklch(88.2% 0.059 254.128);
  --color-blue-300: oklch(80.9% 0.105 251.813);
  --color-blue-400: oklch(70.7% 0.165 254.624);
  --color-blue-500: oklch(62.3% 0.214 259.815);
  --color-blue-600: oklch(54.6% 0.245 262.881);
  --color-blue-700: oklch(48.8% 0.243 264.376);
  --color-blue-800: oklch(42.4% 0.199 265.638);
  --color-blue-900: oklch(37.9% 0.146 265.522);
  --color-blue-950: oklch(28.2% 0.091 267.935);

  --color-indigo-50: oklch(96.2% 0.018 272.314);
  --color-indigo-100: oklch(93% 0.034 272.788);
  --color-indigo-200: oklch(87% 0.065 274.039);
  --color-indigo-300: oklch(78.5% 0.115 274.713);
  --color-indigo-400: oklch(67.3% 0.182 276.935);
  --color-indigo-500: oklch(58.5% 0.233 277.117);
  --color-indigo-600: oklch(51.1% 0.262 276.966);
  --color-indigo-700: oklch(45.7% 0.24 277.023);
  --color-indigo-800: oklch(39.8% 0.195 277.366);
  --color-indigo-900: oklch(35.9% 0.144 278.697);
  --color-indigo-950: oklch(25.7% 0.09 281.288);

  --color-violet-50: oklch(96.9% 0.016 293.756);
  --color-violet-100: oklch(94.3% 0.029 294.588);
  --color-violet-200: oklch(89.4% 0.057 293.283);
  --color-violet-300: oklch(81.1% 0.111 293.571);
  --color-violet-400: oklch(70.2% 0.183 293.541);
  --color-violet-500: oklch(60.6% 0.25 292.717);
  --color-violet-600: oklch(54.1% 0.281 293.009);
  --color-violet-700: oklch(49.1% 0.27 292.581);
  --color-violet-800: oklch(43.2% 0.232 292.759);
  --color-violet-900: oklch(38% 0.189 293.745);
  --color-violet-950: oklch(28.3% 0.141 291.089);

  --color-purple-50: oklch(97.7% 0.014 308.299);
  --color-purple-100: oklch(94.6% 0.033 307.174);
  --color-purple-200: oklch(90.2% 0.063 306.703);
  --color-purple-300: oklch(82.7% 0.119 306.383);
  --color-purple-400: oklch(71.4% 0.203 305.504);
  --color-purple-500: oklch(62.7% 0.265 303.9);
  --color-purple-600: oklch(55.8% 0.288 302.321);
  --color-purple-700: oklch(49.6% 0.265 301.924);
  --color-purple-800: oklch(43.8% 0.218 303.724);
  --color-purple-900: oklch(38.1% 0.176 304.987);
  --color-purple-950: oklch(29.1% 0.149 302.717);

  --color-fuchsia-50: oklch(97.7% 0.017 320.058);
  --color-fuchsia-100: oklch(95.2% 0.037 318.852);
  --color-fuchsia-200: oklch(90.3% 0.076 319.62);
  --color-fuchsia-300: oklch(83.3% 0.145 321.434);
  --color-fuchsia-400: oklch(74% 0.238 322.16);
  --color-fuchsia-500: oklch(66.7% 0.295 322.15);
  --color-fuchsia-600: oklch(59.1% 0.293 322.896);
  --color-fuchsia-700: oklch(51.8% 0.253 323.949);
  --color-fuchsia-800: oklch(45.2% 0.211 324.591);
  --color-fuchsia-900: oklch(40.1% 0.17 325.612);
  --color-fuchsia-950: oklch(29.3% 0.136 325.661);

  --color-pink-50: oklch(97.1% 0.014 343.198);
  --color-pink-100: oklch(94.8% 0.028 342.258);
  --color-pink-200: oklch(89.9% 0.061 343.231);
  --color-pink-300: oklch(82.3% 0.12 346.018);
  --color-pink-400: oklch(71.8% 0.202 349.761);
  --color-pink-500: oklch(65.6% 0.241 354.308);
  --color-pink-600: oklch(59.2% 0.249 0.584);
  --color-pink-700: oklch(52.5% 0.223 3.958);
  --color-pink-800: oklch(45.9% 0.187 3.815);
  --color-pink-900: oklch(40.8% 0.153 2.432);
  --color-pink-950: oklch(28.4% 0.109 3.907);

  --color-rose-50: oklch(96.9% 0.015 12.422);
  --color-rose-100: oklch(94.1% 0.03 12.58);
  --color-rose-200: oklch(89.2% 0.058 10.001);
  --color-rose-300: oklch(81% 0.117 11.638);
  --color-rose-400: oklch(71.2% 0.194 13.428);
  --color-rose-500: oklch(64.5% 0.246 16.439);
  --color-rose-600: oklch(58.6% 0.253 17.585);
  --color-rose-700: oklch(51.4% 0.222 16.935);
  --color-rose-800: oklch(45.5% 0.188 13.697);
  --color-rose-900: oklch(41% 0.159 10.272);
  --color-rose-950: oklch(27.1% 0.105 12.094);

  --color-slate-50: oklch(98.4% 0.003 247.858);
  --color-slate-100: oklch(96.8% 0.007 247.896);
  --color-slate-200: oklch(92.9% 0.013 255.508);
  --color-slate-300: oklch(86.9% 0.022 252.894);
  --color-slate-400: oklch(70.4% 0.04 256.788);
  --color-slate-500: oklch(55.4% 0.046 257.417);
  --color-slate-600: oklch(44.6% 0.043 257.281);
  --color-slate-700: oklch(37.2% 0.044 257.287);
  --color-slate-800: oklch(27.9% 0.041 260.031);
  --color-slate-900: oklch(20.8% 0.042 265.755);
  --color-slate-950: oklch(12.9% 0.042 264.695);

  --color-gray-50: oklch(98.5% 0.002 247.839);
  --color-gray-100: oklch(96.7% 0.003 264.542);
  --color-gray-200: oklch(92.8% 0.006 264.531);
  --color-gray-300: oklch(87.2% 0.01 258.338);
  --color-gray-400: oklch(70.7% 0.022 261.325);
  --color-gray-500: oklch(55.1% 0.027 264.364);
  --color-gray-600: oklch(44.6% 0.03 256.802);
  --color-gray-700: oklch(37.3% 0.034 259.733);
  --color-gray-800: oklch(27.8% 0.033 256.848);
  --color-gray-900: oklch(21% 0.034 264.665);
  --color-gray-950: oklch(13% 0.028 261.692);

  --color-zinc-50: oklch(98.5% 0 0);
  --color-zinc-100: oklch(96.7% 0.001 286.375);
  --color-zinc-200: oklch(92% 0.004 286.32);
  --color-zinc-300: oklch(87.1% 0.006 286.286);
  --color-zinc-400: oklch(70.5% 0.015 286.067);
  --color-zinc-500: oklch(55.2% 0.016 285.938);
  --color-zinc-600: oklch(44.2% 0.017 285.786);
  --color-zinc-700: oklch(37% 0.013 285.805);
  --color-zinc-800: oklch(27.4% 0.006 286.033);
  --color-zinc-900: oklch(21% 0.006 285.885);
  --color-zinc-950: oklch(14.1% 0.005 285.823);

  --color-neutral-50: oklch(98.5% 0 0);
  --color-neutral-100: oklch(97% 0 0);
  --color-neutral-200: oklch(92.2% 0 0);
  --color-neutral-300: oklch(87% 0 0);
  --color-neutral-400: oklch(70.8% 0 0);
  --color-neutral-500: oklch(55.6% 0 0);
  --color-neutral-600: oklch(43.9% 0 0);
  --color-neutral-700: oklch(37.1% 0 0);
  --color-neutral-800: oklch(26.9% 0 0);
  --color-neutral-900: oklch(20.5% 0 0);
  --color-neutral-950: oklch(14.5% 0 0);

  --color-stone-50: oklch(98.5% 0.001 106.423);
  --color-stone-100: oklch(97% 0.001 106.424);
  --color-stone-200: oklch(92.3% 0.003 48.717);
  --color-stone-300: oklch(86.9% 0.005 56.366);
  --color-stone-400: oklch(70.9% 0.01 56.259);
  --color-stone-500: oklch(55.3% 0.013 58.071);
  --color-stone-600: oklch(44.4% 0.011 73.639);
  --color-stone-700: oklch(37.4% 0.01 67.558);
  --color-stone-800: oklch(26.8% 0.007 34.298);
  --color-stone-900: oklch(21.6% 0.006 56.043);
  --color-stone-950: oklch(14.7% 0.004 49.25);

  --color-mauve-50: oklch(98.5% 0 0);
  --color-mauve-100: oklch(96% 0.003 325.6);
  --color-mauve-200: oklch(92.2% 0.005 325.62);
  --color-mauve-300: oklch(86.5% 0.012 325.68);
  --color-mauve-400: oklch(71.1% 0.019 323.02);
  --color-mauve-500: oklch(54.2% 0.034 322.5);
  --color-mauve-600: oklch(43.5% 0.029 321.78);
  --color-mauve-700: oklch(36.4% 0.029 323.89);
  --color-mauve-800: oklch(26.3% 0.024 320.12);
  --color-mauve-900: oklch(21.2% 0.019 322.12);
  --color-mauve-950: oklch(14.5% 0.008 326);

  --color-olive-50: oklch(98.8% 0.003 106.5);
  --color-olive-100: oklch(96.6% 0.005 106.5);
  --color-olive-200: oklch(93% 0.007 106.5);
  --color-olive-300: oklch(88% 0.011 106.6);
  --color-olive-400: oklch(73.7% 0.021 106.9);
  --color-olive-500: oklch(58% 0.031 107.3);
  --color-olive-600: oklch(46.6% 0.025 107.3);
  --color-olive-700: oklch(39.4% 0.023 107.4);
  --color-olive-800: oklch(28.6% 0.016 107.4);
  --color-olive-900: oklch(22.8% 0.013 107.4);
  --color-olive-950: oklch(15.3% 0.006 107.1);

  --color-mist-50: oklch(98.7% 0.002 197.1);
  --color-mist-100: oklch(96.3% 0.002 197.1);
  --color-mist-200: oklch(92.5% 0.005 214.3);
  --color-mist-300: oklch(87.2% 0.007 219.6);
  --color-mist-400: oklch(72.3% 0.014 214.4);
  --color-mist-500: oklch(56% 0.021 213.5);
  --color-mist-600: oklch(45% 0.017 213.2);
  --color-mist-700: oklch(37.8% 0.015 216);
  --color-mist-800: oklch(27.5% 0.011 216.9);
  --color-mist-900: oklch(21.8% 0.008 223.9);
  --color-mist-950: oklch(14.8% 0.004 228.8);

  --color-taupe-50: oklch(98.6% 0.002 67.8);
  --color-taupe-100: oklch(96% 0.002 17.2);
  --color-taupe-200: oklch(92.2% 0.005 34.3);
  --color-taupe-300: oklch(86.8% 0.007 39.5);
  --color-taupe-400: oklch(71.4% 0.014 41.2);
  --color-taupe-500: oklch(54.7% 0.021 43.1);
  --color-taupe-600: oklch(43.8% 0.017 39.3);
  --color-taupe-700: oklch(36.7% 0.016 35.7);
  --color-taupe-800: oklch(26.8% 0.011 36.5);
  --color-taupe-900: oklch(21.4% 0.009 43.1);
  --color-taupe-950: oklch(14.7% 0.004 49.3);

  --color-black: #000;
  --color-white: #fff;
}
```

This can be useful if you want to reuse any of these scales but under a different name, like redefining `--color-gray-*` to use the `--color-slate-*` scale.


---

# columns

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/columns*

| Clase | Propiedades CSS |
| :--- | :--- |
| `columns-<number>` | `columns: <number>;` |
| `columns-3xs` | `columns: var(--container-3xs); /* 16rem (256px) */` |
| `columns-2xs` | `columns: var(--container-2xs); /* 18rem (288px) */` |
| `columns-xs` | `columns: var(--container-xs); /* 20rem (320px) */` |
| `columns-sm` | `columns: var(--container-sm); /* 24rem (384px) */` |
| `columns-md` | `columns: var(--container-md); /* 28rem (448px) */` |
| `columns-lg` | `columns: var(--container-lg); /* 32rem (512px) */` |
| `columns-xl` | `columns: var(--container-xl); /* 36rem (576px) */` |
| `columns-2xl` | `columns: var(--container-2xl); /* 42rem (672px) */` |
| `columns-3xl` | `columns: var(--container-3xl); /* 48rem (768px) */` |
| `columns-4xl` | `columns: var(--container-4xl); /* 56rem (896px) */` |
| `columns-5xl` | `columns: var(--container-5xl); /* 64rem (1024px) */` |
| `columns-6xl` | `columns: var(--container-6xl); /* 72rem (1152px) */` |
| `columns-7xl` | `columns: var(--container-7xl); /* 80rem (1280px) */` |
| `columns-auto` | `columns: auto;` |
| `columns-(<custom-property>)` | `columns: var(<custom-property>);` |
| `columns-[<value>]` | `columns: <value>;` |

## Examples

### Setting by number

Use `columns-<number>` utilities like `columns-3` to set the number of columns that should be created for the content within an element:

  {
    <div className="@container relative">
      <div className="absolute inset-0 -top-8 -bottom-8 grid grid-cols-3 gap-[5cqw]">
        
        
        
      </div>
      <div className="relative mb-[-5cqw] columns-3 gap-[5cqw] *:mb-[5cqw]">
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2952&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2902&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1491904768633-2b7e3e7fede5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3131&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1463288889890-a56b2853c40f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3132&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1611605645802-c21be743c321?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1498603993951-8a027a8a8f84?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2936&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1526400473556-aac12354f3db?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1617369120004-4fc70312c5e6?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1587&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1518892096458-a169843d7f7f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:columns-3] -->
<div class="columns-3 ...">
  <img class="aspect-3/2 ..." src="/img/mountains-1.jpg" />
  <img class="aspect-square ..." src="/img/mountains-2.jpg" />
  <img class="aspect-square ..." src="/img/mountains-3.jpg" />
  <!-- ... -->
</div>
```

The column width will automatically adjust to accommodate the specified number of columns.

### Setting by width

Use utilities like `columns-xs` and `columns-sm` to set the ideal column width for the content within an element:

  {
    <div className="@container relative">
      <div className="absolute inset-0 -top-8 -bottom-8 grid grid-cols-1 gap-8 @[34rem]:grid-cols-2">
        
        
        
      </div>
      <div className="relative -mb-4 columns-3xs gap-4 *:mb-4 @sm:-mb-8 @sm:gap-8 @sm:*:mb-8">
        <img
          className="aspect-3/2 w-full rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2952&q=80"
        />
        <img
          className="aspect-square w-full rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2902&q=80"
        />
        <img
          className="aspect-square w-full rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1491904768633-2b7e3e7fede5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3131&q=80"
        />
        <img
          className="aspect-3/2 w-full rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1463288889890-a56b2853c40f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3132&q=80"
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:columns-3xs] -->
<div class="columns-3xs ...">
  <img class="aspect-3/2 ..." src="/img/mountains-1.jpg" />
  <img class="aspect-square ..." src="/img/mountains-2.jpg" />
  <img class="aspect-square ..." src="/img/mountains-3.jpg" />
  <!-- ... -->
</div>
```

When setting the column width, the number of columns automatically adjusts to ensure they don't get too narrow.

### Setting the column gap

Use the `gap-<width>` utilities to specify the width between columns:

  {
    <div className="@container relative">
      <div className="absolute inset-0 -top-8 -bottom-8 grid grid-cols-[1fr_2rem_1fr_2rem_1fr]">
        <div />
        
        <div />
        
        <div />
      </div>
      <div className="relative -mb-8 columns-3 gap-8 *:mb-8">
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2952&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2902&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1491904768633-2b7e3e7fede5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3131&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1463288889890-a56b2853c40f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3132&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1611605645802-c21be743c321?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1498603993951-8a027a8a8f84?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2936&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1526400473556-aac12354f3db?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1617369120004-4fc70312c5e6?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1587&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1518892096458-a169843d7f7f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:gap-8] -->
<div class="columns-3 gap-8 ...">
  <img class="aspect-3/2 ..." src="/img/mountains-1.jpg" />
  <img class="aspect-square ..." src="/img/mountains-2.jpg" />
  <img class="aspect-square ..." src="/img/mountains-3.jpg" />
  <!-- ... -->
</div>
```

Learn more about the gap utilities in the [gap documentation](/docs/gap).

### Using a custom value

### Responsive design

  {
    <div className="@container relative">
      <div className="absolute inset-0 -top-8 -bottom-8 grid grid-cols-2 gap-4 @sm:grid-cols-3 @sm:gap-8">
        
        
        
      </div>
      <div className="relative columns-2 gap-4 *:mb-4 @sm:-mb-8 @sm:columns-3 @sm:gap-8 @sm:*:mb-8">
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1454496522488-7a8e488e8606?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2952&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1434394354979-a235cd36269d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2902&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1491904768633-2b7e3e7fede5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3131&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1463288889890-a56b2853c40f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=3132&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1611605645802-c21be743c321?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1498603993951-8a027a8a8f84?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2936&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1526400473556-aac12354f3db?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
        <img
          className="aspect-square rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1617369120004-4fc70312c5e6?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1587&q=80"
        />
        <img
          className="aspect-3/2 rounded-lg bg-black/5 object-cover outline -outline-offset-1 outline-black/10 dark:outline-0"
          src="https://images.unsplash.com/photo-1518892096458-a169843d7f7f?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:sm:gap-8,sm:columns-3] -->
<div class="columns-2 gap-4 sm:columns-3 sm:gap-8 ...">
  <img class="aspect-3/2 ..." src="/img/mountains-1.jpg" />
  <img class="aspect-square ..." src="/img/mountains-2.jpg" />
  <img class="aspect-square ..." src="/img/mountains-3.jpg" />
  <!-- ... -->
</div>
```

## Customizing your theme


---

# Compatibility

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/compatibility*

## Browser support

Tailwind CSS v4.0 is designed for and tested on modern browsers, and the core functionality of the framework specifically depends on these browser versions:

- **Chrome 111** _(released March 2023)_
- **Safari 16.4** _(released March 2023)_
- **Firefox 128** _(released July 2024)_

Tailwind also includes support for many bleeding-edge platform features like `field-sizing: content`, `@starting-style`, and `text-wrap: balance` that have limited browser support. It's up to you if you want to use these modern features in your projects — if the browsers you're targeting don't support them, simply don't use those utilities and variants.

If you're unsure about the support for a modern platform feature, the [Can I use](https://caniuse.com/mdn-css_at-rules_starting-style) database is a great resource.

## Sass, Less, and Stylus

Tailwind CSS v4.0 is a full-featured CSS build tool designed for a specific workflow, and is not designed to be used with CSS preprocessors like Sass, Less, or Stylus.

**Think of Tailwind CSS itself as your preprocessor** — you shouldn't use Tailwind with Sass for the same reason you wouldn't use Sass with Stylus.

Since Tailwind is designed for modern browsers, you actually don't need a preprocessor for things like nesting or variables, and Tailwind itself will do things like bundle your imports and add vendor prefixes.

### Build-time imports

Tailwind will automatically bundle other CSS files you include with `@import`, without the need for a separate preprocessing tool.

```css
/* [!code filename:app.css] */
@import "tailwindcss";
@import "./typography.css";
```

In this example, the `typography.css` file will be bundled into your compiled CSS for you by Tailwind, without any other tooling like Sass or `postcss-import`.

### Variables

All modern browsers support [native CSS variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) without the need for any sort of preprocessor:

```css
/* [!code filename:typography.css] */
/* [!code word:var(--text-base)] */
.typography {
  font-size: var(--text-base);
  color: var(--color-gray-700);
}
```

Tailwind relies on CSS variables heavily internally, so if you can use Tailwind in your project, you can use native CSS variables.

### Nesting

Under the hood Tailwind uses [Lightning CSS](https://lightningcss.dev/) to process nested CSS like this:

```css
/* [!code filename:typography.css] */
.typography {
  p {
    font-size: var(--text-base);
  }
  img {
    border-radius: var(--radius-lg);
  }
}
```

Tailwind flattens that nested CSS for you so it can be understood by all modern browsers:

```css
[!code filename:output.css]
/* prettier-ignore */
.typography p {
  font-size: var(--text-base);
}

.typography img {
  border-radius: var(--radius-lg);
}
```

Native CSS nesting support is also very good these days, so you don't really need a preprocessor for nesting even if you aren't using Tailwind.

### Loops

In Tailwind, the sorts of classes you may have used loops for in the past (like `col-span-1`, `col-span-2`, etc.) are generated for you on-demand by Tailwind whenever you use them instead of having to be predefined.

On top of that, when you're building things with Tailwind CSS, you do the vast majority of your styling in your HTML, not in CSS files. Since you're not writing tons of CSS in the first place, you just don't need features like loops that are designed for programmatically generating lots of custom CSS rules.

### Color and math functions

When using preprocessors like Sass or Less, you may have used functions like `darken` or `lighten` to adjust colors.

When using Tailwind, the recommended workflow is to use a predefined color palette that includes light and dark shades of each color, like the expertly designed [default color palette](/docs/colors) included with the framework.

```html
<!-- [!code word:hover\:bg-indigo-600] -->
<button class="bg-indigo-500 hover:bg-indigo-600 ...">
  <!-- ... -->
</button>
```

You can also use modern CSS features like [color-mix()](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix) to adjust colors at run-time directly in the browser. This even lets you adjust colors defined using CSS variables or the `currentcolor` keyword, which isn't possible with preprocessors.

Similarly, browsers support math functions like `min()`, `max()`, and `round()` natively now, so there's no need to rely on a preprocessor for these features anymore either.

## CSS modules

Tailwind is compatible with CSS modules and can co-exist with them if you are introducing Tailwind into a project that already uses them, but **we don't recommend using CSS modules and Tailwind together** if you can avoid it.

### Scoping concerns

CSS modules are designed to solve scoping problems that just don't exist when composing utility classes in your HTML instead of writing custom CSS.

Styles are naturally scoped with Tailwind because each utility class always does the same thing, no matter where it's used — there's no risk that adding a utility class to one part of your UI creates some unexpected side effect somewhere else.

### Performance

When using CSS modules, build tools like Vite, Parcel, and Turbopack process each CSS module separately. That means if you have 50 CSS modules in a project, **Tailwind needs to run 50 separate times**, which leads to much slower build times and a worse developer experience.

### Explicit context sharing

Since CSS modules are each processed separately, they have no `@theme` unless you import one.

This means features like `@apply` won't work the way you expect unless you explicitly import your global styles as reference:

{<>Import your global styles as reference to make sure your theme variables are defined</>}

```css
/* [!code filename:Button.module.css] */
/* [!code highlight:2] */
@reference "../app.css";

button {
  @apply bg-blue-500;
}
```

Alternatively, you can also just use CSS variables instead of `@apply` which has the added benefit of letting Tailwind skip processing those files and will improve your build performance:

```css
/* [!code filename:Button.module.css] */
button {
  /* [!code highlight:2] */
  background: var(--color-blue-500);
}
```

## Vue, Svelte, and Astro

Vue, Svelte, and Astro support `<style>` blocks in component files that behave very much like [CSS modules](#css-modules), which means they are each processed by your build tooling totally separately and have all of the same drawbacks.

If you're using Tailwind with these tools, **we recommend avoiding `<style>` blocks in your components** and just styling things with utility classes directly in your markup, the way Tailwind is meant to be used.

If you do use `<style>` blocks, make sure to import your global styles as reference if you want features like `@apply` to work as expected:

```html
<!-- [!code filename:Button.vue] -->
<template>
  <button><slot /></button>
</template>

<style scoped>
  /* [!code highlight:2] */
  @reference "../app.css";

  button {
    @apply bg-blue-500;
  }
</style>
```

Or just use your globally defined CSS variables instead of features like `@apply`, which don't require Tailwind to process your component CSS at all:

```html
<!-- [!code filename:Button.vue] -->
<template>
  <button><slot /></button>
</template>

<style scoped>
  button {
    /* [!code highlight:2] */
    background-color: var(--color-blue-500);
  }
</style>
```


---

# content

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/content*

| Clase | Propiedades CSS |
| :--- | :--- |
| `content-[<value>]` | `content: <value>;` |
| `content-(<custom-property>)` | `content: var(<custom-property>);` |
| `content-none` | `content: none;` |

## Examples

### Basic example

Use the `content-[<value>]` syntax, along with the `before` and `after` variants, to set the contents of the `::before` and `::after` pseudo-elements:

  {
    <div className="mx-auto w-full max-w-md text-gray-500 dark:text-gray-400">
      Higher resolution means more than just a better-quality image. With a Retina 6K display,{" "}
      <a
        href="https://www.apple.com/pro-display-xdr/"
        className="font-medium text-blue-600 after:text-sm after:font-bold after:content-['_↗'] dark:text-sky-400"
        target="_blank"
      >
        Pro Display XDR
      </a>{" "}
      gives you nearly 40 percent more screen real estate than a 5K display.
    </div>
  }

```html
<!-- [!code classes:after:content-['_↗']] -->
<!-- prettier-ignore -->
<p>Higher resolution means more than just a better-quality image. With a
Retina 6K display, <a class="text-blue-600 after:content-['_↗']" href="...">
Pro Display XDR</a> gives you nearly 40 percent more screen real estate than
a 5K display.</p>
```

### Referencing an attribute value

Use the `content-[attr(<name>)]` syntax to reference a value stored in an attribute using the `attr()` CSS function:

  {
    <p
      before="Hello World"
      className="text-center font-semibold text-gray-900 before:content-[attr(before)] dark:text-gray-200"
    />
  }

```html
<!-- [!code classes:before:content-[attr(before)]] -->
<p before="Hello World" class="before:content-[attr(before)] ...">
  <!-- ... -->
</p>
```

### Using spaces and underscores

Since whitespace denotes the end of a class in HTML, replace any spaces in an arbitrary value with an underscore:

  {<p className="text-center font-semibold text-gray-900 before:content-['Hello_World'] dark:text-gray-200" />}

```html
<!-- [!code classes:before:content-['Hello_World']] -->
<p class="before:content-['Hello_World'] ..."></p>
```

If you need to include an actual underscore, you can do this by escaping it with a backslash:

  {<p className="text-center font-semibold text-gray-900 before:content-['Hello\_World'] dark:text-gray-200" />}

```html
<!-- [!code classes:before:content-['Hello\_World']] -->
<p class="before:content-['Hello\_World']"></p>
```

### Using a CSS variable

Use the <code>content-{'(<custom-property>)'}</code> syntax to control the contents of the `::before` and `::after` pseudo-elements using a CSS variable:

```html
<!-- [!code classes:content-(--my-content)] -->
<p class="content-(--my-content)"></p>
```

This is just a shorthand for <code>content-{'[var(<custom-property>)]'}</code> that adds the `var()` function for you automatically.

### Responsive design

```html
<!-- [!code classes:md:before:content-['Desktop']] -->
<p class="before:content-['Mobile'] md:before:content-['Desktop'] ..."></p>
```


---

# cursor

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/cursor*

| Clase | Propiedades CSS |
| :--- | :--- |
| `cursor-auto` | `cursor: auto;` |
| `cursor-default` | `cursor: default;` |
| `cursor-pointer` | `cursor: pointer;` |
| `cursor-wait` | `cursor: wait;` |
| `cursor-text` | `cursor: text;` |
| `cursor-move` | `cursor: move;` |
| `cursor-help` | `cursor: help;` |
| `cursor-not-allowed` | `cursor: not-allowed;` |
| `cursor-none` | `cursor: none;` |
| `cursor-context-menu` | `cursor: context-menu;` |
| `cursor-progress` | `cursor: progress;` |
| `cursor-cell` | `cursor: cell;` |
| `cursor-crosshair` | `cursor: crosshair;` |
| `cursor-vertical-text` | `cursor: vertical-text;` |
| `cursor-alias` | `cursor: alias;` |
| `cursor-copy` | `cursor: copy;` |
| `cursor-no-drop` | `cursor: no-drop;` |
| `cursor-grab` | `cursor: grab;` |
| `cursor-grabbing` | `cursor: grabbing;` |
| `cursor-all-scroll` | `cursor: all-scroll;` |
| `cursor-col-resize` | `cursor: col-resize;` |
| `cursor-row-resize` | `cursor: row-resize;` |
| `cursor-n-resize` | `cursor: n-resize;` |
| `cursor-e-resize` | `cursor: e-resize;` |
| `cursor-s-resize` | `cursor: s-resize;` |
| `cursor-w-resize` | `cursor: w-resize;` |
| `cursor-ne-resize` | `cursor: ne-resize;` |
| `cursor-nw-resize` | `cursor: nw-resize;` |
| `cursor-se-resize` | `cursor: se-resize;` |
| `cursor-sw-resize` | `cursor: sw-resize;` |
| `cursor-ew-resize` | `cursor: ew-resize;` |
| `cursor-ns-resize` | `cursor: ns-resize;` |
| `cursor-nesw-resize` | `cursor: nesw-resize;` |
| `cursor-nwse-resize` | `cursor: nwse-resize;` |
| `cursor-zoom-in` | `cursor: zoom-in;` |
| `cursor-zoom-out` | `cursor: zoom-out;` |
| `cursor-(<custom-property>)` | `cursor: var(<custom-property>);` |
| `cursor-[<value>]` | `cursor: <value>;` |

## Examples

### Basic example

Use utilities like `cursor-pointer` and `cursor-grab` to control which cursor is displayed when hovering over an element:

  {
    <div className="flex flex-col items-center justify-around gap-4 sm:flex-row sm:gap-0">
      <button
        type="button"
        className="w-full cursor-pointer rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white hover:bg-indigo-700 focus:outline-none disabled:bg-indigo-300 sm:w-auto dark:disabled:bg-indigo-800 dark:disabled:text-indigo-400"
        tabIndex="-1"
      >
        Submit
      </button>
      <button
        type="button"
        className="w-full cursor-progress rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white hover:bg-indigo-700 focus:outline-none disabled:bg-indigo-300 sm:w-auto dark:disabled:bg-indigo-800 dark:disabled:text-indigo-400"
        tabIndex="-1"
      >
        Saving...
      </button>
      <button
        type="button"
        disabled
        className="w-full cursor-not-allowed rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white hover:bg-indigo-700 focus:outline-none disabled:bg-indigo-300 sm:w-auto dark:disabled:bg-indigo-800 dark:disabled:text-indigo-400"
        tabIndex="-1"
      >
        Confirm
      </button>
    </div>
  }

```html
<!-- [!code classes:cursor-pointer,cursor-progress,cursor-not-allowed] -->
<button class="cursor-pointer ...">Submit</button>
<button class="cursor-progress ...">Saving...</button>
<button class="cursor-not-allowed ..." disabled>Confirm</button>
```

### Using a custom value

### Responsive design


---

# Dark mode

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/dark-mode*

## Overview

Now that dark mode is a first-class feature of many operating systems, it's becoming more and more common to design a dark version of your website to go along with the default design.

To make this as easy as possible, Tailwind includes a `dark` variant that lets you style your site differently when dark mode is enabled:

  {
    <div className="grid grid-cols-1 sm:grid-cols-2">
      <div className="p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-500">Light mode</p>
        <div className="rounded-lg bg-white px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                xmlns="http://www.w3.org/2000/svg"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-gray-900">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-500"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
      <div className="bg-gray-900 p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-400">Dark mode</p>
        <div className="rounded-lg bg-gray-800 px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                xmlns="http://www.w3.org/2000/svg"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-white">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-400"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code word:dark\:bg-gray-800] -->
<!-- prettier-ignore -->
<div class="bg-white dark:bg-gray-800 rounded-lg px-6 py-8 ring shadow-xl ring-gray-900/5">
  <div>
    <span class="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
      <svg class="h-6 w-6 stroke-white" ...>
        <!-- ... -->
      </svg>
    </span>
  </div>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-white] -->
  <h3 class="text-gray-900 dark:text-white mt-5 text-base font-medium tracking-tight ">Writes upside-down</h3>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-gray-400] -->
  <p class="text-gray-500 dark:text-gray-400 mt-2 text-sm ">
    The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer space.
  </p>
</div>
```

By default this uses the `prefers-color-scheme` CSS media feature, but you can also build sites that support [toggling dark mode manually](#toggling-dark-mode-manually) by overriding the dark variant.

## Toggling dark mode manually

If you want your dark theme to be driven by a CSS selector instead of the `prefers-color-scheme` media query, override the `dark` variant to use your custom selector:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

/* [!code highlight:2] */
@custom-variant dark (&:where(.dark, .dark *));
```

Now instead of `dark:*` utilities being applied based on `prefers-color-scheme`, they will be applied whenever the `dark` class is present earlier in the HTML tree:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:dark\:bg-black] -->
<!-- [!code word:dark] -->
<html class="dark">
  <body>
    <div class="bg-white dark:bg-black">
      <!-- ... -->
    </div>
  </body>
</html>
```

How you add the `dark` class to the `html` element is up to you, but a common approach is to use a bit of JavaScript that updates the `class` attribute and syncs that preference to somewhere like `localStorage`.

### Using a data attribute

To use a data attribute instead of a class to activate dark mode, just override the `dark` variant with an attribute selector instead:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

/* [!code highlight:2] */
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
```

Now dark mode utilities will be applied whenever the `data-theme` attribute is set to `dark` somewhere up the tree:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:dark\:bg-black] -->
<!-- [!code word:data-theme="dark"] -->
<html data-theme="dark">
  <body>
    <div class="bg-white dark:bg-black">
      <!-- ... -->
    </div>
  </body>
</html>
```

### With system theme support

To build three-way theme toggles that support light mode, dark mode, and your system theme, use a custom dark mode selector and the [`window.matchMedia()` API](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia) to detect the system theme and update the `html` element when needed.

Here's a simple example of how you can support light mode, dark mode, as well as respecting the operating system preference:

```js
// [!code filename:spaghetti.js]
// On page load or when changing themes, best to add inline in `head` to avoid FOUC
document.documentElement.classList.toggle(
  "dark",
  localStorage.theme === "dark" ||
    (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches),
);

// Whenever the user explicitly chooses light mode
localStorage.theme = "light";

// Whenever the user explicitly chooses dark mode
localStorage.theme = "dark";

// Whenever the user explicitly chooses to respect the OS preference
localStorage.removeItem("theme");
```

Again you can manage this however you like, even storing the preference server-side in a database and rendering the class on the server — it's totally up to you.


---

# Detecting classes in source files

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/detecting-classes-in-source-files*

## Overview

Tailwind works by scanning your project for utility classes, then generating all of the necessary CSS based on the classes you've actually used.

This makes sure your CSS is as small as possible, and is also what makes features like [arbitrary values](/docs/adding-custom-styles#using-arbitrary-values) possible.

### How classes are detected

Tailwind treats all of your source files as plain text, and doesn't attempt to actually parse your files as code in any way.

Instead it just looks for any tokens in your file that could be classes based on which characters Tailwind is expecting in class names:

```jsx
// [!code filename:JSX]
// [!code word:bg-blue-500]
// [!code word:rounded-full]
// [!code word:text-white]
// [!code word:text-black]
// [!code word:font-medium]
// [!code word:text-sm\/6]
// [!code word:font-sans]
// [!code word:bg-black]
// [!code word:bg-white]
// [!code word:className]
// [!code word:function]
// [!code word:children]
// [!code word:button]
// [!code word:shadow]
// [!code word:export]
// [!code word:colors]
// [!code word:color]
// [!code word:black]
// [!code word:white]
// [!code word:const]
// [!code word:blue]
// [!code word:return]
// [!code word:py-1.5]
// [!code word:px-2]
  const colors = {
    black: "bg-black text-white",
    blue: "bg-blue-500 text-white",
    white: "bg-white text-black",
  };

  return (
    <button className={`${colors[color]} rounded-full px-2 py-1.5 font-sans text-sm/6 font-medium shadow`}>
      {children}
    </button>
  );
}
```

Then it tries to generate the CSS for all of these tokens, throwing away any tokens that don't map to a utility class the framework knows about.

### Dynamic class names

Since Tailwind scans your source files as plain text, it has no way of understanding string concatenation or interpolation in the programming language you're using.

{<>Don't construct class names dynamically</>}

```html
<!-- [!code filename:HTML] -->
<div class="text-{{ error ? 'red' : 'green' }}-600"></div>
```

In the example above, the strings `text-red-600` and `text-green-600` do not exist, so Tailwind will not generate those classes.

Instead, make sure any class names you’re using exist in full:

{<>Always use complete class names</>}

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:text-red-600] -->
<!-- [!code word:text-green-600] -->
<div class="{{ error ? 'text-red-600' : 'text-green-600' }}"></div>
```

If you're using a component library like React or Vue, this means you shouldn't use props to dynamically construct classes:

Don't use props to build class names dynamically

```jsx
// [!code filename:JSX]
function Button({ color, children }) {
  return <button className={`bg-${color}-600 hover:bg-${color}-500 ...`}>{children}</button>;
}
```

Instead, map props to complete class names that are statically detectable at build-time:

Always map props to static class names

```jsx
// [!code filename:JSX]
function Button({ color, children }) {
  const colorVariants = {
    blue: "bg-blue-600 hover:bg-blue-500",
    red: "bg-red-600 hover:bg-red-500",
  };

  return <button className={`${colorVariants[color]} ...`}>{children}</button>;
}
```

This has the added benefit of letting you map different prop values to different color shades for example:

```jsx
// [!code filename:JSX]
function Button({ color, children }) {
  const colorVariants = {
    blue: "bg-blue-600 hover:bg-blue-500 text-white",
    red: "bg-red-500 hover:bg-red-400 text-white",
    yellow: "bg-yellow-300 hover:bg-yellow-400 text-black",
  };

  return <button className={`${colorVariants[color]} ...`}>{children}</button>;
}
```

As long as you always use complete class names in your code, Tailwind will generate all of your CSS perfectly every time.

### Which files are scanned

Tailwind will scan every file in your project for class names, except in the following cases:

- Files that are in your `.gitignore` file
- Files in the `node_modules` directory
- Binary files like images, videos, or zip files
- CSS files
- Common package manager lock files

If you need to scan any files that Tailwind is ignoring by default, you can [explicitly register](#explicitly-registering-sources) those sources.

## Explicitly registering sources

Use `@source` to explicitly register source paths relative to the stylesheet:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source "../node_modules/@acmecorp/ui-lib";
```

This is especially useful when you need to scan an external library that is built with Tailwind, since dependencies are usually listed in your `.gitignore` file and ignored by Tailwind by default.

### Setting your base path

Tailwind uses the current working directory as its starting point when scanning for class names by default.

To set the base path for source detection explicitly, use the `source()` function when importing Tailwind in your CSS:

```css
/* [!code filename:CSS] */
/* [!code word:source("../src")] */
@import "tailwindcss" source("../src");
```

This can be useful when working with monorepos where your build commands run from the root of the monorepo instead of the root of each project.

### Ignoring specific paths

Use `@source not` to ignore specific paths, relative to the stylesheet, when scanning for class names:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source not "../src/components/legacy";
```

This is useful when you have large directories in your project that you know don't use Tailwind classes, like legacy components or third-party libraries.

### Disabling automatic detection

Use `source(none)` to completely disable automatic source detection if you want to register all of your sources explicitly:

```css
/* [!code filename:CSS] */
/* [!code word:source("../src")] */
@import "tailwindcss" source(none);

@source "../admin";
@source "../shared";
```

This can be useful in projects that have multiple Tailwind stylesheets where you want to make sure each one only includes the classes each stylesheet needs.

## Safelisting specific utilities

If you need to make sure Tailwind generates certain class names that don’t exist in your content files, use `@source inline()` to force them to be generated:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source inline("underline");
```

```css
/* [!code filename:Generated CSS] */
.underline {
  text-decoration-line: underline;
}
```

### Safelisting variants

You can also use `@source inline()` to generate classes with variants. For example, to generate the `underline` class with hover and focus variants, add `{hover:,focus:,}` to the source input:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source inline("{hover:,focus:,}underline");
```

```css
/* [!code filename:Generated CSS] */
.underline {
  text-decoration-line: underline;
}
@media (hover: hover) {
  .hover\:underline:hover {
    text-decoration-line: underline;
  }
}
@media (focus: focus) {
  .focus\:underline:focus {
    text-decoration-line: underline;
  }
}
```

### Safelisting with ranges

The source input is [brace expanded](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), so you can generate multiple classes at once. For example, to generate all the red background colors with hover variants, use a range:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source inline("{hover:,}bg-red-{50,{100..900..100},950}");
```

```css
/* [!code filename:Generated CSS] */
.bg-red-50 {
  background-color: var(--color-red-50);
}
.bg-red-100 {
  background-color: var(--color-red-100);
}
.bg-red-200 {
  background-color: var(--color-red-200);
}

/* ... */

.bg-red-800 {
  background-color: var(--color-red-800);
}
.bg-red-900 {
  background-color: var(--color-red-900);
}
.bg-red-950 {
  background-color: var(--color-red-950);
}
@media (hover: hover) {
  .hover\:bg-red-50:hover {
    background-color: var(--color-red-50);
  }

  /* ... */

  .hover\:bg-red-950:hover {
    background-color: var(--color-red-950);
  }
}
```

This generates red background colors from 100 to 900 in increments of 100, along with the first and last shades of 50 and 950. It also adds the `hover:` variant for each of those classes.

### Explicitly excluding classes

Use `@source not inline()` to prevent specific classes from being generated, even if they are detected in your source files:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
/* [!code highlight:2] */
@source not inline("{hover:,focus:,}bg-red-{50,{100..900..100},950}");
```

This will explicitly exclude the red background utilities, along with their hover and focus variants, from being generated.


---

# display

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/display*

| Clase | Propiedades CSS |
| :--- | :--- |
| `inline` | `display: inline;` |
| `block` | `display: block;` |
| `inline-block` | `display: inline-block;` |
| `flow-root` | `display: flow-root;` |
| `flex` | `display: flex;` |
| `inline-flex` | `display: inline-flex;` |
| `grid` | `display: grid;` |
| `inline-grid` | `display: inline-grid;` |
| `contents` | `display: contents;` |
| `table` | `display: table;` |
| `inline-table` | `display: inline-table;` |
| `table-caption` | `display: table-caption;` |
| `table-cell` | `display: table-cell;` |
| `table-column` | `display: table-column;` |
| `table-column-group` | `display: table-column-group;` |
| `table-footer-group` | `display: table-footer-group;` |
| `table-header-group` | `display: table-header-group;` |
| `table-row-group` | `display: table-row-group;` |
| `table-row` | `display: table-row;` |
| `list-item` | `display: list-item;` |
| `hidden` | `display: none;` |
| `sr-only` | `position: absolute;         width: 1px;         height: 1px;         padding: 0;         margin: -1px;         overflow: hidden;         clip-path: inset(50%);         white-space: nowrap;         border-width: 0;` |
| `not-sr-only` | `position: static;         width: auto;         height: auto;         padding: 0;         margin: 0;         overflow: visible;         clip-path: none;         white-space: normal;` |

## Examples

### Block and Inline

Use the `inline`, `inline-block`, and `block` utilities to control the flow of text and elements:

  {
    <div className="mx-auto max-w-xs px-4 text-sm leading-6 text-gray-500 sm:text-base sm:leading-7 dark:text-gray-300">
      When controlling the flow of text, using the CSS property{" "}
      <span className="inline rounded bg-sky-100 font-mono text-sm font-bold text-gray-900 dark:bg-white/15 dark:text-gray-200">
        display: inline
      </span>{" "}
      will cause the text inside the element to wrap normally.
      <br />
      <br />
      While using the property{" "}
      <span className="inline-block rounded bg-sky-100 font-mono text-sm font-bold text-gray-900 dark:bg-white/15 dark:text-gray-200">
        display: inline-block
      </span>{" "}
      will wrap the element to prevent the text inside from extending beyond its parent.
      <br />
      <br />
      Lastly, using the property{" "}
      <span className="block rounded bg-sky-100 font-mono text-sm font-bold text-gray-900 dark:bg-white/15 dark:text-gray-200">
        display: block
      </span>{" "}
      will put the element on its own line and fill its parent.
    </div>
  }

```html
<!-- [!code classes:inline,inline-block,block] -->
<p>
  When controlling the flow of text, using the CSS property <span class="inline">display: inline</span> will cause the
  text inside the element to wrap normally.
</p>
<p>
  While using the property <span class="inline-block">display: inline-block</span> will wrap the element to prevent the
  text inside from extending beyond its parent.
</p>
<p>
  Lastly, using the property <span class="block">display: block</span> will put the element on its own line and fill its
  parent.
</p>
```

### Flow Root

Use the `flow-root` utility to create a block-level element with its own [block formatting context](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context):

  {
    <div className="mx-auto max-w-xs p-4 text-sm leading-6 text-gray-500 sm:text-base sm:leading-7 dark:text-gray-300">
      <div className="relative mb-0.5 flow-root">
        <div className="absolute inset-x-0">
          
        </div>
        <div className="absolute inset-x-0 bottom-0">
          
        </div>
        <div className="my-4">
          Well, let me tell you something, funny boy. Y'know that little stamp, the one that says "New York Public
          Library"? Well that may not mean anything to you, but that means a lot to me. One whole hell of a lot.
        </div>
      </div>
      <div className="relative mt-0.5 flow-root">
        <div className="absolute inset-x-0">
          
        </div>
        <div className="absolute inset-x-0 bottom-0">
          
        </div>
        <div className="my-4">
          Sure, go ahead, laugh if you want to. I've seen your type before: Flashy, making the scene, flaunting
          convention. Yeah, I know what you're thinking. What's this guy making such a big stink about old library
          books? Well, let me give you a hint, junior.
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flow-root] -->
<div class="p-4">
  <div class="flow-root ...">
    <div class="my-4 ...">Well, let me tell you something, ...</div>
  </div>
  <div class="flow-root ...">
    <div class="my-4 ...">Sure, go ahead, laugh if you want...</div>
  </div>
</div>
```

### Flex

Use the `flex` utility to create a block-level flex container:

  {
    <div className="mx-auto flex max-w-xs justify-center p-4 leading-6 text-gray-500 dark:text-gray-400">
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=facearea&amp;facepad=4&amp;w=256&amp;h=256&amp;q=80"
        />
        <div className="flex flex-col">
          <strong className="font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
          <span className="font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flex] -->
<div class="flex items-center">
  <img src="path/to/image.jpg" />
  <div>
    <strong>Andrew Alfred</strong>
    <span>Technical advisor</span>
  </div>
</div>
```

### Inline Flex

Use the `inline-flex` utility to create an inline flex container that flows with text:

  {
    <p className="mx-auto max-w-lg p-4 text-sm leading-6 text-gray-500 sm:text-base/7 dark:text-gray-300">
      Today I spent most of the day researching ways to take advantage of the fact that bottles can be returned for 10
      cents in Michigan, but only 5 cents here.{" "}
      <span className="ml-1 inline-flex items-baseline">
        <img
          src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&amp;ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&amp;auto=format&amp;fit=facearea&amp;facepad=4&amp;w=256&amp;h=256&amp;q=80"
          alt=""
          className="mr-1 size-5 self-center rounded-full"
        />
        <span className="font-medium text-gray-900 dark:text-gray-100">Kramer</span>
      </span>{" "}
      keeps telling me there is no way to make it work, that he has run the numbers on every possible approach, but I
      just have to believe there's a way to make it work, there's simply too much opportunity here.
    </p>
  }

```html
<!-- [!code classes:inline-flex] -->
<p>
  Today I spent most of the day researching ways to ...
  <span class="inline-flex items-baseline">
    <img src="/img/kramer.jpg" class="mx-1 size-5 self-center rounded-full" />
    <span>Kramer</span>
  </span>
  keeps telling me there is no way to make it work, that ...
</p>
```

### Grid

Use the `grid` utility to create a grid container:

  {
    <div className="relative grid grid-cols-3 grid-rows-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="absolute inset-0">
        
      </div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">01</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">02</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">03</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">04</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">05</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">06</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">07</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">08</div>
      <div className="relative rounded-lg bg-fuchsia-500 p-4">09</div>
    </div>
  }

```html
<!-- [!code classes:grid] -->
<div class="grid grid-cols-3 grid-rows-3 gap-4">
  <!-- ... -->
</div>
```

### Inline Grid

Use the `inline-grid` utility to create an inline grid container:

  {
    <div className="w-full space-x-3 overflow-x-auto p-8 whitespace-nowrap">
      <div className="relative inline-grid grid-cols-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">01</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">02</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">03</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">04</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">05</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">06</div>
      </div>
      <div className="relative inline-grid grid-cols-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">01</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">02</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">03</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">04</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">05</div>
        <div className="relative size-14 rounded-lg bg-sky-500 p-4">06</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inline-grid] -->
<span class="inline-grid grid-cols-3 gap-4">
  <span>01</span>
  <span>02</span>
  <span>03</span>
  <span>04</span>
  <span>05</span>
  <span>06</span>
</span>
<span class="inline-grid grid-cols-3 gap-4">
  <span>01</span>
  <span>02</span>
  <span>03</span>
  <span>04</span>
  <span>05</span>
  <span>06</span>
</span>
```

### Contents

Use the `contents` utility to create a "phantom" container whose children act like direct children of the parent:

  {
    <div className="relative flex gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="absolute inset-0">
        
      </div>
      <div className="relative flex-1 rounded-lg bg-purple-500 p-4">01</div>
      <div className="relative contents">
        <div className="relative flex-1 rounded-lg bg-purple-500 p-4">02</div>
        <div className="relative flex-1 rounded-lg bg-purple-500 p-4">03</div>
      </div>
      <div className="relative flex-1 rounded-lg bg-purple-500 p-4">04</div>
    </div>
  }

```html
<!-- [!code classes:contents] -->
<div class="flex ...">
  <div class="flex-1 ...">01</div>
  <div class="contents">
    <div class="flex-1 ...">02</div>
    <div class="flex-1 ...">03</div>
  </div>
  <div class="flex-1 ...">04</div>
</div>
```

### Table

Use the `table`, `table-row`, `table-cell`, `table-caption`, `table-column`, `table-column-group`, `table-header-group`, `table-row-group`, and `table-footer-group` utilities to create elements that behave like their respective table elements:

  {
    <div className="my-8 overflow-hidden">
      <div className="table w-full table-auto border-collapse text-sm">
        <div className="table-header-group">
          <div className="table-row">
            <div className="table-cell border-b border-gray-200 p-4 pt-0 pb-3 pl-8 text-left font-medium text-gray-400 dark:border-white/20 dark:text-white">
              Song
            </div>
            <div className="table-cell border-b border-gray-200 p-4 pt-0 pb-3 text-left font-medium text-gray-400 dark:border-white/20 dark:text-white">
              Artist
            </div>
            <div className="table-cell border-b border-gray-200 p-4 pt-0 pr-8 pb-3 text-left font-medium text-gray-400 dark:border-white/20 dark:text-white">
              Year
            </div>
          </div>
        </div>
        <div className="table-row-group dark:bg-black/5">
          <div className="table-row">
            <div className="table-cell border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-white/10 dark:text-gray-300">
              The Sliding Mr. Bones (Next Stop, Pottersville)
            </div>
            <div className="table-cell border-b border-gray-100 p-4 text-gray-500 dark:border-white/10 dark:text-gray-300">
              Malcolm Lockyer
            </div>
            <div className="table-cell border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-white/10 dark:text-gray-300">
              1961
            </div>
          </div>
          <div className="table-row">
            <div className="table-cell border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-white/10 dark:text-gray-300">
              Witchy Woman
            </div>
            <div className="table-cell border-b border-gray-100 p-4 text-gray-500 dark:border-white/10 dark:text-gray-300">
              The Eagles
            </div>
            <div className="table-cell border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-white/10 dark:text-gray-300">
              1972
            </div>
          </div>
          <div className="table-row">
            <div className="table-cell border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-white/20 dark:text-gray-300">
              Shining Star
            </div>
            <div className="table-cell border-b border-gray-100 p-4 text-gray-500 dark:border-white/20 dark:text-gray-300">
              Earth, Wind, and Fire
            </div>
            <div className="table-cell border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-white/20 dark:text-gray-300">
              1975
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:table,table-header-group,table-row-group,table-row,table-cell] -->
<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>
```

### Hidden

Use the `hidden` utility to remove an element from the document:

  {
    <div className="relative flex gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="absolute inset-0">
        
      </div>
      <div className="hidden h-14 w-14 rounded-lg bg-purple-500 p-4">01</div>
      <div className="relative h-14 w-14 rounded-lg bg-purple-500 p-4">02</div>
      <div className="relative h-14 w-14 rounded-lg bg-purple-500 p-4">03</div>
    </div>
  }

```html
<!-- [!code classes:hidden] -->
<div class="flex ...">
  <div class="hidden ...">01</div>
  <div>02</div>
  <div>03</div>
</div>
```

To visually hide an element but keep it in the document, use the [visibility](/docs/visibility#making-elements-invisible) property instead.

### Screen-reader only

Use `sr-only` to hide an element visually without hiding it from screen readers:

```html
<!-- [!code classes:sr-only] -->
<a href="#">
  <svg><!-- ... --></svg>
  <span class="sr-only">Settings</span>
</a>
```

Use `not-sr-only` to undo `sr-only`, making an element visible to sighted users as well as screen readers:

```html
<!-- [!code classes:sm:not-sr-only] -->
<a href="#">
  <svg><!-- ... --></svg>
  <span class="sr-only sm:not-sr-only">Settings</span>
</a>
```

This can be useful when you want to visually hide something on small screens but show it on larger screens for example.

### Responsive design


---

# Editor setup

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/editor-setup*

## Syntax support

Tailwind CSS uses custom CSS syntax like `@theme`, `@variant`, and `@source`, and in some editors this can trigger warnings or errors where these rules aren't recognized.

If you're using VS Code, our official [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) plugin includes a dedicated Tailwind CSS language mode that has support for all of the custom at-rules and functions Tailwind uses.

In some cases, you may need to disable native CSS linting/validations if your editor is very strict about the syntax it expects in your CSS files.

## Cursor

[Cursor](https://cursor.com/?utm_source=tailwind) is an AI-native code editor with features like context-aware autocomplete and built-in coding agents. Since it supports VS Code extensions, all of the Tailwind CSS tooling you're already familiar with works out of the box – including our official [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) extension and the [Prettier plugin](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) for class sorting.

<img
  src={require("./img/cursor-intellisense.png").default.src}
  alt="Tailwind CSS IntelliSense extension for Cursor"
  width={1344}
  height={672}
  className="rounded-lg"
/>

Check out and download [Cursor](https://cursor.com/?utm_source=tailwind).

## Zed

[Zed](https://zed.dev/?utm_source=tailwind) is a fast, modern code editor, designed from the ground-up for cutting-edge development workflows, including agentic editing with AI. It has built-in support for Tailwind CSS autocompletions, linting, and hover previews, without the need to install and configure a separate extension. It also integrates tightly with Prettier, so our official [Prettier plugin](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) works seamlessly with Zed when installed.

<img
  src={require("./img/zed-intellisense.png").default.src}
  alt="Built-in support for Tailwind CSS in Zed via Tailwind CSS IntelliSense"
  width={1344}
  height={672}
  className="rounded-lg"
/>

Check out [Zed](https://zed.dev/?utm_source=tailwind) and learn more about [how it works with Tailwind CSS](https://zed.dev/docs/languages/tailwindcss?utm_source=tailwind).

## IntelliSense for VS Code

The official [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) extension for Visual Studio Code enhances the Tailwind development experience by providing users with advanced features such as autocomplete, syntax highlighting, and linting.

<img
  src={require("./img/intellisense.png").default.src}
  alt="Tailwind CSS IntelliSense extension for Visual Studio Code"
  width={1344}
  height={672}
  className="rounded-lg"
/>

- **Autocomplete** — providing intelligent suggestions for utility classes, as well as [CSS functions and directives](/docs/functions-and-directives).
- **Linting** — highlighting errors and potential bugs in both your CSS and your markup.
- **Hover previews** — revealing the complete CSS for utility classes when you hover over them.
- **Syntax highlighting** — so that Tailwind features that use custom CSS syntax are highlighted correctly.

Check out the project [on GitHub](https://github.com/tailwindcss/intellisense) to learn more, or [add it to Visual Studio Code](vscode:extension/bradlc.vscode-tailwindcss) to get started now.

## Class sorting with Prettier

We maintain an official [Prettier plugin](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) for Tailwind CSS that automatically sorts your classes following our [recommended class order](/blog/automatic-class-sorting-with-prettier#how-classes-are-sorted).

<img src={require("./img/prettier-banner.jpg").default.src} alt="" width={2400} height={819} className="rounded-lg" />

It works seamlessly with custom Tailwind configurations, and because it’s just a Prettier plugin, it works anywhere Prettier works — including every popular editor and IDE, and of course on the command line.

{/* prettier-ignore */}
```html
<!-- [!code filename:HTML] -->
<!-- Before -->
<button class="text-white px-4 sm:px-8 py-2 sm:py-3 bg-sky-700 hover:bg-sky-800">Submit</button>

<!-- After -->
<button class="bg-sky-700 px-4 py-2 text-white hover:bg-sky-800 sm:px-8 sm:py-3">Submit</button>
```

Check out the plugin [on GitHub](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) to learn more and get started.

## JetBrains IDEs

JetBrains IDEs like WebStorm, PhpStorm, and others include support for intelligent Tailwind CSS completions in your HTML.

[Learn more about Tailwind CSS support in JetBrains IDEs &rarr;](https://www.jetbrains.com/help/webstorm/tailwind-css.html)


---

# field-sizing

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/field-sizing*

| Clase | Propiedades CSS |
| :--- | :--- |
| `field-sizing-fixed` | `field-sizing: fixed;` |
| `field-sizing-content` | `field-sizing: content;` |

## Examples

### Sizing based on content

Use the `field-sizing-content` utility to allow a form control to adjust its size based on the content:

  {
    <textarea
      rows="2"
      defaultValue="Latex Salesman, Vanderlay Industries"
      className="mx-auto block field-sizing-content rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    />
  }

```html
<!-- [!code classes:field-sizing-content] -->
<textarea class="field-sizing-content ..." rows="2">
  Latex Salesman, Vanderlay Industries
</textarea>
```

### Using a fixed size

Use the `field-sizing-fixed` utility to make a form control use a fixed size:

  {
    <textarea
      rows="2"
      defaultValue="Latex Salesman, Vanderlay Industries"
      className="mx-auto block field-sizing-fixed w-80 rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    />
  }

```html
<!-- [!code classes:field-sizing-fixed] -->
<textarea class="field-sizing-fixed w-80 ..." rows="2">
  Latex Salesman, Vanderlay Industries
</textarea>
```

### Responsive design


---

# fill

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/fill*

| Clase | Propiedades CSS |
| :--- | :--- |
| `fill-none` | `fill: none;` |
| `fill-inherit` | `fill: inherit;` |
| `fill-current` | `fill: currentColor;` |
| `fill-transparent` | `fill: transparent;` |
| `fill-(<custom-property>)` | `fill: var(<custom-property>);` |
| `fill-[<color>]` | `fill: <color>;` |
| `fill-<value>` | `fill: var(--color-<value>); /* <value> */` |

## Examples

### Basic example

Use utilities like `fill-indigo-500` and `fill-lime-600` to change the fill color of an SVG:

  {
    <div className="flex items-center justify-center">
      <svg className="h-12 fill-blue-500" viewBox="0 0 46 48">
        <path
          fillRule="evenodd"
          clipRule="evenodd"
          d="M23.0002 0C12.5068 0 4.00017 8.50659 4.00017 19V32.5335C4.00017 32.8383 3.9145 33.1371 3.75292 33.3956L0.912672 37.94C0.0801118 39.2721 1.0378 41 2.60867 41H43.3917C44.9625 41 45.9202 39.2721 45.0877 37.94L42.2474 33.3956C42.0858 33.1371 42.0002 32.8383 42.0002 32.5335V19C42.0002 8.50659 33.4936 0 23.0002 0ZM23.0002 48C20.2388 48 18.0002 45.7614 18.0002 43H28.0002C28.0002 45.7614 25.7616 48 23.0002 48Z"
        />
      </svg>
    </div>
  }

```html
<!-- [!code classes:fill-blue-500] -->
<svg class="fill-blue-500 ...">
  <!-- ... -->
</svg>
```

This can be useful for styling icon sets like [Heroicons](https://heroicons.com).

### Using the current color

Use the `fill-current` utility to set the fill color to the current text color:

  {
    <div className="flex items-center justify-center">
      <button className="inline-flex gap-2 rounded-md border border-indigo-100 bg-white px-3 py-2 text-sm font-semibold text-indigo-600 shadow-sm transition-colors duration-150 hover:border-indigo-600 hover:bg-indigo-600 hover:text-white dark:border-transparent">
        <svg viewBox="0 0 20 20" className="size-5 fill-current">
          <path
            d="M15.312 11.424a5.5 5.5 0 0 1-9.201 2.466l-.312-.311h2.433a.75.75 0 0 0 0-1.5H3.989a.75.75 0 0 0-.75.75v4.242a.75.75 0 0 0 1.5 0v-2.43l.31.31a7 7 0 0 0 11.712-3.138.75.75 0 0 0-1.449-.39Zm1.23-3.723a.75.75 0 0 0 .219-.53V2.929a.75.75 0 0 0-1.5 0V5.36l-.31-.31A7 7 0 0 0 3.239 8.188a.75.75 0 1 0 1.448.389A5.5 5.5 0 0 1 13.89 6.11l.311.31h-2.432a.75.75 0 0 0 0 1.5h4.243a.75.75 0 0 0 .53-.219Z"
            fillRule="evenodd"
            clipRule="evenodd"
          />
        </svg>
        Check for updates
      </button>
    </div>
  }

```html
<!-- [!code classes:fill-current] -->
<button class="bg-white text-indigo-600 hover:bg-indigo-600 hover:text-white ...">
  <svg class="size-5 fill-current ...">
    <!-- ... -->
  </svg>
  Check for updates
</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# filter: blur()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-blur*

| Clase | Propiedades CSS |
| :--- | :--- |
| `blur-xs` | `filter: blur(var(--blur-xs)); /* 4px */` |
| `blur-sm` | `filter: blur(var(--blur-sm)); /* 8px */` |
| `blur-md` | `filter: blur(var(--blur-md)); /* 12px */` |
| `blur-lg` | `filter: blur(var(--blur-lg)); /* 16px */` |
| `blur-xl` | `filter: blur(var(--blur-xl)); /* 24px */` |
| `blur-2xl` | `filter: blur(var(--blur-2xl)); /* 40px */` |
| `blur-3xl` | `filter: blur(var(--blur-3xl)); /* 64px */` |
| `blur-none` | `filter: ;` |
| `blur-(<custom-property>)` | `filter: blur(var(<custom-property>));` |
| `blur-[<value>]` | `filter: blur(<value>);` |

## Examples

### Basic example

Use utilities like `blur-sm` and `blur-lg` to blur an element:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">blur-none</p>
          <div className="relative blur-none">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">blur-sm</p>
          <div className="relative blur-sm">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">blur-lg</p>
          <div className="relative blur-lg">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">blur-2xl</p>
          <div className="relative blur-2xl">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:blur-none,blur-sm,blur-lg,blur-2xl] -->
<img class="blur-none" src="/img/mountains.jpg" />
<img class="blur-sm" src="/img/mountains.jpg" />
<img class="blur-lg" src="/img/mountains.jpg" />
<img class="blur-2xl" src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# filter: brightness()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-brightness*

| Clase | Propiedades CSS |
| :--- | :--- |
| `brightness-<number>` | `filter: brightness(<number>%);` |
| `brightness-(<custom-property>)` | `filter: brightness(var(<custom-property>));` |
| `brightness-[<value>]` | `filter: brightness(<value>);` |

## Examples

### Basic example

Use utilities like `brightness-50` and `brightness-100` to control an element's brightness:

  {
    
      <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
        <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
          <div className="flex shrink-0 flex-col items-center">
            <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
              brightness-50
            </p>
            <div className="relative brightness-50">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
          <div className="flex shrink-0 flex-col items-center">
            <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
              brightness-100
            </p>
            <div className="relative brightness-100">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
          <div className="flex shrink-0 flex-col items-center">
            <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
              brightness-125
            </p>
            <div className="relative brightness-125">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
          <div className="flex shrink-0 flex-col items-center">
            <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
              brightness-200
            </p>
            <div className="relative brightness-200">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    
  }

```html
<!-- [!code classes:brightness-50,brightness-100,brightness-125,brightness-200] -->
<img class="brightness-50 ..." src="/img/mountains.jpg" />
<img class="brightness-100 ..." src="/img/mountains.jpg" />
<img class="brightness-125 ..." src="/img/mountains.jpg" />
<img class="brightness-200 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: contrast()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-contrast*

| Clase | Propiedades CSS |
| :--- | :--- |
| `contrast-<number>` | `filter: contrast(<number>%);` |
| `contrast-(<custom-property>)` | `filter: contrast(var(<custom-property>));` |
| `contrast-[<value>]` | `filter: contrast(<value>);` |

## Examples

### Basic example

Use utilities like `contrast-50` and `contrast-100` to control an element's contrast:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">contrast-50</p>
          <div className="relative contrast-50">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            contrast-100
          </p>
          <div className="relative contrast-100">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            contrast-125
          </p>
          <div className="relative contrast-125">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            contrast-200
          </p>
          <div className="relative contrast-200">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:contrast-50,contrast-100,contrast-125,contrast-200] -->
<img class="contrast-50 ..." src="/img/mountains.jpg" />
<img class="contrast-100 ..." src="/img/mountains.jpg" />
<img class="contrast-125 ..." src="/img/mountains.jpg" />
<img class="contrast-200 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: drop-shadow()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-drop-shadow*

CustomizingYourTheme,
  ResponsiveDesign,
  UsingACustomValue,
  CustomizingYourThemeColors,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `drop-shadow-xs` | `filter: drop-shadow(var(--drop-shadow-xs)); /* 0 1px 1px rgb(0 0 0 / 0.05) */` |
| `drop-shadow-sm` | `filter: drop-shadow(var(--drop-shadow-sm)); /* 0 1px 2px rgb(0 0 0 / 0.15) */` |
| `drop-shadow-md` | `filter: drop-shadow(var(--drop-shadow-md)); /* 0 3px 3px rgb(0 0 0 / 0.12) */` |
| `drop-shadow-lg` | `filter: drop-shadow(var(--drop-shadow-lg)); /* 0 4px 4px rgb(0 0 0 / 0.15) */` |
| `drop-shadow-xl` | `filter: drop-shadow(var(--drop-shadow-xl); /* 0 9px 7px rgb(0 0 0 / 0.1) */` |
| `drop-shadow-2xl` | `filter: drop-shadow(var(--drop-shadow-2xl)); /* 0 25px 25px rgb(0 0 0 / 0.15) */` |
| `drop-shadow-none` | `filter: drop-shadow(0 0 #0000);` |
| `drop-shadow-(<custom-property>)` | `filter: drop-shadow(var(<custom-property>));` |
| `drop-shadow-(color:<custom-property>)` | `--tw-drop-shadow-color: var(<custom-property>);` |
| `drop-shadow-[<value>]` | `filter: drop-shadow(<value>);` |
| `drop-shadow-inherit` | `--tw-drop-shadow-color: inherit;` |
| `drop-shadow-current` | `--tw-drop-shadow-color: currentColor;` |
| `drop-shadow-transparent` | `--tw-drop-shadow-color: transparent;` |

## Examples

### Basic example

Use utilities like `drop-shadow-sm` and `drop-shadow-xl` to add a drop shadow to an element:

  {
    <div className="grid grid-cols-3 items-end gap-8 bg-white p-8 max-sm:grid-cols-1">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-md</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-md" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-lg</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-lg" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-xl</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
    </div>
  }

```html
<!-- [!code classes:drop-shadow-md,drop-shadow-lg,drop-shadow-xl] -->
<svg class="drop-shadow-md ...">
  <!-- ... -->
</svg>
<svg class="drop-shadow-lg ...">
  <!-- ... -->
</svg>
<svg class="drop-shadow-xl ...">
  <!-- ... -->
</svg>
```

This is useful for applying shadows to irregular shapes, like text and SVG elements. For applying shadows to regular elements, you probably want to use [box shadow](/docs/box-shadow) instead.

### Changing the opacity

Use the opacity modifier to adjust the opacity of the drop shadow:

  {
    <div className="grid grid-cols-3 items-end gap-8 bg-white p-8 max-sm:grid-cols-1">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-xl</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-xl/25</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl/25" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-xl/50</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl/50" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-white"
          />
        </svg>
      </div>
    </div>
  }

```html
<!-- [!code classes:drop-shadow-xl,drop-shadow-xl/25,drop-shadow-xl/50] -->
<svg class="fill-white drop-shadow-xl ...">...</svg>
<svg class="fill-white drop-shadow-xl/25 ...">...</svg>
<svg class="fill-white drop-shadow-xl/50 ...">...</svg>
```

The default drop shadow opacities are quite low (15% or less), so increasing the opacity (to like 50%) will make the drop shadows more pronounced.

### Setting the shadow color

Use utilities like `drop-shadow-indigo-500` and `drop-shadow-cyan-500/50` to change the color of a drop shadow:

  {
    <div className="grid grid-cols-2 items-end p-8 max-sm:grid-cols-1">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-cyan-500/50</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl drop-shadow-cyan-500/50" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-cyan-500"
          />
        </svg>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500">drop-shadow-indigo-500/50</p>
        <svg className="size-28 text-gray-950/100 drop-shadow-xl drop-shadow-indigo-500/50" viewBox="0 0 84 84">
          <path
            d="M22.0992 77L2.19922 42.5L22.0992 8H61.8992L81.7992 42.5L61.8992 77H22.0992Z"
            className="fill-indigo-500"
          />
        </svg>
      </div>
    </div>
  }

```html
<!-- [!code classes:drop-shadow-cyan-500/50,drop-shadow-indigo-500/50] -->
<svg class="fill-cyan-500 drop-shadow-lg drop-shadow-cyan-500/50 ...">...</svg>
<svg class="fill-indigo-500 drop-shadow-lg drop-shadow-indigo-500/50 ...">...</svg>
```

By default colored shadows have an opacity of 100% but you can adjust this using the opacity modifier.

### Removing a drop shadow

Use the `drop-shadow-none` utility to remove an existing drop shadow from an element:

```html
<!-- [!code classes:dark:drop-shadow-none] -->
<svg class="drop-shadow-lg dark:drop-shadow-none">
  <!-- ... -->
</svg>
```

### Using a custom value

### Responsive design

## Customizing your theme

### Customizing drop shadows

### Customizing shadow colors


---

# filter: grayscale()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-grayscale*

| Clase | Propiedades CSS |
| :--- | :--- |
| `grayscale` | `filter: grayscale(100%);` |
| `grayscale-<number>` | `filter: grayscale(<number>%);` |
| `grayscale-(<custom-property>)` | `filter: grayscale(var(<custom-property>));` |
| `grayscale-[<value>]` | `filter: grayscale(<value>);` |

## Examples

### Basic example

Use utilities like `grayscale` and `grayscale-75` to control the amount of grayscale effect applied to an element:

  {
    <div className="flex scroll-p-8 justify-center overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">grayscale-0</p>
          <div className="relative grayscale-0">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            grayscale-25
          </p>
          <div className="relative grayscale-25">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            grayscale-50
          </p>
          <div className="relative grayscale-50">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">grayscale</p>
          <div className="relative grayscale">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grayscale-0,grayscale-25,grayscale-50,grayscale] -->
<img class="grayscale-0 ..." src="/img/mountains.jpg" />
<img class="grayscale-25 ..." src="/img/mountains.jpg" />
<img class="grayscale-50 ..." src="/img/mountains.jpg" />
<img class="grayscale ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: hue-rotate()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-hue-rotate*

| Clase | Propiedades CSS |
| :--- | :--- |
| `hue-rotate-<number>` | `filter: hue-rotate(<number>deg);` |
| `-hue-rotate-<number>` | `filter: hue-rotate(calc(<number>deg * -1));` |
| `hue-rotate-(<custom-property>)` | `filter: hue-rotate(var(<custom-property>));` |
| `hue-rotate-[<value>]` | `filter: hue-rotate(<value>);` |

## Examples

### Basic example

Use utilities like `hue-rotate-90` and `hue-rotate-180` to rotate the hue of an element by degrees:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            hue-rotate-15
          </p>
          <div className="relative hue-rotate-15">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            hue-rotate-90
          </p>
          <div className="relative hue-rotate-90">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            hue-rotate-180
          </p>
          <div className="relative hue-rotate-180">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            hue-rotate-270
          </p>
          <div className="relative hue-rotate-270">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:hue-rotate-15,hue-rotate-90,hue-rotate-180,hue-rotate-270] -->
<img class="hue-rotate-15" src="/img/mountains.jpg" />
<img class="hue-rotate-90" src="/img/mountains.jpg" />
<img class="hue-rotate-180" src="/img/mountains.jpg" />
<img class="hue-rotate-270" src="/img/mountains.jpg" />
```

### Using negative values

Use utilities like `-hue-rotate-15` and `-hue-rotate-45` to set a negative hue rotate value:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -hue-rotate-15
          </p>
          <div className="relative -hue-rotate-15">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -hue-rotate-45
          </p>
          <div className="relative -hue-rotate-45">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -hue-rotate-90
          </p>
          <div className="relative -hue-rotate-90">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-hue-rotate-15,-hue-rotate-45,-hue-rotate-90] -->
<img class="-hue-rotate-15" src="/img/mountains.jpg" />
<img class="-hue-rotate-45" src="/img/mountains.jpg" />
<img class="-hue-rotate-90" src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: invert()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-invert*

| Clase | Propiedades CSS |
| :--- | :--- |
| `invert` | `filter: invert(100%);` |
| `invert-<number>` | `filter: invert(<number>%);` |
| `invert-(<custom-property>)` | `filter: invert(var(<custom-property>));` |
| `invert-[<value>]` | `filter: invert(<value>);` |

## Examples

### Basic example

Use utilities like `invert` and `invert-20` to control the color inversion of an element:

  {
    <div className="flex scroll-p-8 justify-center overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">invert-0</p>
          <div className="relative invert-0">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">invert-20</p>
          <div className="relative invert-20">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">invert</p>
          <div className="relative invert">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:invert-0,invert-20,invert] -->
<img class="invert-0" src="/img/mountains.jpg" />
<img class="invert-20" src="/img/mountains.jpg" />
<img class="invert" src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: saturate()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-saturate*

| Clase | Propiedades CSS |
| :--- | :--- |
| `saturate-<number>` | `filter: saturate(<number>%);` |
| `saturate-(<custom-property>)` | `filter: saturate(var(<custom-property>));` |
| `saturate-[<value>]` | `filter: saturate(<value>);` |

## Examples

### Basic example

Use utilities like `saturate-50` and `saturate-100` to control an element's saturation:

  {
    <div className="flex scroll-p-8 justify-start overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">saturate-50</p>
          <div className="relative saturate-50">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            saturate-100
          </p>
          <div className="relative saturate-100">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            saturate-150
          </p>
          <div className="relative saturate-150">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            saturate-200
          </p>
          <div className="relative saturate-200">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:saturate-50,saturate-100,saturate-150,saturate-200] -->
<img class="saturate-50 ..." src="/img/mountains.jpg" />
<img class="saturate-100 ..." src="/img/mountains.jpg" />
<img class="saturate-150 ..." src="/img/mountains.jpg" />
<img class="saturate-200 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter: sepia()

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter-sepia*

| Clase | Propiedades CSS |
| :--- | :--- |
| `sepia` | `filter: sepia(100%);` |
| `sepia-<number>` | `filter: sepia(<number>%);` |
| `sepia-(<custom-property>)` | `filter: sepia(var(<custom-property>));` |
| `sepia-[<value>]` | `filter: sepia(<value>);` |

## Examples

### Basic example

Use utilities like `sepia` and `sepia-50` to control the sepia effect applied to an element:

  {
    <div className="flex scroll-p-8 justify-center overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-6 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">sepia-0</p>
          <div className="relative sepia-0">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">sepia-50</p>
          <div className="relative sepia-50">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">sepia</p>
          <div className="relative sepia">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:sepia-0,sepia-50,sepia] -->
<img class="sepia-0" src="/img/mountains.jpg" />
<img class="sepia-50" src="/img/mountains.jpg" />
<img class="sepia" src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# filter

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/filter*

| Clase | Propiedades CSS |
| :--- | :--- |
| `filter-none` | `filter: none;` |
| `filter-(<custom-property>)` | `filter: var(<custom-property>);` |
| `filter-[<value>]` | `filter: <value>;` |

## Examples

### Basic example

Use utilities like `blur-xs` and `grayscale` to apply filters to an element:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">blur-xs</p>
          <div className="relative blur-xs">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">grayscale</p>
          <div className="relative grayscale">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 italic dark:text-gray-400">
            combined
          </p>
          <div className="relative blur-xs grayscale">
            <img
              className="size-24 rounded-lg object-cover"
              src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
            />
            <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:blur-xs,grayscale] -->
<img class="blur-xs" src="/img/mountains.jpg" />
<img class="grayscale" src="/img/mountains.jpg" />
<img class="blur-xs grayscale" src="/img/mountains.jpg" />
```

You can combine the following filter utilities: [blur](/docs/filter-blur), [brightness](/docs/filter-brightness), [contrast](/docs/filter-contrast), [drop-shadow](/docs/filter-drop-shadow), [grayscale](/docs/filter-grayscale), [hue-rotate](/docs/filter-hue-rotate), [invert](/docs/filter-invert), [saturate](/docs/filter-saturate), and [sepia](/docs/filter-sepia).

### Removing filters

Use the `filter-none` utility to remove all of the filters applied to an element:

```html
<!-- [!code classes:md:filter-none] -->
<img class="blur-md brightness-150 invert md:filter-none" src="/img/mountains.jpg" />
```

### Using a custom value

### Applying on hover

### Responsive design


---

# flex-basis

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex-basis*

| Clase | Propiedades CSS |
| :--- | :--- |
| `basis-<number>` | `flex-basis: calc(var(--spacing) * <number>);` |
| `basis-<fraction>` | `flex-basis: calc(<fraction> * 100%);` |
| `basis-full` | `flex-basis: 100%;` |
| `basis-auto` | `flex-basis: auto;` |
| `basis-px` | `flex-basis: 1px;` |
| `basis-3xs` | `flex-basis: var(--container-3xs); /* 16rem (256px) */` |
| `basis-2xs` | `flex-basis: var(--container-2xs); /* 18rem (288px) */` |
| `basis-xs` | `flex-basis: var(--container-xs); /* 20rem (320px) */` |
| `basis-sm` | `flex-basis: var(--container-sm); /* 24rem (384px) */` |
| `basis-md` | `flex-basis: var(--container-md); /* 28rem (448px) */` |
| `basis-lg` | `flex-basis: var(--container-lg); /* 32rem (512px) */` |
| `basis-xl` | `flex-basis: var(--container-xl); /* 36rem (576px) */` |
| `basis-2xl` | `flex-basis: var(--container-2xl); /* 42rem (672px) */` |
| `basis-3xl` | `flex-basis: var(--container-3xl); /* 48rem (768px) */` |
| `basis-4xl` | `flex-basis: var(--container-4xl); /* 56rem (896px) */` |
| `basis-5xl` | `flex-basis: var(--container-5xl); /* 64rem (1024px) */` |
| `basis-6xl` | `flex-basis: var(--container-6xl); /* 72rem (1152px) */` |
| `basis-7xl` | `flex-basis: var(--container-7xl); /* 80rem (1280px) */` |
| `basis-(<custom-property>)` | `flex-basis: var(<custom-property>);` |
| `basis-[<value>]` | `flex-basis: <value>;` |

## Examples

### Using the spacing scale

Use `basis-<number>` utilities like `basis-64` and `basis-128` to set the initial size of flex items based on the spacing scale:

  {
    <div className="flex flex-row space-x-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex h-14 basis-64 items-center justify-center rounded-lg bg-purple-500">01</div>
      <div className="flex h-14 basis-64 items-center justify-center rounded-lg bg-purple-500">02</div>
      <div className="flex h-14 basis-128 items-center justify-center rounded-lg bg-purple-500">03</div>
    </div>
  }

```html
<!-- [!code classes:basis-64,basis-128] -->
<div class="flex flex-row">
  <div class="basis-64">01</div>
  <div class="basis-64">02</div>
  <div class="basis-128">03</div>
</div>
```

### Using the container scale

Use utilities like `basis-xs` and `basis-sm` to set the initial size of flex items based on the container scale:

  {
    <div className="flex flex-row space-x-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex h-14 basis-3xs items-center justify-center rounded-lg bg-sky-500">01</div>
      <div className="flex h-14 basis-2xs items-center justify-center rounded-lg bg-sky-500">02</div>
      <div className="flex h-14 basis-xs items-center justify-center rounded-lg bg-sky-500">03</div>
      <div className="flex h-14 basis-sm items-center justify-center rounded-lg bg-sky-500">04</div>
    </div>
  }

```html
<!-- [!code classes:basis-3xs,basis-2xs,basis-xs,basis-sm] -->
<div class="flex flex-row">
  <div class="basis-3xs">01</div>
  <div class="basis-2xs">02</div>
  <div class="basis-xs">03</div>
  <div class="basis-sm">04</div>
</div>
```

### Using percentages

Use `basis-<fraction>` utilities like `basis-1/2` and `basis-2/3` to set the initial size of flex items:

  {
    <div className="flex flex-row space-x-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex h-14 basis-1/3 items-center justify-center rounded-lg bg-indigo-500">01</div>
      <div className="flex h-14 basis-2/3 items-center justify-center rounded-lg bg-indigo-500">02</div>
    </div>
  }

```html
<!-- [!code classes:basis-1/3,basis-2/3] -->
<div class="flex flex-row">
  <div class="basis-1/3">01</div>
  <div class="basis-2/3">02</div>
</div>
```

### Using a custom value

### Responsive design

```html
<!-- [!code classes:md:basis-1/3] -->
<div class="flex flex-row">
  <div class="basis-1/4 md:basis-1/3">01</div>
  <div class="basis-1/4 md:basis-1/3">02</div>
  <div class="basis-1/2 md:basis-1/3">03</div>
</div>
```

## Customizing your theme


---

# flex-direction

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex-direction*

| Clase | Propiedades CSS |
| :--- | :--- |
| `flex-row` | `flex-direction: row;` |
| `flex-row-reverse` | `flex-direction: row-reverse;` |
| `flex-col` | `flex-direction: column;` |
| `flex-col-reverse` | `flex-direction: column-reverse;` |

## Examples

### Row

Use `flex-row` to position flex items horizontally in the same direction as text:

  {
    <div className="flex flex-row gap-x-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
    </div>
  }

```html
<!-- [!code classes:flex-row] -->
<div class="flex flex-row ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Row reversed

Use `flex-row-reverse` to position flex items horizontally in the opposite direction:

  {
    <div className="flex flex-row-reverse gap-x-4 space-x-reverse font-mono text-sm leading-6 font-bold text-white">
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-blue-500">01</div>
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-blue-500">02</div>
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-blue-500">03</div>
    </div>
  }

```html
<!-- [!code classes:flex-row-reverse] -->
<div class="flex flex-row-reverse ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Column

Use `flex-col` to position flex items vertically:

  {
    <div className="mx-auto flex max-w-xs flex-col space-y-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">01</div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-500 p-4">03</div>
    </div>
  }

```html
<!-- [!code classes:flex-col] -->
<div class="flex flex-col ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Column reversed

Use `flex-col-reverse` to position flex items vertically in the opposite direction:

  {
    <div className="mx-auto flex max-w-xs flex-col-reverse space-y-4 space-y-reverse font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-purple-500 p-4">01</div>
      <div className="flex items-center justify-center rounded-lg bg-purple-500 p-4">02</div>
      <div className="flex items-center justify-center rounded-lg bg-purple-500 p-4">03</div>
    </div>
  }

```html
<!-- [!code classes:flex-col-reverse] -->
<div class="flex flex-col-reverse ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Responsive design


---

# flex-grow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex-grow*

| Clase | Propiedades CSS |
| :--- | :--- |
| `grow` | `flex-grow: 1;` |
| `grow-<number>` | `flex-grow: <number>;` |
| `grow-[<value>]` | `flex-grow: <value>;` |
| `grow-(<custom-property>)` | `flex-grow: var(<custom-property>);` |

## Examples

### Allowing items to grow

Use `grow` to allow a flex item to grow to fill any available space:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 flex-none items-center justify-center rounded-lg bg-sky-300 dark:bg-sky-800 dark:text-sky-400">
          01
        </div>
        <div className="flex size-14 grow items-center justify-center rounded-lg bg-sky-500 p-4">02</div>
        <div className="flex size-14 flex-none items-center justify-center rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grow] -->
<div class="flex ...">
  <div class="size-14 flex-none ...">01</div>
  <div class="size-14 grow ...">02</div>
  <div class="size-14 flex-none ...">03</div>
</div>
```

### Growing items based on factor

Use `grow-<number>` utilities like `grow-3` to make flex items grow proportionally based on their growth factor, allowing them to fill the available space relative to each other:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 grow-3 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-800 dark:text-indigo-400">
          01
        </div>
        <div className="flex size-14 grow-7 items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
        <div className="flex size-14 grow-3 items-center justify-center rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grow-3,grow-7] -->
<div class="flex ...">
  <div class="size-14 grow-3 ...">01</div>
  <div class="size-14 grow-7 ...">02</div>
  <div class="size-14 grow-3 ...">03</div>
</div>
```

### Preventing items from growing

Use `grow-0` to prevent a flex item from growing:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 grow items-center justify-center rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">
          01
        </div>
        <div className="flex size-14 shrink-0 grow-0 items-center justify-center rounded-lg bg-pink-500">02</div>
        <div className="hidden size-14 grow items-center justify-center rounded-lg bg-pink-300 p-4 md:flex dark:bg-pink-800 dark:text-pink-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grow-0] -->
<div class="flex ...">
  <div class="size-14 grow ...">01</div>
  <div class="size-14 grow-0 ...">02</div>
  <div class="size-14 grow ...">03</div>
</div>
```

### Using a custom value

### Responsive design


---

# flex-shrink

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex-shrink*

| Clase | Propiedades CSS |
| :--- | :--- |
| `shrink` | `flex-shrink: 1;` |
| `shrink-<number>` | `flex-shrink: <number>;` |
| `shrink-[<value>]` | `flex-shrink: <value>;` |
| `shrink-(<custom-property>)` | `flex-shrink: var(<custom-property>);` |

## Examples

### Allowing flex items to shrink

Use `shrink` to allow a flex item to shrink if needed:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 flex-none items-center justify-center rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-400">
          01
        </div>
        <div className="flex h-14 w-64 shrink items-center justify-center rounded-lg bg-sky-500 p-4">02</div>
        <div className="hidden h-14 w-14 flex-none items-center justify-center rounded-lg bg-sky-300 p-4 sm:flex dark:bg-sky-800 dark:text-sky-400">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:shrink] -->
<div class="flex ...">
  <div class="h-14 w-14 flex-none ...">01</div>
  <div class="h-14 w-64 shrink ...">02</div>
  <div class="h-14 w-14 flex-none ...">03</div>
</div>
```

### Preventing items from shrinking

Use `shrink-0` to prevent a flex item from shrinking:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex flex-1 items-center justify-center rounded-lg bg-blue-300 p-4 dark:bg-blue-800 dark:text-blue-500">
          01
        </div>
        <div className="flex w-16 shrink-0 items-center justify-center rounded-lg bg-blue-500 p-4 sm:w-64">02</div>
        <div className="hidden flex-1 items-center justify-center rounded-lg bg-blue-300 p-4 sm:flex dark:bg-blue-800 dark:text-blue-500">
          03
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:shrink-0] -->
<div class="flex ...">
  <div class="h-16 flex-1 ...">01</div>
  <div class="h-16 w-32 shrink-0 ...">02</div>
  <div class="h-16 flex-1 ...">03</div>
</div>
```

### Using a custom value

### Responsive design


---

# flex-wrap

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex-wrap*

| Clase | Propiedades CSS |
| :--- | :--- |
| `flex-nowrap` | `flex-wrap: nowrap;` |
| `flex-wrap` | `flex-wrap: wrap;` |
| `flex-wrap-reverse` | `flex-wrap: wrap-reverse;` |

## Examples

### Don't wrap

Use `flex-nowrap` to prevent flex items from wrapping, causing inflexible items to overflow the container if necessary:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex flex-nowrap gap-4 rounded-lg font-mono text-sm/6 font-bold text-white">
        <div className="w-2/5 flex-none last:pr-8">
          <div className="flex w-full items-center justify-center rounded-lg bg-sky-500 p-4">01</div>
        </div>
        <div className="w-2/5 flex-none last:pr-8">
          <div className="flex w-full items-center justify-center rounded-lg bg-sky-500 p-4">02</div>
        </div>
        <div className="w-2/5 flex-none last:pr-8">
          <div className="flex w-full items-center justify-center rounded-lg bg-sky-500 p-4">03</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flex-nowrap] -->
<div class="flex flex-nowrap">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Wrap normally

Use `flex-wrap` to allow flex items to wrap:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex flex-wrap gap-4 rounded-lg font-mono text-sm/6 font-bold text-white">
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-indigo-500 p-4">01</div>
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-indigo-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flex-wrap] -->
<div class="flex flex-wrap">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Wrap reversed

Use `flex-wrap-reverse` to wrap flex items in the reverse direction:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex flex-wrap-reverse gap-4 rounded-lg font-mono text-sm/6 font-bold text-white">
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-fuchsia-500 p-4">01</div>
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-fuchsia-500 p-4">02</div>
        <div className="flex w-2/5 items-center justify-center rounded-lg bg-fuchsia-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flex-wrap-reverse] -->
<div class="flex flex-wrap-reverse">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Responsive design


---

# flex

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/flex*

| Clase | Propiedades CSS |
| :--- | :--- |
| `flex-<number>` | `flex: <number>;` |
| `flex-<fraction>` | `flex: calc(<fraction> * 100%);` |
| `flex-auto` | `flex: auto;` |
| `flex-initial` | `flex: 0 auto;` |
| `flex-none` | `flex: none;` |
| `flex-(<custom-property>)` | `flex: var(<custom-property>);` |
| `flex-[<value>]` | `flex: <value>;` |

## Examples

### Basic example

Use `flex-<number>` utilities like `flex-1` to allow a flex item to grow and shrink as needed, ignoring its initial size:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 flex-none items-center justify-center rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">
          01
        </div>
        <div className="flex w-64 flex-1 items-center justify-center rounded-lg bg-pink-500 p-4">02</div>
        <div className="flex w-32 flex-1 items-center justify-center rounded-lg bg-pink-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code word:flex-1] -->
<div class="flex">
  <div class="w-14 flex-none ...">01</div>
  <div class="w-64 flex-1 ...">02</div>
  <div class="w-32 flex-1 ...">03</div>
</div>
```

### Initial

Use `flex-initial` to allow a flex item to shrink but not grow, taking into account its initial size:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 flex-none items-center justify-center rounded-lg bg-blue-300 p-4 dark:bg-blue-800 dark:text-blue-500">
          01
        </div>
        <div className="flex w-24 flex-initial items-center justify-center rounded-lg bg-blue-500 p-4 sm:w-64">02</div>
        <div className="flex w-14 flex-initial items-center justify-center rounded-lg bg-blue-500 p-4 sm:w-32">03</div>
      </div>
    </div>
  }

```html
<!-- [!code word:flex-initial] -->
<div class="flex">
  <div class="w-14 flex-none ...">01</div>
  <div class="w-64 flex-initial ...">02</div>
  <div class="w-32 flex-initial ...">03</div>
</div>
```

### Auto

Use `flex-auto` to allow a flex item to grow and shrink, taking into account its initial size:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 flex-none items-center justify-center rounded-lg bg-violet-300 p-4 dark:bg-violet-800 dark:text-violet-400">
          01
        </div>
        <div className="flex w-64 flex-auto items-center justify-center rounded-lg bg-violet-500 p-4">02</div>
        <div className="flex w-32 flex-auto items-center justify-center rounded-lg bg-violet-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code word:flex-auto] -->
<div class="flex ...">
  <div class="w-14 flex-none ...">01</div>
  <div class="w-64 flex-auto ...">02</div>
  <div class="w-32 flex-auto ...">03</div>
</div>
```

### None

Use `flex-none` to prevent a flex item from growing or shrinking:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex-none last:pr-8 sm:last:pr-0">
          <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-500 p-4">01</div>
        </div>
        <div className="flex-none last:pr-8 sm:last:pr-0">
          <div className="flex w-32 items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
        </div>
        <div className="flex-1 last:pr-8 sm:last:pr-0">
          <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">
            03
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code word:flex-none] -->
<div class="flex ...">
  <div class="w-14 flex-none ...">01</div>
  <div class="w-32 flex-none ...">02</div>
  <div class="flex-1 ...">03</div>
</div>
```

### Using a custom value

### Responsive design


---

# float

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/float*

| Clase | Propiedades CSS |
| :--- | :--- |
| `float-right` | `float: right;` |
| `float-left` | `float: left;` |
| `float-start` | `float: inline-start;` |
| `float-end` | `float: inline-end;` |
| `float-none` | `float: none;` |

## Examples

### Floating elements to the right

Use the `float-right` utility to float an element to the right of its container:

  {
    <>
      <img
        className="float-right ml-6 aspect-video w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:float-right] -->
<article>
  <img class="float-right ..." src="/img/mountains.jpg" />
  <p>Maybe we can live without libraries, people like you and me. ...</p>
</article>
```

### Floating elements to the left

Use the `float-left` utility to float an element to the left of its container:

  {
    <>
      <img
        className="float-left mr-6 aspect-video w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:float-left] -->
<article>
  <img class="float-left ..." src="/img/mountains.jpg" />
  <p>Maybe we can live without libraries, people like you and me. ...</p>
</article>
```

### Using logical properties

Use the `float-start` and `float-end` utilities, which use [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts) to map to either the left or right side based on the text direction:

  {
    <>
      <div dir="ltr">
        <p className="mb-4 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">left-to-right</p>
        <div>
          <img
            className="float-start me-6 aspect-video w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
          <p className="text-justify">
            Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world,
            but what about that kid, sitting down, opening a book, right now, in a branch at the local library and
            finding drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE
            deserve better? Look. If you think this is about overdue fines and missing books, you'd better think again.
            This is about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on,
            Seinfeld; maybe that's how y'get your kicks. You and your good-time buddies.
          </p>
        </div>
      </div>
      <div dir="rtl" className="mt-6">
        <p className="mb-4 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">right-to-left</p>
        <div>
          <img
            className="float-start me-6 aspect-video w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
          <p className="text-justify">
            ربما يمكننا العيش بدون مكتبات، أشخاص مثلي ومثلك. ربما. بالتأكيد، نحن أكبر من أن نغير العالم، ولكن ماذا عن
            ذلك الطفل الذي يجلس ويفتح كتابًا الآن في أحد فروع المكتبة المحلية ويجد رسومات للتبول والبول على القطة في
            القبعة والإخوة الصينيون الخمسة؟ ألا يستحق الأفضل؟ ينظر. إذا كنت تعتقد أن الأمر يتعلق بالغرامات المتأخرة
            والكتب المفقودة، فمن الأفضل أن تفكر مرة أخرى. يتعلق الأمر بحق ذلك الطفل في قراءة كتاب دون أن يتشوه عقله! أو:
            ربما يثيرك هذا يا سينفيلد؛ ربما هذه هي الطريقة التي تحصل بها على ركلاتك. أنت ورفاقك الطيبين.
          </p>
        </div>
      </div>
    </>
  }

```html
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:float-start] -->
<article>
  <img class="float-start ..." src="/img/mountains.jpg" />
  <p>Maybe we can live without libraries, people like you and me. ...</p>
</article>

<article dir="rtl">
  <img class="float-start ..." src="/img/mountains.jpg" />
  <p>... ربما يمكننا العيش بدون مكتبات، أشخاص مثلي ومثلك. ربما. بالتأكيد</p>
</article>
```

### Disabling a float

Use the `float-none` utility to reset any floats that are applied to an element:

  {
    <>
      <img
        className="mb-4 aspect-video w-2/5 rounded-lg object-cover outline -outline-offset-1 outline-black/10"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
      <p className="text-justify">
        Maybe we can live without libraries, people like you and me. Maybe. Sure, we're too old to change the world, but
        what about that kid, sitting down, opening a book, right now, in a branch at the local library and finding
        drawings of pee-pees and wee-wees on the Cat in the Hat and the Five Chinese Brothers? Doesn't HE deserve
        better? Look. If you think this is about overdue fines and missing books, you'd better think again. This is
        about that kid's right to read a book without getting his mind warped! Or: maybe that turns you on, Seinfeld;
        maybe that's how y'get your kicks. You and your good-time buddies.
      </p>
    </>
  }

```html
<!-- [!code classes:float-none] -->
<article>
  <img class="float-none ..." src="/img/mountains.jpg" />
  <p>Maybe we can live without libraries, people like you and me. ...</p>
</article>
```

### Responsive design

```html
<!-- [!code classes:md:float-left] -->
<img class="float-right md:float-left" src="/img/mountains.jpg" />
```


---

# font-family

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-family*

| Clase | Propiedades CSS |
| :--- | :--- |
| `font-sans` | `font-family: var(--font-sans); /* -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji' */` |
| `font-serif` | `font-family: var(--font-serif); /* ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif */` |
| `font-mono` | `font-family: var(--font-mono); /* ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace */` |
| `font-(family-name:<custom-property>)` | `font-family: var(<custom-property>);` |
| `font-[<value>]` | `font-family: <value>;` |

## Examples

### Basic example

Use utilities like `font-sans` and `font-mono` to set the font family of an element:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-sans</span>
        <p className="font-sans text-lg font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-serif</span>
        <p className="font-serif text-lg font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-mono</span>
        <p className="font-mono text-lg font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:font-sans,font-serif,font-mono] -->
<p class="font-sans ...">The quick brown fox ...</p>
<p class="font-serif ...">The quick brown fox ...</p>
<p class="font-mono ...">The quick brown fox ...</p>
```

### Using a custom value

### Responsive design

## Customizing your theme

You can also provide default `font-feature-settings` and `font-variation-settings` values for a font family:

```css
@theme {
  --font-display: "Oswald", sans-serif;
  --font-display--font-feature-settings: "cv02", "cv03", "cv04", "cv11"; /* [!code highlight] */
  --font-display--font-variation-settings: "opsz" 32; /* [!code highlight] */
}
```

If needed, use the [@font-face](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face) at-rule to load custom fonts:

```css
@font-face {
  font-family: Oswald;
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url("/fonts/Oswald.woff2") format("woff2");
}
```

If you're loading a font from a service like [Google Fonts](https://fonts.google.com/), make sure to put the `@import` at the very top of your CSS file:

```css
@import url("https://fonts.googleapis.com/css2?family=Roboto&display=swap"); /* [!code highlight] */
@import "tailwindcss";

@theme {
  --font-roboto: "Roboto", sans-serif; /* [!code highlight] */
}
```

Browsers require that `@import` statements come before any other rules, so URL imports need to be above imports like `@import "tailwindcss"` which are inlined in the compiled CSS.


---

# font-feature-settings

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-feature-settings*

| Clase | Propiedades CSS |
| :--- | :--- |
| `font-features-[<value>]` | `font-feature-settings: <value>;` |
| `font-features-(<custom-property>)` | `font-feature-settings: var(<custom-property>);` |

## Examples

### Basic example

Use the `font-features-[<value>]` utility to enable OpenType features in fonts that support them:

```html
<!-- [!code classes:font-features-["smcp"]] -->
<p class="font-features-['smcp'] ...">This text uses small caps.</p>
```

### Enabling multiple features

You can enable multiple OpenType features by separating them with commas:

```html
<!-- [!code classes:font-features-["smcp","onum"]] -->
<p class="font-features-['smcp','onum'] ...">This text uses small caps and oldstyle numbers.</p>
```

### Using CSS variables

Use the `font-features-(<custom-property>)` syntax to apply font feature settings from a CSS variable:

```html
<!-- [!code classes:font-features-(--my-features)] -->
<p class="font-features-(--my-features) ...">
  <!-- ... -->
</p>
```

### Responsive design


---

# font-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-xs` | `font-size: var(--text-xs); /* 0.75rem (12px) */ \nline-height: var(--text-xs--line-height); /* calc(1 / 0.75) */` |
| `text-sm` | `font-size: var(--text-sm); /* 0.875rem (14px) */ \nline-height: var(--text-sm--line-height); /* calc(1.25 / 0.875) */` |
| `text-base` | `font-size: var(--text-base); /* 1rem (16px) */ \nline-height: var(--text-base--line-height); /* calc(1.5 / 1) */` |
| `text-lg` | `font-size: var(--text-lg); /* 1.125rem (18px) */ \nline-height: var(--text-lg--line-height); /* calc(1.75 / 1.125) */` |
| `text-xl` | `font-size: var(--text-xl); /* 1.25rem (20px) */ \nline-height: var(--text-xl--line-height); /* calc(1.75 / 1.25) */` |
| `text-2xl` | `font-size: var(--text-2xl); /* 1.5rem (24px) */ \nline-height: var(--text-2xl--line-height); /* calc(2 / 1.5) */` |
| `text-3xl` | `font-size: var(--text-3xl); /* 1.875rem (30px) */ \nline-height: var(--text-3xl--line-height); /* calc(2.25 / 1.875) */` |
| `text-4xl` | `font-size: var(--text-4xl); /* 2.25rem (36px) */ \nline-height: var(--text-4xl--line-height); /* calc(2.5 / 2.25) */` |
| `text-5xl` | `font-size: var(--text-5xl); /* 3rem (48px) */ \nline-height: var(--text-5xl--line-height); /* 1 */` |
| `text-6xl` | `font-size: var(--text-6xl); /* 3.75rem (60px) */ \nline-height: var(--text-6xl--line-height); /* 1 */` |
| `text-7xl` | `font-size: var(--text-7xl); /* 4.5rem (72px) */ \nline-height: var(--text-7xl--line-height); /* 1 */` |
| `text-8xl` | `font-size: var(--text-8xl); /* 6rem (96px) */ \nline-height: var(--text-8xl--line-height); /* 1 */` |
| `text-9xl` | `font-size: var(--text-9xl); /* 8rem (128px) */ \nline-height: var(--text-9xl--line-height); /* 1 */` |
| `text-(length:<custom-property>)` | `font-size: var(<custom-property>);` |
| `text-[<value>]` | `font-size: <value>;` |

## Examples

### Basic example

Use utilities like `text-sm` and `text-lg` to set the font size of an element:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm</span>
        <p className="text-sm font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-base</span>
        <p className="text-base font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-lg</span>
        <p className="text-lg font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-xl</span>
        <p className="text-xl font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-2xl</span>
        <p className="text-2xl font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-sm,text-base,text-lg,text-xl,text-2xl] -->
<p class="text-sm ...">The quick brown fox ...</p>
<p class="text-base ...">The quick brown fox ...</p>
<p class="text-lg ...">The quick brown fox ...</p>
<p class="text-xl ...">The quick brown fox ...</p>
<p class="text-2xl ...">The quick brown fox ...</p>
```

### Setting the line-height

Use utilities like `text-sm/6` and `text-lg/7` to set the font size and line-height of an element at the same time:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/6</span>
        <p className="text-sm/6 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/7</span>
        <p className="text-sm/7 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/8</span>
        <p className="text-sm/8 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-sm/6,text-sm/7,text-sm/8] -->
<p class="text-sm/6 ...">So I started to walk into the water...</p>
<p class="text-sm/7 ...">So I started to walk into the water...</p>
<p class="text-sm/8 ...">So I started to walk into the water...</p>
```

### Using a custom value

### Responsive design

## Customizing your theme

You can also provide default `line-height`, `letter-spacing`, and `font-weight` values for a font size:

```css
@theme {
  --text-tiny: 0.625rem;
  --text-tiny--line-height: 1.5rem; /* [!code highlight] */
  --text-tiny--letter-spacing: 0.125rem; /* [!code highlight] */
  --text-tiny--font-weight: 500; /* [!code highlight] */
}
```


---

# font-smoothing

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-smoothing*

| Clase | Propiedades CSS |
| :--- | :--- |
| `antialiased` | `-webkit-font-smoothing: antialiased;\n-moz-osx-font-smoothing: grayscale;` |
| `subpixel-antialiased` | `-webkit-font-smoothing: auto;\n-moz-osx-font-smoothing: auto;` |

## Examples

### Grayscale antialiasing

Use the `antialiased` utility to render text using grayscale antialiasing:

  {
    <p className="text-center text-lg font-medium text-gray-900 antialiased dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:antialiased] -->
<p class="antialiased ...">The quick brown fox ...</p>
```

### Subpixel antialiasing

Use the `subpixel-antialiased` utility to render text using subpixel antialiasing:

  {
    <p className="text-center text-lg font-medium text-gray-900 subpixel-antialiased dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:subpixel-antialiased] -->
<p class="subpixel-antialiased ...">The quick brown fox ...</p>
```

### Responsive design


---

# font-stretch

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-stretch*

| Clase | Propiedades CSS |
| :--- | :--- |
| `font-stretch-ultra-condensed` | `font-stretch: ultra-condensed; /* 50% */` |
| `font-stretch-extra-condensed` | `font-stretch: extra-condensed; /* 62.5% */` |
| `font-stretch-condensed` | `font-stretch: condensed; /* 75% */` |
| `font-stretch-semi-condensed` | `font-stretch: semi-condensed; /* 87.5% */` |
| `font-stretch-normal` | `font-stretch: normal; /* 100% */` |
| `font-stretch-semi-expanded` | `font-stretch: semi-expanded; /* 112.5% */` |
| `font-stretch-expanded` | `font-stretch: expanded; /* 125% */` |
| `font-stretch-extra-expanded` | `font-stretch: extra-expanded; /* 150% */` |
| `font-stretch-ultra-expanded` | `font-stretch: ultra-expanded; /* 200% */` |
| `font-stretch-<percentage>` | `font-stretch: <percentage>;` |
| `font-stretch-(<custom-property>)` | `font-stretch: var(<custom-property>);` |
| `font-stretch-[<value>]` | `font-stretch: <value>;` |

## Examples

### Basic example

Use utilities like `font-stretch-condensed` and `font-stretch-expanded` to set the width of a font face:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          font-stretch-extra-condensed
        </span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-extra-condensed dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          font-stretch-condensed
        </span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-condensed dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-stretch-normal</span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-normal dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          font-stretch-expanded
        </span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-expanded dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          font-stretch-extra-expanded
        </span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-extra-expanded dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:font-stretch-extra-condensed,font-stretch-condensed,font-stretch-normal,font-stretch-expanded,font-stretch-extra-expanded] -->
<p class="font-stretch-extra-condensed">The quick brown fox...</p>
<p class="font-stretch-condensed">The quick brown fox...</p>
<p class="font-stretch-normal">The quick brown fox...</p>
<p class="font-stretch-expanded">The quick brown fox...</p>
<p class="font-stretch-extra-expanded">The quick brown fox...</p>
```

This only applies to fonts that have multiple width variations available, otherwise the browser selects the closest match.

### Using percentages

Use `font-stretch-<percentage>` utilities like `font-stretch-50%` and `font-stretch-125%` to set the width of a font face using a percentage:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-stretch-50%</span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-50% dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-stretch-100%</span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-100% dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-stretch-150%</span>
        <p className="font-[system-ui] text-xl font-medium text-gray-900 font-stretch-150% dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:font-stretch-50%,font-stretch-100%,font-stretch-150%] -->
<p class="font-stretch-50%">The quick brown fox...</p>
<p class="font-stretch-100%">The quick brown fox...</p>
<p class="font-stretch-150%">The quick brown fox...</p>
```

### Using a custom value

### Responsive design


---

# font-style

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-style*

| Clase | Propiedades CSS |
| :--- | :--- |
| `italic` | `font-style: italic;` |
| `not-italic` | `font-style: normal;` |

## Examples

### Italicizing text

Use the `italic` utility to make text italic:

  {
    <p className="text-center text-lg font-medium text-gray-900 italic dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:italic] -->
<p class="italic ...">The quick brown fox ...</p>
```

### Displaying text normally

Use the `not-italic` utility to display text normally:

  {
    <p className="text-center text-lg font-medium text-gray-900 not-italic dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:not-italic] -->
<p class="not-italic ...">The quick brown fox ...</p>
```

### Responsive design


---

# font-variant-numeric

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-variant-numeric*

| Clase | Propiedades CSS |
| :--- | :--- |
| `normal-nums` | `font-variant-numeric: normal;` |
| `ordinal` | `font-variant-numeric: ordinal;` |
| `slashed-zero` | `font-variant-numeric: slashed-zero;` |
| `lining-nums` | `font-variant-numeric: lining-nums;` |
| `oldstyle-nums` | `font-variant-numeric: oldstyle-nums;` |
| `proportional-nums` | `font-variant-numeric: proportional-nums;` |
| `tabular-nums` | `font-variant-numeric: tabular-nums;` |
| `diagonal-fractions` | `font-variant-numeric: diagonal-fractions;` |
| `stacked-fractions` | `font-variant-numeric: stacked-fractions;` |

## Examples

### Using ordinal glyphs

Use the `ordinal` utility to enable special glyphs for the ordinal markers in fonts that support them:

{<p className="text-center font-source text-lg text-gray-900 ordinal dark:text-gray-200">1st</p>}

```html
<!-- [!code classes:ordinal] -->
<p class="ordinal ...">1st</p>
```

### Using slashed zeroes

Use the `slashed-zero` utility to force a zero with a slash in fonts that support them:

{<p className="text-center font-source text-lg text-gray-900 slashed-zero dark:text-gray-200">0</p>}

```html
<!-- [!code classes:slashed-zero] -->
<p class="slashed-zero ...">0</p>
```

### Using lining figures

Use the `lining-nums` utility to use numeric glyphs that are aligned by their baseline in fonts that support them:

  {<p className="text-center font-source text-lg text-gray-900 lining-nums dark:text-gray-200">1234567890</p>}

```html
<!-- [!code classes:lining-nums] -->
<p class="lining-nums ...">1234567890</p>
```

### Using oldstyle figures

Use the `oldstyle-nums` utility to use numeric glyphs where some numbers have descenders in fonts that support them:

  {<p className="text-center font-source text-lg text-gray-900 oldstyle-nums dark:text-gray-200">1234567890</p>}

```html
<!-- [!code classes:oldstyle-nums] -->
<p class="oldstyle-nums ...">1234567890</p>
```

### Using proportional figures

Use the `proportional-nums` utility to use numeric glyphs that have proportional widths in fonts that support them:

  {
    <div className="max-w-xs text-right">
      <p className="font-source text-lg text-gray-900 proportional-nums dark:text-gray-200">12121</p>
      <p className="font-source text-lg text-gray-900 proportional-nums dark:text-gray-200">90909</p>
    </div>
  }

```html
<!-- [!code classes:proportional-nums] -->
<p class="proportional-nums ...">12121</p>
<p class="proportional-nums ...">90909</p>
```

### Using tabular figures

Use the `tabular-nums` utility to use numeric glyphs that have uniform/tabular widths in fonts that support them:

  {
    <div className="max-w-xs text-right">
      <p className="font-source text-lg text-gray-900 tabular-nums dark:text-gray-200">12121</p>
      <p className="font-source text-lg text-gray-900 tabular-nums dark:text-gray-200">90909</p>
    </div>
  }

```html
<!-- [!code classes:tabular-nums] -->
<p class="tabular-nums ...">12121</p>
<p class="tabular-nums ...">90909</p>
```

### Using diagonal fractions

Use the `diagonal-fractions` utility to replace numbers separated by a slash with common diagonal fractions in fonts that support them:

  {<p className="text-center font-source text-lg text-gray-900 diagonal-fractions dark:text-gray-200">1/2 3/4 5/6</p>}

```html
<!-- [!code classes:diagonal-fractions] -->
<p class="diagonal-fractions ...">1/2 3/4 5/6</p>
```

### Using stacked fractions

Use the `stacked-fractions` utility to replace numbers separated by a slash with common stacked fractions in fonts that support them:

  {
    <p className="text-center font-ubuntu-mono text-lg text-gray-900 stacked-fractions dark:text-gray-200">
      1/2 3/4 5/6
    </p>
  }

```html
<!-- [!code classes:stacked-fractions] -->
<p class="stacked-fractions ...">1/2 3/4 5/6</p>
```

### Stacking multiple utilities

The `font-variant-numeric` utilities are composable so you can enable multiple variants by combining them:

  {
    <dl className="mx-auto grid max-w-2xs grid-cols-2 text-gray-900 dark:text-gray-200">
      <dt className="border-b border-gray-200 py-2 dark:border-white/10">Subtotal</dt>
      <dd className="border-b border-gray-200 py-2 text-right slashed-zero tabular-nums dark:border-white/10">
        $100.00
      </dd>
      <dt className="border-b border-gray-200 py-2 dark:border-white/10">Tax</dt>
      <dd className="border-b border-gray-200 py-2 text-right slashed-zero tabular-nums dark:border-white/10">
        $14.50
      </dd>
      <dt className="py-2 font-medium">Total</dt>
      <dd className="py-2 text-right font-medium slashed-zero tabular-nums">$114.50</dd>
    </dl>
  }

```html
<!-- [!code classes:slashed-zero,tabular-nums] -->
<dl class="...">
  <dt class="...">Subtotal</dt>
  <dd class="text-right slashed-zero tabular-nums ...">$100.00</dd>
  <dt class="...">Tax</dt>
  <dd class="text-right slashed-zero tabular-nums ...">$14.50</dd>
  <dt class="...">Total</dt>
  <dd class="text-right slashed-zero tabular-nums ...">$114.50</dd>
</dl>
```

### Resetting numeric font variants

Use the `normal-nums` property to reset numeric font variants:

```html
<!-- [!code classes:slashed-zero,tabular-nums,normal-nums] -->
<p class="slashed-zero tabular-nums md:normal-nums ...">
  <!-- ... -->
</p>
```

### Responsive design


---

# font-weight

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/font-weight*

| Clase | Propiedades CSS |
| :--- | :--- |
| `font-thin` | `font-weight: 100;` |
| `font-extralight` | `font-weight: 200;` |
| `font-light` | `font-weight: 300;` |
| `font-normal` | `font-weight: 400;` |
| `font-medium` | `font-weight: 500;` |
| `font-semibold` | `font-weight: 600;` |
| `font-bold` | `font-weight: 700;` |
| `font-extrabold` | `font-weight: 800;` |
| `font-black` | `font-weight: 900;` |
| `font-(<custom-property>)` | `font-weight: var(<custom-property>);` |
| `font-[<value>]` | `font-weight: <value>;` |

## Examples

### Basic example

Use utilities like `font-thin` and `font-bold` to set the font weight of an element:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-light</span>
        <p className="text-lg font-light text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-normal</span>
        <p className="text-lg font-normal text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-medium</span>
        <p className="text-lg font-medium text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-semibold</span>
        <p className="text-lg font-semibold text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">font-bold</span>
        <p className="text-lg font-bold text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:font-light,font-normal,font-medium,font-semibold,font-bold] -->
<p class="font-light ...">The quick brown fox ...</p>
<p class="font-normal ...">The quick brown fox ...</p>
<p class="font-medium ...">The quick brown fox ...</p>
<p class="font-semibold ...">The quick brown fox ...</p>
<p class="font-bold ...">The quick brown fox ...</p>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# forced-color-adjust

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/forced-color-adjust*

| Clase | Propiedades CSS |
| :--- | :--- |
| `forced-color-adjust-auto` | `forced-color-adjust: auto;` |
| `forced-color-adjust-none` | `forced-color-adjust: none;` |

## Examples

### Opting out of forced colors

Use the `forced-color-adjust-none` utility to opt an element out of the colors enforced by forced colors mode. This is useful in situations where enforcing a limited color palette will degrade usability.

  {
    <div className="mx-auto max-w-sm overflow-clip rounded-lg border border-transparent bg-white shadow dark:border-white/10 dark:bg-white/5">
      <div className="aspect-h-3 aspect-w-3 overflow-hidden">
        
      </div>
      <div className="grid grid-cols-[1fr_auto] items-center gap-4 p-4">
        <div>
          <p className="font-medium text-gray-900 dark:text-white">Basic Tee</p>
          <p className="text-sm font-medium text-gray-900 dark:text-white">$35</p>
        </div>
        <fieldset>
          <legend className="sr-only">Choose a color</legend>
          <div className="grid grid-flow-col items-center gap-3 forced-color-adjust-none">
            <label className="relative -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-0.5 ring-0 focus:outline-none has-checked:ring-1 has-checked:ring-gray-400 has-checked:ring-offset-1">
              <input
                type="radio"
                name="color-choice"
                value="White"
                className="sr-only"
                aria-labelledby="color-choice-0-label"
              />
              <span id="color-choice-0-label" className="sr-only">
                White
              </span>
              <span
                aria-hidden="true"
                className="size-6 rounded-full border border-black/10 bg-white dark:border-white/10"
              ></span>
            </label>
            <label className="relative -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-0.5 ring-0 focus:outline-none has-checked:ring-1 has-checked:ring-gray-400 has-checked:ring-offset-1">
              <input type="radio" defaultChecked name="color-choice" value="Gray" className="sr-only" />
              <span id="color-choice-1-label" className="sr-only">
                Gray
              </span>
              <span
                aria-hidden="true"
                className="size-6 rounded-full border border-black/10 bg-gray-200 dark:border-white/10"
              ></span>
            </label>
            <label className="relative -m-0.5 flex cursor-pointer items-center justify-center rounded-full p-0.5 ring-0 focus:outline-none has-checked:ring-1 has-checked:ring-gray-900 has-checked:ring-offset-1">
              <input
                type="radio"
                name="color-choice"
                value="Black"
                className="sr-only"
                aria-labelledby="color-choice-2-label"
              />
              <span id="color-choice-2-label" className="sr-only">
                Black
              </span>
              <span
                aria-hidden="true"
                className="size-6 rounded-full border border-black/10 bg-gray-900 dark:border-white/10"
              ></span>
            </label>
          </div>
        </fieldset>
      </div>
    </div>
  }

```html
<!-- [!code classes:forced-color-adjust-none] -->
<form>
  <img src="/img/shirt.jpg" />
  <div>
    <h3>Basic Tee</h3>
    <h3>$35</h3>
    <fieldset>
      <legend class="sr-only">Choose a color</legend>
      <div class="forced-color-adjust-none ...">
        <label>
          <input class="sr-only" type="radio" name="color-choice" value="White" />
          <span class="sr-only">White</span>
          <span class="size-6 rounded-full border border-black/10 bg-white"></span>
        </label>
        <!-- ... -->
      </div>
    </fieldset>
  </div>
</form>
```

You can also use the [forced colors variant](/docs/hover-focus-and-other-states#forced-colors) to conditionally add styles when the user has enabled a forced color mode.

### Restoring forced colors

Use the `forced-color-adjust-auto` utility to make an element adhere to colors enforced by forced colors mode:

```html
<!-- [!code classes:lg:forced-color-adjust-auto] -->
<form>
  <fieldset class="forced-color-adjust-none lg:forced-color-adjust-auto ...">
    <legend>Choose a color:</legend>
    <select class="hidden lg:block">
      <option value="White">White</option>
      <option value="Gray">Gray</option>
      <option value="Black">Black</option>
    </select>
    <div class="lg:hidden">
      <label>
        <input class="sr-only" type="radio" name="color-choice" value="White" />
        <!-- ... -->
      </label>
      <!-- ... -->
    </div>
  </fieldset>
</form>
```

This can be useful if you want to undo the `forced-color-adjust-none` utility, for example on a larger screen size.

### Responsive design


---

# Functions and directives

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/functions-and-directives*

## Directives

Directives are custom Tailwind-specific [at-rules](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule) you can use in your CSS that offer special functionality for Tailwind CSS projects.

<h3 id="import-directive">
  <a href="#import-directive">@import</a>
</h3>

Use the `@import` directive to inline import CSS files, including Tailwind itself:

```css
/* [!code filename:CSS] */
@import "tailwindcss";
```

<h3 id="theme-directive">
  <a href="#theme-directive">@theme</a>
</h3>

Use the `@theme` directive to define your project's custom design tokens, like fonts, colors, and breakpoints:

```css
/* [!code filename:CSS] */
@theme {
  --font-display: "Satoshi", "sans-serif";

  --breakpoint-3xl: 120rem;

  --color-avocado-100: oklch(0.99 0 0);
  --color-avocado-200: oklch(0.98 0.04 113.22);
  --color-avocado-300: oklch(0.94 0.11 115.03);
  --color-avocado-400: oklch(0.92 0.19 114.08);
  --color-avocado-500: oklch(0.84 0.18 117.33);
  --color-avocado-600: oklch(0.53 0.12 118.34);

  --ease-fluid: cubic-bezier(0.3, 0, 0, 1);
  --ease-snappy: cubic-bezier(0.2, 0, 0, 1);

  /* ... */
}
```

Learn more about customizing your theme in the [theme variables documentation](/docs/theme).

<h3 id="source-directive">
  <a href="#source-directive">@source</a>
</h3>

Use the `@source` directive to explicitly specify source files that aren't picked up by Tailwind's automatic content detection:

```css
/* [!code filename:CSS] */
@source "../node_modules/@my-company/ui-lib";
```

Learn more about automatic content detection in the [detecting classes in source files documentation](/docs/detecting-classes-in-source-files).

<h3 id="utility-directive">
  <a href="#utility-directive">@utility</a>
</h3>

Use the `@utility` directive to add custom utilities to your project that work with variants like `hover`, `focus` and `lg`:

```css
/* [!code filename:CSS] */
@utility tab-4 {
  tab-size: 4;
}
```

Learn more about registering custom utilities in the [adding custom utilities documentation](/docs/adding-custom-styles#adding-custom-utilities).

<h3 id="variant-directive">
  <a href="#variant-directive">@variant</a>
</h3>

Use the `@variant` directive to apply a Tailwind variant to styles in your CSS:

```css
/* [!code filename:CSS] */
.my-element {
  background: white;

  /* [!code highlight:4] */
  @variant dark {
    background: black;
  }
}
```

Learn more using variants in the [using variants documentation](/docs/adding-custom-styles#using-variants).

<h3 id="custom-variant-directive">
  <a href="#custom-variant-directive">@custom-variant</a>
</h3>

Use the `@custom-variant` directive to add a custom variant in your project:

```css
/* [!code filename:CSS] */
@custom-variant theme-midnight (&:where([data-theme="midnight"] *));
```

This lets you write utilities `theme-midnight:bg-black` and `theme-midnight:text-white`.

Learn more about adding custom variants in the [adding custom variants documentation](/docs/adding-custom-styles#adding-custom-variants).

<h3 id="apply-directive">
  <a href="#apply-directive">@apply</a>
</h3>

Use the `@apply` directive to inline any existing utility classes into your own custom CSS:

```css
/* [!code filename:CSS] */
.select2-dropdown {
  /* [!code highlight:2] */
  @apply rounded-b-lg shadow-md;
}

.select2-search {
  /* [!code highlight:2] */
  @apply rounded border border-gray-300;
}

.select2-results__group {
  /* [!code highlight:2] */
  @apply text-lg font-bold text-gray-900;
}
```

This is useful when you need to write custom CSS (like to override the styles in a third-party library) but still want to work with your design tokens and use the same syntax you’re used to using in your HTML.

<h3 id="reference-directive">
  <a href="#reference-directive">@reference</a>
</h3>

If you want to use `@apply` or `@variant` in the `<style>` block of a Vue or Svelte component, or within CSS modules, you will need to import your theme variables, custom utilities, and custom variants to make those values available in that context.

To do this without duplicating any CSS in your output, use the `@reference` directive to import your main stylesheet for reference without actually including the styles:

```html
<!-- [!code filename:Vue] -->
<template>
  <h1>Hello world!</h1>
</template>

<style>
  /* [!code highlight:2] */
  @reference "../../app.css";

  h1 {
    @apply text-2xl font-bold text-red-500;
  }
</style>
```

If you’re just using the default theme with no customizations (e.g. by using things like `@theme`, `@custom-variant`, `@plugin`, etc…), you can import `tailwindcss` directly:

```html
<!-- [!code filename:Vue] -->
<template>
  <h1>Hello world!</h1>
</template>

<style>
  /* [!code highlight:2] */
  @reference "tailwindcss";

  h1 {
    @apply text-2xl font-bold text-red-500;
  }
</style>
```

### Subpath Imports

When using the CLI, Vite, or PostCSS the directives `@import`, `@reference`, `@plugin`, and `@config` all support [subpath imports](https://nodejs.org/api/packages.html#subpath-imports) which work similarly to bundler and TypeScript path aliases:

```json
// [!code filename:package.json]
{
  // ...
  "imports": {
    /* [!code highlight:2] */
    "#app.css": "./src/css/app.css"
  }
}
```

```html
<!-- [!code filename:Vue] -->
<template>
  <h1>Hello world!</h1>
</template>

<style>
  /* [!code highlight:2] */
  @reference "#app.css";

  h1 {
    @apply text-2xl font-bold text-red-500;
  }
</style>
```

## Functions

Tailwind provides the following build-time functions to make working with colors and the spacing scale easier.

<h3 id="alpha-function">
  <a href="#alpha-function">--alpha()</a>
</h3>

Use the `--alpha()` function to adjust the opacity of a color:

```css
/* [!code filename:Input CSS] */
.my-element {
  /* [!code highlight:2] */
  color: --alpha(var(--color-lime-300) / 50%);
}
```

```css
/* [!code filename:Compiled CSS] */
.my-element {
  color: color-mix(in oklab, var(--color-lime-300) 50%, transparent);
}
```

<h3 id="spacing-function">
  <a href="#spacing-function">--spacing()</a>
</h3>

Use the `--spacing()` function to generate a spacing value based on your theme:

```css
/* [!code filename:Input CSS] */
.my-element {
  /* [!code highlight:2] */
  margin: --spacing(4);
}
```

```css
/* [!code filename:Compiled CSS] */
.my-element {
  margin: calc(var(--spacing) * 4);
}
```

This can also be useful in arbitrary values, especially in combination with `calc()`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:py-[calc(--spacing(4)-1px)]] -->
<div class="py-[calc(--spacing(4)-1px)]">
  <!-- ... -->
</div>
```

## Compatibility

The following directives and functions exist solely for compatibility with Tailwind CSS v3.x.

The `@config` and `@plugin` directives may be used in conjunction with `@theme`, `@utility`, and other CSS-driven features. This can be used to incrementally move over your theme, custom configuration, utilities, variants, and presets to CSS. Things defined in CSS will be merged where possible and otherwise take precedence over those defined in configs, presets, and plugins.

<h3 id="config-directive">
  <a href="#config-directive">@config</a>
</h3>

Use the `@config` directive to load a legacy JavaScript-based configuration file:

```css
/* [!code filename:CSS] */
@config "../../tailwind.config.js";
```

The `corePlugins`, `safelist`, and `separator` options from the JavaScript-based config are not supported in v4.0. To safelist utilities in v4 use [`@source inline()`](/docs/detecting-classes-in-source-files#safelisting-specific-utilities).

<h3 id="plugin-directive">
  <a href="#plugin-directive">@plugin</a>
</h3>

Use the `@plugin` directive to load a legacy JavaScript-based plugin:

```css
/* [!code filename:CSS] */
@plugin "@tailwindcss/typography";
```

The `@plugin` directive accepts either a package name or a local path.

<h3 id="theme-function">
  <a href="#theme-function">theme()</a>
</h3>

Use the `theme()` function to access your Tailwind theme values using dot notation:

```css
/* [!code filename:CSS] */
.my-element {
  /* [!code highlight:2] */
  margin: theme(spacing.12);
}
```

This function is deprecated, and we recommend [using CSS theme variables](/docs/theme#using-your-theme-variables) instead.


---

# gap

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/gap*

| Clase | Propiedades CSS |
| :--- | :--- |
| `gap-<number>` | `gap: calc(var(--spacing) * <value>);` |
| `gap-px` | `gap: 1px;` |
| `gap-(<custom-property>)` | `gap: var(<custom-property>);` |
| `gap-[<value>]` | `gap: <value>;` |
| `gap-x-<number>` | `column-gap: calc(var(--spacing) * <value>);` |
| `gap-x-px` | `column-gap: 1px;` |
| `gap-x-(<custom-property>)` | `column-gap: var(<custom-property>);` |
| `gap-x-[<value>]` | `column-gap: <value>;` |
| `gap-y-<number>` | `row-gap: calc(var(--spacing) * <value>);` |
| `gap-y-px` | `row-gap: 1px;` |
| `gap-y-(<custom-property>)` | `row-gap: var(<custom-property>);` |
| `gap-y-[<value>]` | `row-gap: <value>;` |

## Examples

### Basic example

Use `gap-<number>` utilities like `gap-2` and `gap-4` to change the gap between both rows and columns in grid and flexbox layouts:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-2 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-violet-500 p-4">01</div>
        <div className="rounded-lg bg-violet-500 p-4">02</div>
        <div className="rounded-lg bg-violet-500 p-4">03</div>
        <div className="rounded-lg bg-violet-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:gap-4] -->
<div class="grid grid-cols-2 gap-4">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Changing row and column gaps independently

Use `gap-x-<number>` or `gap-y-<number>` utilities like `gap-x-8` and `gap-y-4` to change the gap between columns and rows independently:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-3 gap-x-8 gap-y-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-sky-500 p-4">01</div>
        <div className="rounded-lg bg-sky-500 p-4">02</div>
        <div className="rounded-lg bg-sky-500 p-4">03</div>
        <div className="rounded-lg bg-sky-500 p-4">04</div>
        <div className="rounded-lg bg-sky-500 p-4">05</div>
        <div className="rounded-lg bg-sky-500 p-4">06</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:gap-x-8,gap-y-4] -->
<div class="grid grid-cols-3 gap-x-8 gap-y-4">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Using a custom value

### Responsive design


---

# grid-auto-columns

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-auto-columns*

| Clase | Propiedades CSS |
| :--- | :--- |
| `auto-cols-auto` | `grid-auto-columns: auto;` |
| `auto-cols-min` | `grid-auto-columns: min-content;` |
| `auto-cols-max` | `grid-auto-columns: max-content;` |
| `auto-cols-fr` | `grid-auto-columns: minmax(0, 1fr);` |
| `auto-cols-<number>` | `grid-auto-columns: calc(var(--spacing) * <number>);` |
| `auto-cols-(<custom-property>)` | `grid-auto-columns: var(<custom-property>);` |
| `auto-cols-[<value>]` | `grid-auto-columns: <value>;` |

## Examples

### Basic example

Use utilities like `auto-cols-min` and `auto-cols-max` to control the size of implicitly-created grid columns:

```html
<!-- [!code classes:auto-cols-max] -->
<div class="grid auto-cols-max grid-flow-col">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Using a custom value

### Responsive design


---

# grid-auto-flow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-auto-flow*

| Clase | Propiedades CSS |
| :--- | :--- |
| `grid-flow-row` | `grid-auto-flow: row;` |
| `grid-flow-col` | `grid-auto-flow: column;` |
| `grid-flow-dense` | `grid-auto-flow: dense;` |
| `grid-flow-row-dense` | `grid-auto-flow: row dense;` |
| `grid-flow-col-dense` | `grid-auto-flow: column dense;` |

## Examples

### Basic example

Use utilities like `grid-flow-col` and `grid-flow-row-dense` to control how the auto-placement algorithm works for a grid layout:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-flow-row-dense grid-cols-3 grid-rows-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="col-span-2 rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">01</div>
        <div className="col-span-2 rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">02</div>
        <div className="rounded-lg bg-purple-500 p-4">03</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">04</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">05</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grid-flow-row-dense] -->
<div class="grid grid-flow-row-dense grid-cols-3 grid-rows-3 ...">
  <div class="col-span-2">01</div>
  <div class="col-span-2">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
</div>
```

### Responsive design


---

# grid-auto-rows

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-auto-rows*

| Clase | Propiedades CSS |
| :--- | :--- |
| `auto-rows-auto` | `grid-auto-rows: auto;` |
| `auto-rows-min` | `grid-auto-rows: min-content;` |
| `auto-rows-max` | `grid-auto-rows: max-content;` |
| `auto-rows-fr` | `grid-auto-rows: minmax(0, 1fr);` |
| `auto-rows-<number>` | `grid-auto-rows: calc(var(--spacing) * <number>);` |
| `auto-rows-(<custom-property>)` | `grid-auto-rows: var(<custom-property>);` |
| `auto-rows-[<value>]` | `grid-auto-rows: <value>;` |

## Examples

### Basic example

Use utilities like `auto-rows-min` and `auto-rows-max` to control the size of implicitly-created grid rows:

```html
<!-- [!code classes:auto-rows-max] -->
<div class="grid grid-flow-row auto-rows-max">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Using a custom value

### Responsive design


---

# grid-column

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-column*

| Clase | Propiedades CSS |
| :--- | :--- |
| `col-span-<number>` | `grid-column: span <number> / span <number>;` |
| `col-span-full` | `grid-column: 1 / -1;` |
| `col-span-(<custom-property>)` | `grid-column: span var(<custom-property>) / span var(<custom-property>);` |
| `col-span-[<value>]` | `grid-column: span <value> / span <value>;` |
| `col-start-<number>` | `grid-column-start: <number>;` |
| `-col-start-<number>` | `grid-column-start: calc(<number> * -1);` |
| `col-start-auto` | `grid-column-start: auto;` |
| `col-start-(<custom-property>)` | `grid-column-start: var(<custom-property>);` |
| `col-start-[<value>]` | `grid-column-start: <value>;` |
| `col-end-<number>` | `grid-column-end: <number>;` |
| `-col-end-<number>` | `grid-column-end: calc(<number> * -1);` |
| `col-end-auto` | `grid-column-end: auto;` |
| `col-end-(<custom-property>)` | `grid-column-end: var(<custom-property>);` |
| `col-end-[<value>]` | `grid-column-end: <value>;` |
| `col-auto` | `grid-column: auto;` |
| `col-<number>` | `grid-column: <number>;` |
| `-col-<number>` | `grid-column: calc(<number> * -1);` |
| `col-(<custom-property>)` | `grid-column: var(<custom-property>);` |
| `col-[<value>]` | `grid-column: <value>;` |

## Examples

### Spanning columns

Use `col-span-<number>` utilities like `col-span-2` and `col-span-4` to make an element span _n_ columns:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-3 gap-4 text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">01</div>
        <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">02</div>
        <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">03</div>
        <div className="col-span-2 rounded-lg bg-indigo-500 p-4">04</div>
        <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">05</div>
        <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-400">06</div>
        <div className="col-span-2 rounded-lg bg-indigo-500 p-4">07</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:col-span-2] -->
<div class="grid grid-cols-3 gap-4">
  <div class="...">01</div>
  <div class="...">02</div>
  <div class="...">03</div>
  <div class="col-span-2 ...">04</div>
  <div class="...">05</div>
  <div class="...">06</div>
  <div class="col-span-2 ...">07</div>
</div>
```

### Starting and ending lines

Use `col-start-<number>` or `col-end-<number>` utilities like `col-start-2` and `col-end-3` to make an element start or end at the _nth_ grid line:

  {
    <div className="grid grid-cols-6 gap-4 text-center font-mono text-sm leading-6 font-bold text-white">
      
      <div className="col-span-4 col-start-2 rounded-lg bg-sky-500 p-4">01</div>
      
      <div className="col-start-1 col-end-3 rounded-lg bg-sky-500 p-4">02</div>
      
      
      <div className="col-span-2 col-end-7 rounded-lg bg-sky-500 p-4">03</div>
      <div className="col-start-1 col-end-7 rounded-lg bg-sky-500 p-4">04</div>
    </div>
  }

```html
<!-- [!code classes:col-start-1,col-start-2,col-end-3,col-end-7] -->
<div class="grid grid-cols-6 gap-4">
  <div class="col-span-4 col-start-2 ...">01</div>
  <div class="col-start-1 col-end-3 ...">02</div>
  <div class="col-span-2 col-end-7 ...">03</div>
  <div class="col-start-1 col-end-7 ...">04</div>
</div>
```

These can also be combined with the `col-span-<number>` utilities to span a specific number of columns.

### Using a custom value

### Responsive design


---

# grid-row

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-row*

| Clase | Propiedades CSS |
| :--- | :--- |
| `row-span-<number>` | `grid-row: span <number> / span <number>;` |
| `row-span-full` | `grid-row: 1 / -1;` |
| `row-span-(<custom-property>)` | `grid-row: span var(<custom-property>) / span var(<custom-property>);` |
| `row-span-[<value>]` | `grid-row: span <value> / span <value>;` |
| `row-start-<number>` | `grid-row-start: <number>;` |
| `-row-start-<number>` | `grid-row-start: calc(<number> * -1);` |
| `row-start-auto` | `grid-row-start: auto;` |
| `row-start-(<custom-property>)` | `grid-row-start: var(<custom-property>);` |
| `row-start-[<value>]` | `grid-row-start: <value>;` |
| `row-end-<number>` | `grid-row-end: <number>;` |
| `-row-end-<number>` | `grid-row-end: calc(<number> * -1);` |
| `row-end-auto` | `grid-row-end: auto;` |
| `row-end-(<custom-property>)` | `grid-row-end: var(<custom-property>);` |
| `row-end-[<value>]` | `grid-row-end: <value>;` |
| `row-auto` | `grid-row: auto;` |
| `row-<number>` | `grid-row: <number>;` |
| `-row-<number>` | `grid-row: calc(<number> * -1);` |
| `row-(<custom-property>)` | `grid-row: var(<custom-property>);` |
| `row-[<value>]` | `grid-row: <value>;` |

## Examples

### Spanning rows

Use `row-span-<number>` utilities like `row-span-2` and `row-span-4` to make an element span _n_ rows:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-flow-col grid-rows-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="row-span-3 grid place-content-center rounded-lg bg-fuchsia-500 p-4">01</div>
        <div className="col-span-2 grid place-content-center rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          02
        </div>
        <div className="col-span-2 row-span-2 grid place-content-center rounded-lg bg-fuchsia-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:row-span-2,row-span-3] -->
<div class="grid grid-flow-col grid-rows-3 gap-4">
  <div class="row-span-3 ...">01</div>
  <div class="col-span-2 ...">02</div>
  <div class="col-span-2 row-span-2 ...">03</div>
</div>
```

### Starting and ending lines

Use `row-start-<number>` or `row-end-<number>` utilities like `row-start-2` and `row-end-3` to make an element start or end at the _nth_ grid line:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-flow-col grid-rows-3 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="row-span-2 row-start-2 grid place-content-center rounded-lg bg-blue-500 p-4 sm:p-12">01</div>
        <div className="row-span-2 row-end-3 grid place-content-center rounded-lg bg-blue-500 p-4 sm:p-12">02</div>
        <div className="row-start-1 row-end-4 grid place-content-center rounded-lg bg-blue-500 p-4 sm:p-12">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:row-start-1,row-start-2,row-end-3,row-end-4] -->
<div class="grid grid-flow-col grid-rows-3 gap-4">
  <div class="row-span-2 row-start-2 ...">01</div>
  <div class="row-span-2 row-end-3 ...">02</div>
  <div class="row-start-1 row-end-4 ...">03</div>
</div>
```

These can also be combined with the `row-span-<number>` utilities to span a specific number of rows.

### Using a custom value

### Responsive design


---

# grid-template-columns

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-template-columns*

| Clase | Propiedades CSS |
| :--- | :--- |
| `grid-cols-<number>` | `grid-template-columns: repeat(<number>, minmax(0, 1fr));` |
| `grid-cols-none` | `grid-template-columns: none;` |
| `grid-cols-subgrid` | `grid-template-columns: subgrid;` |
| `grid-cols-[<value>]` | `grid-template-columns: <value>;` |
| `grid-cols-(<custom-property>)` | `grid-template-columns: var(<custom-property>);` |

## Examples

### Specifying the grid columns

Use `grid-cols-<number>` utilities like `grid-cols-2` and `grid-cols-4` to create grids with _n_ equally sized columns:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-4 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-fuchsia-500 p-4">01</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">02</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">03</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">04</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">05</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">06</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">07</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">08</div>
        <div className="rounded-lg bg-fuchsia-500 p-4">09</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grid-cols-4] -->
<div class="grid grid-cols-4 gap-4">
  <div>01</div>
  <!-- ... -->
  <div>09</div>
</div>
```

### Implementing a subgrid

Use the `grid-cols-subgrid` utility to adopt the column tracks defined by the item's parent:

  {
    <div className="grid grid-cols-4 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-900">01</div>
      <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-900">02</div>
      <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-900">03</div>
      <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-900">04</div>
      <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-900">05</div>
      <div className="col-span-3 grid grid-cols-subgrid gap-4">
        
        <div className="rounded-lg bg-pink-500 p-4">06</div>
        
      </div>
    </div>
  }

```html
<!-- [!code classes:grid-cols-subgrid] -->
<div class="grid grid-cols-4 gap-4">
  <div>01</div>
  <!-- ... -->
  <div>05</div>
  <div class="col-span-3 grid grid-cols-subgrid gap-4">
    <div class="col-start-2">06</div>
  </div>
</div>
```

### Using a custom value

### Responsive design


---

# grid-template-rows

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/grid-template-rows*

| Clase | Propiedades CSS |
| :--- | :--- |
| `grid-rows-<number>` | `grid-template-rows: repeat(<number>, minmax(0, 1fr));` |
| `grid-rows-none` | `grid-template-rows: none;` |
| `grid-rows-subgrid` | `grid-template-rows: subgrid;` |
| `grid-rows-[<value>]` | `grid-template-rows: <value>;` |
| `grid-rows-(<custom-property>)` | `grid-template-rows: var(<custom-property>);` |

## Examples

### Specifying the grid rows

Use `grid-rows-<number>` utilities like `grid-rows-2` and `grid-rows-4` to create grids with _n_ equally sized rows:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-flow-col grid-rows-4 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-pink-500 p-4">01</div>
        <div className="rounded-lg bg-pink-500 p-4">02</div>
        <div className="rounded-lg bg-pink-500 p-4">03</div>
        <div className="rounded-lg bg-pink-500 p-4">04</div>
        <div className="rounded-lg bg-pink-500 p-4">05</div>
        <div className="rounded-lg bg-pink-500 p-4">06</div>
        <div className="rounded-lg bg-pink-500 p-4">07</div>
        <div className="rounded-lg bg-pink-500 p-4">08</div>
        <div className="rounded-lg bg-pink-500 p-4">09</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:grid-rows-4] -->
<div class="grid grid-flow-col grid-rows-4 gap-4">
  <div>01</div>
  <!-- ... -->
  <div>09</div>
</div>
```

### Implementing a subgrid

Use the `grid-rows-subgrid` utility to adopt the row tracks defined by the item's parent:

  {
    <div className="grid grid-flow-col grid-rows-4 gap-4 rounded-lg text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">01</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">02</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">03</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">04</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">05</div>
      <div className="row-span-3 grid grid-rows-subgrid gap-4">
        
        <div className="grid h-14 items-center justify-center rounded-lg bg-fuchsia-500">06</div>
        
      </div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">07</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">08</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">09</div>
      <div className="grid h-14 items-center justify-center rounded-lg bg-indigo-300 dark:bg-indigo-900">10</div>
    </div>
  }

```html
<!-- [!code classes:grid-rows-subgrid] -->
<div class="grid grid-flow-col grid-rows-4 gap-4">
  <div>01</div>
  <!-- ... -->
  <div>05</div>
  <div class="row-span-3 grid grid-rows-subgrid gap-4">
    <div class="row-start-2">06</div>
  </div>
  <div>07</div>
  <!-- ... -->
  <div>10</div>
</div>
```

### Using a custom value

### Responsive design


---

# height

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/height*

| Clase | Propiedades CSS |
| :--- | :--- |
| `h-<number>` | `height: calc(var(--spacing) * <number>);` |
| `h-<fraction>` | `height: calc(<fraction> * 100%);` |
| `h-auto` | `height: auto;` |
| `h-px` | `height: 1px;` |
| `h-full` | `height: 100%;` |
| `h-screen` | `height: 100vh;` |
| `h-dvh` | `height: 100dvh;` |
| `h-dvw` | `height: 100dvw;` |
| `h-lvh` | `height: 100lvh;` |
| `h-lvw` | `height: 100lvw;` |
| `h-svh` | `height: 100svh;` |
| `h-svw` | `height: 100svw;` |
| `h-min` | `height: min-content;` |
| `h-max` | `height: max-content;` |
| `h-fit` | `height: fit-content;` |
| `h-lh` | `height: 1lh;` |
| `h-(<custom-property>)` | `height: var(<custom-property>);` |
| `h-[<value>]` | `height: <value>;` |
| `size-<number>` | `width: calc(var(--spacing) * <number>);\nheight: calc(var(--spacing) * <number>);` |
| `size-<fraction>` | `width: calc(<fraction> * 100%);\nheight: calc(<fraction> * 100%);` |
| `size-auto` | `width: auto;\nheight: auto;` |
| `size-px` | `width: 1px;\nheight: 1px;` |
| `size-full` | `width: 100%;\nheight: 100%;` |
| `size-dvw` | `width: 100dvw;\nheight: 100dvw;` |
| `size-dvh` | `width: 100dvh;\nheight: 100dvh;` |
| `size-lvw` | `width: 100lvw;\nheight: 100lvw;` |
| `size-lvh` | `width: 100lvh;\nheight: 100lvh;` |
| `size-svw` | `width: 100svw;\nheight: 100svw;` |
| `size-svh` | `width: 100svh;\nheight: 100svh;` |
| `size-min` | `width: min-content;\nheight: min-content;` |
| `size-max` | `width: max-content;\nheight: max-content;` |
| `size-fit` | `width: fit-content;\nheight: fit-content;` |
| `size-(<custom-property>)` | `width: var(<custom-property>);\nheight: var(<custom-property>);` |
| `size-[<value>]` | `width: <value>;\nheight: <value>;` |

## Examples

### Basic example

Use `h-<number>` utilities like `h-24` and `h-64` to set an element to a fixed height based on the spacing scale:

  {
    <div className="flex items-end justify-center space-x-4 font-mono text-xs font-bold text-white">
      <div className="relative flex h-96 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-96</div>
      </div>
      <div className="relative flex h-80 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-80</div>
      </div>
      <div className="relative flex h-64 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-64</div>
      </div>
      <div className="relative flex h-48 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-48</div>
      </div>
      <div className="relative flex h-40 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-40</div>
      </div>
      <div className="relative flex h-32 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-32</div>
      </div>
      <div className="relative flex h-24 w-8 items-end justify-center rounded-lg bg-blue-500">
        <div className="mb-4 -rotate-90 text-left text-nowrap">h-24</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:h-96,h-80,h-64,h-48,h-40,h-32,h-24] -->
<div class="h-96 ...">h-96</div>
<div class="h-80 ...">h-80</div>
<div class="h-64 ...">h-64</div>
<div class="h-48 ...">h-48</div>
<div class="h-40 ...">h-40</div>
<div class="h-32 ...">h-32</div>
<div class="h-24 ...">h-24</div>
```

### Using a percentage

Use `h-full` or `h-<fraction>` utilities like `h-1/2` and `h-2/5` to give an element a percentage-based height:

  {
    <div className="flex h-96 items-end justify-center space-x-4 font-mono text-xs font-bold text-white">
      <div className="relative flex h-full items-end">
        
        <div className="relative flex h-full w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-6 -rotate-90 text-left text-nowrap">h-full</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex h-9/10 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-6 -rotate-90 text-left text-nowrap">h-9/10</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex h-3/4 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-6 -rotate-90 text-left text-nowrap">h-3/4</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex h-1/2 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-6 -rotate-90 text-left text-nowrap">h-1/2</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex h-1/3 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-6 -rotate-90 text-left text-nowrap">h-1/3</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:h-9/10,h-3/4,h-1/2,h-1/3,h-full] -->
<div class="h-full ...">h-full</div>
<div class="h-9/10 ...">h-9/10</div>
<div class="h-3/4 ...">h-3/4</div>
<div class="h-1/2 ...">h-1/2</div>
<div class="h-1/3 ...">h-1/3</div>
```

### Matching viewport

Use the `h-screen` utility to make an element span the entire height of the viewport:

```html
<!-- [!code classes:h-screen] -->
<div class="h-screen">
  <!-- ... -->
</div>
```

### Matching dynamic viewport

Use the `h-dvh` utility to make an element span the entire height of the viewport, which changes as the browser UI expands or contracts:

  {}

```html
<!-- [!code classes:h-dvh] -->
<div class="h-dvh">
  <!-- ... -->
</div>
```

### Matching large viewport

Use the `h-lvh` utility to set an element's height to the largest possible height of the viewport:

  {}

```html
<!-- [!code classes:h-lvh] -->
<div class="h-lvh">
  <!-- ... -->
</div>
```

### Matching small viewport

Use the `h-svh` utility to set an element's height to the smallest possible height of the viewport:

  {}

```html
<!-- [!code classes:h-svh] -->
<div class="h-svh">
  <!-- ... -->
</div>
```

### Setting both width and height

Use utilities like `size-px`, `size-4`, and `size-full` to set both the width and height of an element at the same time:

  {
    <div className="grid grid-flow-col justify-center gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="grid size-16 items-center justify-center rounded-lg bg-indigo-500">size-16</div>
      <div className="grid size-20 items-center justify-center rounded-lg bg-indigo-500">size-20</div>
      <div className="grid size-24 items-center justify-center rounded-lg bg-indigo-500">size-24</div>
      <div className="hidden size-32 items-center justify-center rounded-lg bg-indigo-500 sm:grid">size-32</div>
      <div className="hidden size-40 items-center justify-center rounded-lg bg-indigo-500 md:grid">size-40</div>
    </div>
  }

```html
<!-- [!code classes:size-16,size-20,size-24,size-32,size-40] -->
<div class="size-16 ...">size-16</div>
<div class="size-20 ...">size-20</div>
<div class="size-24 ...">size-24</div>
<div class="size-32 ...">size-32</div>
<div class="size-40 ...">size-40</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# Hover, focus, and other states

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/hover-focus-and-other-states*

Every utility class in Tailwind can be applied _conditionally_ by adding a variant to the beginning of the class name that describes the condition you want to target.

For example, to apply the `bg-sky-700` class on hover, use the `hover:bg-sky-700` class:

  {
    <div className="grid place-items-center">
      <button className="rounded-full bg-sky-500 px-5 py-2 text-sm leading-5 font-semibold text-white hover:bg-sky-700">
        Save changes
      </button>
    </div>
  }

```html
<!-- [!code classes:hover:bg-sky-700] -->
<button class="bg-sky-500 hover:bg-sky-700 ...">Save changes</button>
```

<details className="mb-10 rounded-xl border border-gray-200 px-6 py-3 prose open:pb-5 dark:prose-dark dark:border-gray-800">
<summary className="font-medium cursor-default select-none text-gray-900 dark:text-gray-200">How does this compare to traditional CSS?</summary>

When writing CSS the traditional way, a single class name would do different things based on the current state:

{<>Traditionally the same class name applies different styles on hover</>}

```css
.btn-primary {
  background-color: #0ea5e9;
}

.btn-primary:hover {
  background-color: #0369a1;
}
```

In Tailwind, rather than adding the styles for a hover state to an existing class, you add another class to the element that _only_ does something on hover:

{<>In Tailwind, separate classes are used for the default state and the hover state</>}

```css
.bg-sky-500 {
  background-color: #0ea5e9;
}

.hover\:bg-sky-700:hover {
  background-color: #0369a1;
}
```

Notice how `hover:bg-sky-700` _only_ defines styles for the `:hover` state? It does nothing by default, but as soon as you hover over an element with that class, the background color will change to `sky-700`.

This is what we mean when we say a utility class can be applied _conditionally_ — by using variants you can control exactly how your design behaves in different states, without ever leaving your HTML.

</details>

Tailwind includes variants for just about everything you'll ever need, including:

- [Pseudo-classes](#pseudo-classes), like `:hover`, `:focus`, `:first-child`, and `:required`
- [Pseudo-elements](#pseudo-elements), like `::before`, `::after`, `::placeholder`, and `::selection`
- [Media and feature queries](#media-and-feature-queries), like responsive breakpoints, dark mode, and `prefers-reduced-motion`
- [Attribute selectors](#attribute-selectors), like `[dir="rtl"]` and `[open]`
- [Child selectors](#child-selectors), like `& > *` and `& *`

These variants can even be stacked to target more specific situations, for example changing the background color in dark mode, at the medium breakpoint, on hover:

```html
<!-- [!code classes:dark:md:hover:bg-fuchsia-600] -->
<button class="dark:md:hover:bg-fuchsia-600 ...">Save changes</button>
```

In this guide you'll learn about every variant available in the framework, how to use them with your own custom classes, and even how to create your own.

## Pseudo-classes

### :hover, :focus, and :active

Style elements on hover, focus, and active using the `hover`, `focus`, and `active` variants:

  {
    <div className="grid place-items-center">
      <button
        type="button"
        className="rounded-full bg-violet-500 px-5 py-2 text-sm leading-5 font-semibold text-white hover:bg-violet-600 focus:outline-2 focus:outline-offset-2 focus:outline-violet-500 active:bg-violet-700"
      >
        Save changes
      </button>
    </div>
  }

```html
<!-- [!code classes:hover:bg-violet-600,focus:outline-2,focus:outline-offset-2,focus:outline-violet-500,active:bg-violet-700] -->
<!-- prettier-ignore -->
<button class="bg-violet-500 hover:bg-violet-600 focus:outline-2 focus:outline-offset-2 focus:outline-violet-500 active:bg-violet-700 ...">
  Save changes
</button>
```

Tailwind also includes variants for other interactive states like `:visited`, `:focus-within`, `:focus-visible`, and more.

See the [pseudo-class reference](#pseudo-class-reference) for a complete list of available pseudo-class variants.

### :first, :last, :odd, and :even

Style an element when it is the first-child or last-child using the `first` and `last` variants:

  {
    <div className="px-4">
      <div className="mx-auto max-w-md border-x border-x-gray-200 dark:border-x-gray-800 dark:bg-gray-950/10">
        <ul role="list" className="divide-y divide-gray-200 p-6 dark:divide-gray-800">
          <li className="flex py-4 first:pt-0 last:pb-0">
            <img
              className="h-10 w-10 rounded-full"
              src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
              alt=""
            />
            <div className="ml-3 overflow-hidden">
              <p className="text-sm font-medium text-gray-900 dark:text-white">Kristen Ramos</p>
              <p className="truncate text-sm text-gray-500 dark:text-gray-400">kristen.ramos@example.com</p>
            </div>
          </li>
          <li className="flex py-4 first:pt-0 last:pb-0">
            <img
              className="h-10 w-10 rounded-full"
              src="https://images.unsplash.com/photo-1463453091185-61582044d556?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
              alt=""
            />
            <div className="ml-3 overflow-hidden">
              <p className="text-sm font-medium text-gray-900 dark:text-white">Floyd Miles</p>
              <p className="truncate text-sm text-gray-500 dark:text-gray-400">floyd.miles@example.com</p>
            </div>
          </li>
          <li className="flex py-4 first:pt-0 last:pb-0">
            <img
              className="h-10 w-10 rounded-full"
              src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
              alt=""
            />
            <div className="ml-3 overflow-hidden">
              <p className="text-sm font-medium text-gray-900 dark:text-white">Courtney Henry</p>
              <p className="truncate text-sm text-gray-500 dark:text-gray-400">courtney.henry@example.com</p>
            </div>
          </li>
          <li className="flex py-4 first:pt-0 last:pb-0">
            <img
              className="h-10 w-10 rounded-full"
              src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
              alt=""
            />
            <div className="ml-3 overflow-hidden">
              <p className="text-sm font-medium text-gray-900 dark:text-white">Ted Fox</p>
              <p className="truncate text-sm text-gray-500 dark:text-gray-400">ted.fox@example.com</p>
            </div>
          </li>
        </ul>
      </div>
    </div>
  }

```svelte
<!-- [!code classes:first:pt-0,last:pb-0] -->
<ul role="list">
  {#each people as person}
    <!-- Remove top/bottom padding when first/last child -->
    <li class="flex py-4 first:pt-0 last:pb-0">
      <img class="h-10 w-10 rounded-full" src={person.imageUrl} alt="" />
      <div class="ml-3 overflow-hidden">
        <p class="text-sm font-medium text-gray-900 dark:text-white">{person.name}</p>
        <p class="truncate text-sm text-gray-500 dark:text-gray-400">{person.email}</p>
      </div>
    </li>
  {/each}
</ul>
```

You can also style an element when it's an odd or even child using the `odd` and `even` variants:

  {
    <div className="">
      <div className="border-y border-y-gray-200 bg-white dark:border-y-gray-800 dark:bg-gray-950">
        <div>
          <div className="inline-block min-w-full align-middle">
            <div className="overflow-hidden">
              <table className="min-w-full">
                <thead className="border-b border-gray-200 bg-gray-50 dark:border-gray-800 dark:bg-gray-950">
                  <tr>
                    <th scope="col" className="px-6 py-3 text-left text-sm font-medium text-gray-900 dark:text-white">
                      Name
                    </th>
                    <th scope="col" className="px-6 py-3 text-left text-sm font-medium text-gray-900 dark:text-white">
                      Title
                    </th>
                    <th scope="col" className="px-6 py-3 text-left text-sm font-medium text-gray-900 dark:text-white">
                      Email
                    </th>
                  </tr>
                </thead>
                <tbody>
                  <tr className="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
                    <td className="px-6 py-4 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white">
                      Jane Cooper
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      Regional Paradigm Technician
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      jane.cooper@example.com
                    </td>
                  </tr>
                  <tr className="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
                    <td className="px-6 py-4 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white">
                      Cody Fisher
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      Product Directives Officer
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      cody.fisher@example.com
                    </td>
                  </tr>
                  <tr className="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
                    <td className="px-6 py-4 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white">
                      Leonard Krasner
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      Senior Designer
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      leonard.krasner@example.com
                    </td>
                  </tr>
                  <tr className="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
                    <td className="px-6 py-4 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white">
                      Emily Selman
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      VP, Hardware Engineering
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      emily.selman@example.com
                    </td>
                  </tr>
                  <tr className="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
                    <td className="px-6 py-4 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white">
                      Anna Roberts
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      Chief Strategy Officer
                    </td>
                    <td className="px-6 py-4 text-sm whitespace-nowrap text-gray-600 dark:text-gray-400">
                      anna.roberts@example.com
                    </td>
                  </tr>
                </tbody>
              </table>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```svelte
<!-- [!code classes:odd:bg-white,even:bg-gray-50,dark:odd:bg-gray-900/50,dark:even:bg-gray-950] -->
<table>
  <!-- ... -->
  <tbody>
    {#each people as person}
      <!-- Use different background colors for odd and even rows -->
      <tr class="odd:bg-white even:bg-gray-50 dark:odd:bg-gray-900/50 dark:even:bg-gray-950">
        <td>{person.name}</td>
        <td>{person.title}</td>
        <td>{person.email}</td>
      </tr>
    {/each}
  </tbody>
</table>
```

Use the `nth-*` and `nth-last-*` variants to style children based on their position in the list:

```html
<!-- [!code classes:nth-3:underline,nth-last-5:underline,nth-of-type-4:underline,nth-last-of-type-6:underline] -->
<div class="nth-3:underline">
  <!-- ... -->
</div>
<div class="nth-last-5:underline">
  <!-- ... -->
</div>
<div class="nth-of-type-4:underline">
  <!-- ... -->
</div>
<div class="nth-last-of-type-6:underline">
  <!-- ... -->
</div>
```

You can pass any number you want to these by default, and use arbitrary values for more complex expressions like `nth-[2n+1_of_li]`.

Tailwind also includes variants for other structural pseudo-classes like `:only-child`, `:first-of-type`, `:empty`, and more.

See the [pseudo-class reference](#pseudo-class-reference) for a complete list of available pseudo-class variants.

### :required and :disabled

Style form elements in different states using variants like `required`, `invalid`, and `disabled`:

  {
    <div className="mx-auto max-w-md border-x border-x-gray-200 px-6 py-5 dark:border-x-gray-800 dark:bg-gray-950/10">
      <form>
        <div>
          <label htmlFor="username" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
            Username
          </label>
          <div className="mt-1">
            <input
              type="text"
              name="username"
              id="username"
              className="block w-full rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm invalid:border-pink-500 invalid:text-pink-600 focus:border-sky-500 focus:outline focus:outline-sky-500 focus:invalid:border-pink-500 focus:invalid:outline-pink-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none sm:text-sm dark:disabled:border-gray-700 dark:disabled:bg-gray-800/20"
              defaultValue="tbone"
              disabled
            />
          </div>
        </div>
        <div className="mt-6">
          <label htmlFor="email" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
            Email
          </label>
          <div className="mt-1">
            <input
              type="email"
              name="email"
              id="email-1"
              className="block w-full rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm invalid:border-pink-500 invalid:text-pink-600 focus:border-sky-500 focus:outline focus:outline-sky-500 focus:invalid:border-pink-500 focus:invalid:outline-pink-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none sm:text-sm dark:disabled:border-gray-700 dark:disabled:bg-gray-800/20"
              defaultValue="george@krugerindustrial."
              placeholder="you@example.com"
            />
          </div>
        </div>
        <div className="mt-6">
          <label htmlFor="password" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
            Password
          </label>
          <div className="mt-1">
            <input
              type="password"
              name="password"
              id="password"
              autoComplete="none"
              className="block w-full rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm invalid:border-pink-500 invalid:text-pink-600 focus:border-sky-500 focus:outline focus:outline-sky-500 focus:invalid:border-pink-500 focus:invalid:outline-pink-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none sm:text-sm dark:disabled:border-gray-700 dark:disabled:bg-gray-800/20"
              defaultValue="Bosco"
            />
          </div>
        </div>
        <div className="mt-6 text-right">
          <button className="rounded-md bg-sky-500 px-5 py-2.5 text-sm leading-5 font-semibold text-white hover:bg-sky-700">
            Save changes
          </button>
        </div>
      </form>
    </div>
  }

```html
<!-- [!code classes:invalid:border-pink-500,invalid:text-pink-600,focus:border-sky-500,focus:outline,focus:outline-sky-500,focus:invalid:border-pink-500,focus:invalid:outline-pink-500,disabled:border-gray-200,disabled:bg-gray-50,disabled:text-gray-500,disabled:shadow-none,dark:disabled:border-gray-700,dark:disabled:bg-gray-800/20] -->
<input
  type="text"
  value="tbone"
  disabled
  class="invalid:border-pink-500 invalid:text-pink-600 focus:border-sky-500 focus:outline focus:outline-sky-500 focus:invalid:border-pink-500 focus:invalid:outline-pink-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none dark:disabled:border-gray-700 dark:disabled:bg-gray-800/20 ..."
/>
```

Using variants for this sort of thing can reduce the amount of conditional logic in your templates, letting you use the same set of classes regardless of what state an input is in and letting the browser apply the right styles for you.

Tailwind also includes variants for other form states like `:read-only`, `:indeterminate`, `:checked`, and more.

See the [pseudo-class reference](#pseudo-class-reference) for a complete list of available pseudo-class variants.

### :has()

Use the `has-*` variant to style an element based on the state or content of its descendants:

  {
    <div className="mx-auto max-w-md border-x border-x-gray-200 px-4 py-6 text-gray-700 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-200">
      <fieldset>
        <legend className="text-base font-semibold text-gray-900 dark:text-white">Payment method</legend>
        <div className="mt-4 space-y-2">
          <label
            htmlFor="apple"
            className="grid grid-cols-[24px_1fr_auto] items-center gap-6 rounded-lg p-4 ring-1 ring-transparent hover:bg-gray-100 has-checked:bg-indigo-50 has-checked:text-indigo-800 has-checked:ring-indigo-200 dark:hover:bg-white/5 dark:has-checked:bg-indigo-950 dark:has-checked:text-indigo-200 dark:has-checked:ring-indigo-900"
          >
            <svg className="w-8" fill="currentColor" viewBox="0 0 24 13">
              <path d="M3.96299 1.735C3.22833 1.73504 2.50814 1.9393 1.88285 2.32497C1.25756 2.71063 0.751781 3.26252 0.42199 3.919C0.144511 4.47115 0 5.08054 0 5.6985C0 6.31645 0.144511 6.92584 0.42199 7.478C0.751781 8.13447 1.25756 8.68636 1.88285 9.07202C2.50814 9.45769 3.22833 9.66195 3.96299 9.662C5.03299 9.662 5.93299 9.31 6.58999 8.705C7.33799 8.015 7.76999 6.995 7.76999 5.789C7.76976 5.51882 7.74634 5.24916 7.69999 4.983H3.96399V6.509H6.10399C6.06043 6.75276 5.96798 6.98519 5.83221 7.19228C5.69644 7.39937 5.52016 7.57684 5.31399 7.714C4.95799 7.955 4.49999 8.093 3.96399 8.093C2.92999 8.093 2.05299 7.396 1.73899 6.457C1.57315 5.96493 1.57315 5.43207 1.73899 4.94C2.05299 4 2.92999 3.304 3.96399 3.304C4.52899 3.29475 5.07496 3.50811 5.48399 3.898L6.61599 2.768C5.89873 2.09384 4.94728 1.72362 3.96299 1.735ZM10.464 2.285V9.185H11.35V6.39H12.815C13.418 6.39 13.925 6.194 14.337 5.802C14.5421 5.61815 14.705 5.39214 14.8146 5.13945C14.9242 4.88676 14.9779 4.61337 14.972 4.338C14.9762 4.06405 14.9216 3.79238 14.8121 3.54125C14.7026 3.29011 14.5406 3.06533 14.337 2.882C14.1354 2.68674 13.897 2.53337 13.6358 2.43073C13.3746 2.32809 13.0956 2.27822 12.815 2.284L10.464 2.285ZM12.891 3.135C13.0456 3.13769 13.1981 3.17139 13.3395 3.23408C13.4808 3.29678 13.6082 3.3872 13.714 3.5C13.8267 3.60959 13.9162 3.74065 13.9774 3.88544C14.0385 4.03024 14.07 4.18582 14.07 4.343C14.07 4.50017 14.0385 4.65576 13.9774 4.80055C13.9162 4.94534 13.8267 5.07641 13.714 5.186C13.6007 5.30328 13.4642 5.39562 13.3132 5.45709C13.1622 5.51857 13 5.54783 12.837 5.543H11.35V3.135H12.837C12.855 3.13458 12.873 3.13458 12.891 3.135ZM17.015 4.31C16.173 4.31 15.538 4.618 15.108 5.235L15.889 5.726C16.177 5.309 16.569 5.1 17.064 5.1C17.3798 5.09612 17.6855 5.21145 17.92 5.423C18.0354 5.51846 18.1282 5.63844 18.1915 5.77423C18.2548 5.91001 18.2871 6.05818 18.286 6.208V6.41C17.946 6.217 17.512 6.121 16.986 6.121C16.369 6.121 15.876 6.266 15.507 6.555C15.137 6.843 14.953 7.232 14.953 7.72C14.949 7.9396 14.994 8.15734 15.0848 8.35733C15.1757 8.55732 15.31 8.73451 15.478 8.876C15.828 9.184 16.263 9.339 16.783 9.339C17.393 9.339 17.881 9.069 18.248 8.529H18.286V9.184H19.134V6.275C19.134 5.665 18.944 5.185 18.566 4.835C18.186 4.485 17.67 4.31 17.015 4.31ZM19.278 4.464L21.224 8.886L20.126 11.266H21.041L24 4.463H23.035L21.667 7.854H21.647L20.241 4.464H19.278ZM17.132 6.832C17.626 6.832 18.012 6.942 18.288 7.162C18.288 7.534 18.141 7.858 17.848 8.135C17.5835 8.39951 17.225 8.54839 16.851 8.549C16.6011 8.55376 16.3573 8.47178 16.161 8.317C16.0697 8.25093 15.9954 8.16402 15.9445 8.06349C15.8935 7.96295 15.8673 7.85171 15.868 7.739C15.868 7.482 15.988 7.269 16.231 7.092C16.471 6.919 16.772 6.832 17.132 6.832Z" />
            </svg>
            Google Pay
            <input
              name="payment_method"
              id="apple"
              value="google"
              type="radio"
              className="box-content h-1.5 w-1.5 appearance-none rounded-full border-[5px] border-white bg-white bg-clip-padding ring-1 ring-gray-950/20 outline-none checked:border-indigo-500 checked:ring-indigo-500"
              defaultChecked
            />
          </label>
          <label
            htmlFor="google"
            className="grid grid-cols-[24px_1fr_auto] items-center gap-6 rounded-lg p-4 ring-1 ring-transparent hover:bg-gray-100 has-checked:bg-indigo-50 has-checked:text-indigo-800 has-checked:ring-indigo-200 dark:hover:bg-white/5 dark:has-checked:bg-indigo-950 dark:has-checked:text-indigo-200 dark:has-checked:ring-indigo-900"
          >
            <svg className="mt-1 w-8 fill-current" fill="currentColor" viewBox="0 0 24 13">
              <path d="M4.38526 1.86704C4.10401 2.19606 3.65392 2.45565 3.20387 2.41854C3.14762 1.97367 3.36793 1.50091 3.62579 1.20892C3.90704 0.870635 4.39932 0.62962 4.79781 0.611084C4.84468 1.07453 4.66182 1.52871 4.38526 1.86704ZM4.79312 2.50663C4.14146 2.46956 3.5836 2.87272 3.27418 2.87272C2.96012 2.87272 2.48659 2.52517 1.97092 2.53443C1.30056 2.5437 0.677025 2.91906 0.33479 3.51694C-0.368428 4.71265 0.151978 6.48308 0.831712 7.45632C1.16457 7.9383 1.56306 8.46662 2.0881 8.44809C2.58507 8.42955 2.78195 8.12834 3.38204 8.12834C3.98677 8.12834 4.16026 8.44809 4.68531 8.43882C5.2291 8.42955 5.57134 7.95688 5.9042 7.47485C6.28388 6.92799 6.43862 6.39499 6.44799 6.36718C6.43862 6.35791 5.3979 5.96402 5.38853 4.77753C5.37915 3.78576 6.20893 3.31304 6.24643 3.28524C5.77759 2.59931 5.04629 2.52517 4.79312 2.50663ZM8.55765 1.16258V8.38789H9.69212V5.91768H11.2626C12.6971 5.91768 13.7051 4.94445 13.7051 3.53552C13.7051 2.12664 12.7159 1.16262 11.3001 1.16262H8.5576L8.55765 1.16258ZM9.69212 2.10806H11.0001C11.9846 2.10806 12.5471 2.62711 12.5471 3.54011C12.5471 4.4531 11.9846 4.97684 10.9954 4.97684H9.69212V2.10806ZM15.7772 8.44345C16.4898 8.44345 17.1508 8.08664 17.4508 7.52119H17.4743V8.38785H18.5244V4.79143C18.5244 3.74868 17.6806 3.07666 16.3819 3.07666C15.1771 3.07666 14.2864 3.75795 14.2536 4.69412H15.2756C15.36 4.24921 15.7771 3.95722 16.3491 3.95722C17.043 3.95722 17.4321 4.27701 17.4321 4.86562V5.26415L16.0163 5.34756C14.6989 5.42634 13.9864 5.95934 13.9864 6.88629C13.9864 7.82245 14.7224 8.44345 15.7772 8.44345ZM16.0819 7.58607C15.4772 7.58607 15.0927 7.29876 15.0927 6.85844C15.0927 6.4043 15.4631 6.14012 16.171 6.09841L17.4321 6.01963V6.42743C17.4321 7.10408 16.8508 7.58607 16.0819 7.58607H16.0819ZM19.9261 10.3529C21.0325 10.3529 21.5529 9.93584 22.0076 8.67057L24 3.14617H22.8467L21.5107 7.41456H21.4872L20.1511 3.14617H18.9651L20.8871 8.40638L20.784 8.72618C20.6106 9.2684 20.3293 9.47698 19.8277 9.47698C19.7386 9.47698 19.5652 9.46771 19.4948 9.45844V10.3251C19.5604 10.3436 19.8417 10.3529 19.9261 10.3529Z" />
            </svg>
            Apple Pay
            <input
              name="payment_method"
              id="google"
              value="apple"
              type="radio"
              className="box-content h-1.5 w-1.5 appearance-none rounded-full border-[5px] border-white bg-white bg-clip-padding ring-1 ring-gray-950/20 outline-none checked:border-indigo-500 checked:ring-indigo-500"
            />
          </label>
          <label
            htmlFor="credit-card"
            className="grid grid-cols-[24px_1fr_auto] items-center gap-6 rounded-lg p-4 ring-1 ring-transparent hover:bg-gray-100 has-checked:bg-indigo-50 has-checked:text-indigo-800 has-checked:ring-indigo-200 dark:hover:bg-white/5 dark:has-checked:bg-indigo-950 dark:has-checked:text-indigo-200 dark:has-checked:ring-indigo-900"
          >
            <svg className="w-8" viewBox="0 0 24 13" fill="none">
              <rect stroke="currentColor" x="0.5" y="0.5" width="23" height="11" rx="1.5" />
              <path
                fill="currentColor"
                d="M16.539 3.18591C16.0742 3.01652 15.5828 2.93152 15.088 2.93491C13.488 2.93491 12.358 3.74091 12.35 4.89791C12.34 5.74791 13.153 6.22691 13.768 6.51091C14.399 6.80291 14.61 6.98691 14.608 7.24791C14.604 7.64491 14.104 7.82491 13.639 7.82491C13 7.82491 12.651 7.73591 12.114 7.51291L11.915 7.41991L11.688 8.75191C12.077 8.91391 12.778 9.05291 13.502 9.06491C15.203 9.06491 16.315 8.26391 16.328 7.03291C16.342 6.35391 15.902 5.84091 14.976 5.41691C14.413 5.14191 14.064 4.95791 14.064 4.67891C14.064 4.43191 14.363 4.16791 14.988 4.16791C15.404 4.15785 15.8174 4.23589 16.201 4.39691L16.351 4.46391L16.578 3.17691L16.539 3.18591ZM20.691 3.04291H19.441C19.052 3.04291 18.759 3.14991 18.589 3.53591L16.185 8.98191H17.886L18.226 8.08891L20.302 8.09091C20.351 8.29991 20.501 8.98191 20.501 8.98191H22.001L20.691 3.04291ZM10.049 2.99291H11.67L10.656 8.93491H9.03705L10.049 2.99091V2.99291ZM5.93405 6.26791L6.10205 7.09291L7.68605 3.04291H9.40305L6.85205 8.97391H5.13905L3.73905 3.95191C3.71637 3.8691 3.66312 3.79798 3.59005 3.75291C3.08545 3.49225 2.55079 3.29444 1.99805 3.16391L2.02005 3.03891H4.62905C4.98305 3.05291 5.26805 3.16391 5.36305 3.54191L5.93305 6.27091L5.93405 6.26791ZM18.691 6.87391L19.337 5.21191C19.329 5.22991 19.47 4.86891 19.552 4.64591L19.663 5.15891L20.038 6.87291H18.69L18.691 6.87391Z"
              />
            </svg>
            Credit Card
            <input
              name="payment_method"
              id="credit-card"
              value="credit-card"
              type="radio"
              className="box-content h-1.5 w-1.5 appearance-none rounded-full border-[5px] border-white bg-white bg-clip-padding ring-1 ring-gray-950/20 outline-none checked:border-indigo-500 checked:ring-indigo-500"
            />
          </label>
        </div>
      </fieldset>
    </div>
  }

```html
<!-- [!code classes:has-checked:bg-indigo-50,has-checked:text-indigo-900,has-checked:ring-indigo-200,dark:has-checked:bg-indigo-950,dark:has-checked:text-indigo-200,dark:has-checked:ring-indigo-900]-->
<label
  class="has-checked:bg-indigo-50 has-checked:text-indigo-900 has-checked:ring-indigo-200 dark:has-checked:bg-indigo-950 dark:has-checked:text-indigo-200 dark:has-checked:ring-indigo-900 ..."
>
  <svg fill="currentColor">
    <!-- ... -->
  </svg>
  Google Pay
  <input type="radio" class="checked:border-indigo-500 ..." />
</label>
```

You can use `has-*` with a pseudo-class, like `has-[:focus]`, to style an element based on the state of its descendants. You can also use element selectors, like `has-[img]` or `has-[a]`, to style an element based on the content of its descendants.

#### Styling based on the descendants of a group

If you need to style an element based on the descendants of a parent element, you can mark the parent with the `group` class and use the `group-has-*` variant to style the target element:

  {
    <div className="mx-auto grid max-w-md divide-y divide-gray-100 border-x border-x-gray-200 text-gray-700 dark:divide-gray-800 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-300">
      <div className="group grid grid-cols-[32px_1fr_auto] items-center gap-x-4 px-4 py-4 pt-6">
        <img className="size-[32px] rounded-full" src={spencerSharp.src} alt="" />
        {/* This is not an h4 because we're converting h4's to links in MDX files */}
        <div className="font-semibold text-gray-900 dark:text-white">Spencer Sharp</div>
        <svg
          fill="none"
          viewBox="0 0 24 24"
          strokeWidth="1.5"
          stroke="currentColor"
          className="hidden size-4 group-has-[a]:block"
        >
          <path strokeLinecap="round" strokeLinejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
        </svg>
        <p className="col-start-2 text-sm">
          Product Designer at{" "}
          <a href="#" className="dark;text-blue-400 text-blue-500 underline">
            planeteria.tech
          </a>
        </p>
      </div>
      <div className="group grid grid-cols-[32px_1fr_auto] items-center gap-x-4 px-4 py-4">
        <img
          className="size-[32px] rounded-full"
          src="https://images.unsplash.com/photo-1539571696357-5a69c17a67c6?q=80&w=256&h=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
          alt=""
        />
        {/* This is not an h4 because we're converting h4's to links in MDX files */}
        <div className="font-semibold text-gray-900 dark:text-white">Casey Jordan</div>
        <svg
          fill="none"
          viewBox="0 0 24 24"
          strokeWidth="1.5"
          stroke="currentColor"
          className="hidden size-4 group-has-[a]:block"
        >
          <path strokeLinecap="round" strokeLinejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
        </svg>
        <p className="col-start-2 text-sm">Just happy to be here.</p>
      </div>
      <div className="group grid grid-cols-[32px_1fr_auto] items-center gap-x-4 px-4 py-4">
        <img
          className="size-[32px] rounded-full"
          src="https://images.unsplash.com/photo-1590895340509-793cb98788c9?q=80&w=256&h=256&&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
          alt=""
        />
        {/* This is not an h4 because we're converting h4's to links in MDX files */}
        <div className="font-semibold text-gray-900 dark:text-white">Alex Reed</div>
        <svg
          fill="none"
          viewBox="0 0 24 24"
          strokeWidth="1.5"
          stroke="currentColor"
          className="hidden size-4 group-has-[a]:block"
        >
          <path strokeLinecap="round" strokeLinejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
        </svg>
        <p className="col-start-2 text-sm">
          A multidisciplinary designer, working at the intersection of art and technology. <br />
          <br />
          <a href="#" className="dark;text-blue-400 text-blue-500 underline">
            alex-reed.com
          </a>
        </p>
      </div>
      <div className="group grid grid-cols-[32px_1fr_auto] items-center gap-x-4 px-4 py-4 pb-6">
        <img
          className="size-[32px] rounded-full"
          src="https://images.unsplash.com/photo-1517841905240-472988babdf9?q=80&w=256&h=256&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
          alt=""
        />
        {/* This is not an h4 because we're converting h4's to links in MDX files */}
        <div className="font-semibold text-gray-900 dark:text-white">Taylor Bailey</div>
        <svg
          fill="none"
          viewBox="0 0 24 24"
          strokeWidth="1.5"
          stroke="currentColor"
          className="hidden size-4 group-has-[a]:block"
        >
          <path strokeLinecap="round" strokeLinejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
        </svg>
        <p className="col-start-2 text-sm">Pushing pixels. Slinging divs.</p>
      </div>
    </div>
  }

```html
<!-- [!code classes:group-has-[a]:block,group] -->
<div class="group ...">
  <img src="..." />
  <h4>Spencer Sharp</h4>
  <svg class="hidden group-has-[a]:block ..."><!-- ... --></svg>
  <p>Product Designer at <a href="...">planeteria.tech</a></p>
</div>
```

#### Styling based on the descendants of a peer

If you need to style an element based on the descendants of a sibling element, you can mark the sibling with the `peer` class and use the `peer-has-*` variant to style the target element:

  {
    <div className="mx-auto max-w-md border-x border-x-gray-200 px-4 py-6 dark:border-x-gray-800 dark:bg-gray-950/10">
      <fieldset className="space-y-3">
        <legend className="text-base font-semibold text-gray-900 dark:text-white">Today</legend>
        <div className="grid grid-cols-[1fr_24px] items-center gap-6">
          <label className="peer grid grid-cols-[auto_1fr] items-center gap-3 rounded-md px-2 hover:bg-gray-100 dark:hover:bg-white/5">
            <input
              type="checkbox"
              className="peer size-3.5 appearance-none rounded-sm border border-gray-300 accent-pink-500 checked:appearance-auto dark:border-gray-600 dark:accent-pink-600"
              defaultChecked
            />
            <span className="text-gray-700 select-none peer-checked:text-gray-400 peer-checked:line-through dark:text-gray-300">
              Create a to do list
            </span>
          </label>
          <div className="size-[26px] rounded-md p-1 peer-has-checked:hidden hover:bg-red-50 hover:text-pink-500">
            <svg fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor">
              <path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" />
            </svg>
          </div>
        </div>
        <div className="grid grid-cols-[1fr_24px] items-center gap-6">
          <label className="peer grid grid-cols-[auto_1fr] items-center gap-3 rounded-md px-2 hover:bg-gray-100 dark:hover:bg-white/5">
            <input
              type="checkbox"
              className="peer size-3.5 appearance-none rounded-sm border border-gray-300 accent-pink-500 checked:appearance-auto dark:border-gray-600 dark:accent-pink-600"
            />
            <span className="text-gray-700 select-none peer-checked:text-gray-400 peer-checked:line-through dark:text-gray-300">
              Check off first item
            </span>
          </label>
          <div className="size-[26px] rounded-md p-1 peer-has-checked:hidden hover:bg-red-50 hover:text-pink-500">
            <svg fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor">
              <path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" />
            </svg>
          </div>
        </div>
        <div className="grid grid-cols-[1fr_24px] items-center gap-6">
          <label className="peer grid grid-cols-[auto_1fr] items-center gap-3 rounded-md px-2 hover:bg-gray-100 dark:hover:bg-white/5">
            <input
              type="checkbox"
              className="peer size-3.5 appearance-none rounded-sm border border-gray-300 accent-pink-500 checked:appearance-auto dark:border-gray-600 dark:accent-pink-600"
            />
            <span className="text-gray-700 select-none peer-checked:text-gray-400 peer-checked:line-through dark:text-gray-300">
              Investigate race condition
            </span>
          </label>
          <div className="block size-[26px] rounded-md p-1 peer-has-checked:hidden hover:bg-red-50 hover:text-pink-500">
            <svg fill="none" viewBox="0 0 24 24" strokeWidth="1.5" stroke="currentColor">
              <path strokeLinecap="round" strokeLinejoin="round" d="M6 18L18 6M6 6l12 12" />
            </svg>
          </div>
        </div>
      </fieldset>
    </div>
  }

```html
<!-- [!code classes:peer-has-checked:hidden,peer] -->
<div>
  <label class="peer ...">
    <input type="checkbox" name="todo[1]" checked />
    Create a to do list
  </label>
  <svg class="peer-has-checked:hidden ..."><!-- ... --></svg>
</div>
```

### :not()

Use the `not-` variant to style an element when a condition is not true.

It's particularly powerful when combined with other pseudo-class variants, for example combining `not-focus:` with `hover:` to only apply hover styles when an element is not focused:

  {
    <div className="grid place-items-center">
      <button
        type="button"
        className="rounded-full bg-indigo-600 px-5 py-2 text-sm leading-5 font-semibold text-white hover:not-focus:bg-indigo-700 focus:outline focus:outline-violet-300 active:bg-violet-700"
        tabIndex="0"
      >
        Save changes
      </button>
    </div>
  }

```html
<!-- [!code classes:hover:not-focus:bg-indigo-700] -->
<button class="bg-indigo-600 hover:not-focus:bg-indigo-700">
  <!-- ... -->
</button>
```

You can also combine the `not-` variant with media query variants like `forced-colors` or `supports` to only style an element when something about the user's environment is not true:

```html
<!-- [!code classes:not-supports-[display:grid]:flex] -->
<div class="not-supports-[display:grid]:flex">
  <!-- ... -->
</div>
```

### Styling based on parent state

When you need to style an element based on the state of some _parent_ element, mark the parent with the `group` class, and use `group-*` variants like `group-hover` to style the target element:

  {
    <a
      href="#"
      className="group mx-auto block max-w-xs space-y-3 rounded-lg bg-white p-4 shadow-lg ring-1 ring-gray-900/5 hover:bg-sky-500 hover:ring-sky-500 dark:bg-white/5 dark:ring-white/10"
    >
      <div className="flex items-center space-x-3">
        <svg className="h-6 w-6 stroke-sky-500 group-hover:stroke-white" fill="none" viewBox="0 0 24 24">
          <path
            strokeLinecap="round"
            strokeLinejoin="round"
            strokeWidth="2"
            d="M11 19H6.931A1.922 1.922 0 015 17.087V8h12.069C18.135 8 19 8.857 19 9.913V11"
          />
          <path
            strokeLinecap="round"
            strokeLinejoin="round"
            strokeWidth="2"
            d="M14 7.64L13.042 6c-.36-.616-1.053-1-1.806-1H7.057C5.921 5 5 5.86 5 6.92V11M17 15v4M19 17h-4"
          />
        </svg>
        {/* This is not an h3 because we're converting h3's to links in MDX files */}
        <div className="text-sm font-semibold text-gray-900 group-hover:text-white dark:text-white">New project</div>
      </div>
      <p className="text-sm text-gray-500 group-hover:text-white dark:text-gray-400">
        Create a new project from a variety of starting templates.
      </p>
    </a>
  }

```html
<!-- [!code classes:group-hover:stroke-white] -->
<!-- [!code classes:group-hover:text-white] -->
<!-- [!code classes:group-hover:text-white] -->
<!-- [!code classes:group] -->
<a href="#" class="group ...">
  <div>
    <svg class="stroke-sky-500 group-hover:stroke-white ..." fill="none" viewBox="0 0 24 24">
      <!-- ... -->
    </svg>
    <h3 class="text-gray-900 group-hover:text-white ...">New project</h3>
  </div>
  <p class="text-gray-500 group-hover:text-white ...">Create a new project from a variety of starting templates.</p>
</a>
```

This pattern works with every pseudo-class variant, for example `group-focus`, `group-active`, or even `group-odd`.

#### Differentiating nested groups

When nesting groups, you can style something based on the state of a _specific_ parent group by giving that parent a unique group name using a `group/{name}` class, and including that name in variants using classes like `group-hover/{name}`:

  {
    <div className="px-4">
      <ul
        role="list"
        className="mx-auto max-w-md border-x border-x-gray-200 p-2 dark:border-x-gray-800 dark:bg-gray-950/10"
      >
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                className="h-12 w-12 rounded-full"
                src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Leslie Abbott
              </a>
              <div className="text-gray-500">Co-Founder / CEO</div>
            </div>
          </div>
          <a
            href="#"
            className="group/edit invisible relative flex items-center rounded-full py-1 pr-3 pl-4 text-sm whitespace-nowrap text-gray-500 transition group-hover/item:visible hover:bg-gray-200 dark:text-gray-400"
          >
            <span className="font-semibold transition group-hover/edit:text-gray-700">Call</span>
            <svg
              className="mt-px h-5 w-5 text-gray-400 transition group-hover/edit:translate-x-0.5 group-hover/edit:text-gray-500"
              viewBox="0 0 20 20"
              fill="currentColor"
            >
              <path
                fillRule="evenodd"
                d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
                clipRule="evenodd"
              />
            </svg>
          </a>
        </li>
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                className="h-12 w-12 rounded-full"
                src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Hector Adams
              </a>
              <div className="text-gray-500">VP, Marketing</div>
            </div>
          </div>
          <a
            href="#"
            className="group/edit invisible relative flex items-center rounded-full py-1 pr-3 pl-4 text-sm whitespace-nowrap text-gray-500 transition group-hover/item:visible hover:bg-gray-200 dark:text-gray-400"
          >
            <span className="font-semibold transition group-hover/edit:text-gray-700">Call</span>
            <svg
              className="mt-px h-5 w-5 text-gray-400 transition group-hover/edit:translate-x-0.5 group-hover/edit:text-gray-500"
              viewBox="0 0 20 20"
              fill="currentColor"
            >
              <path
                fillRule="evenodd"
                d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
                clipRule="evenodd"
              />
            </svg>
          </a>
        </li>
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                className="h-12 w-12 rounded-full"
                src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Blake Alexander
              </a>
              <div className="text-gray-500">Account Coordinator</div>
            </div>
          </div>
          <a
            href="#"
            className="group/edit invisible relative flex items-center rounded-full py-1 pr-3 pl-4 text-sm whitespace-nowrap text-gray-500 transition group-hover/item:visible hover:bg-gray-200 dark:text-gray-400"
          >
            <span className="font-semibold transition group-hover/edit:text-gray-700">Call</span>
            <svg
              className="mt-px h-5 w-5 text-gray-400 transition group-hover/edit:translate-x-0.5 group-hover/edit:text-gray-500"
              viewBox="0 0 20 20"
              fill="currentColor"
            >
              <path
                fillRule="evenodd"
                d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
                clipRule="evenodd"
              />
            </svg>
          </a>
        </li>
      </ul>
    </div>
  }

```svelte
<!-- [!code classes:group-hover/item:visible] -->
<!-- [!code classes:group-hover/edit:text-gray-700] -->
<!-- [!code classes:group-hover/edit:translate-x-0.5] -->
<!-- [!code classes:group-hover/edit:text-gray-500] -->
<!-- [!code classes:group/item] -->
<!-- [!code classes:group/edit] -->
<ul role="list">
  {#each people as person}
    <li class="group/item ...">
      <!-- ... -->
      <a class="group/edit invisible group-hover/item:visible ..." href="tel:{person.phone}">
        <span class="group-hover/edit:text-gray-700 ...">Call</span>
        <svg class="group-hover/edit:translate-x-0.5 group-hover/edit:text-gray-500 ..."><!-- ... --></svg>
      </a>
    </li>
  {/each}
</ul>
```

Groups can be named however you like and don’t need to be configured in any way — just name your groups directly in your markup and Tailwind will automatically generate the necessary CSS.

#### Arbitrary groups

You can create one-off `group-*` variants on the fly by providing your own selector as an [arbitrary value](/docs/adding-custom-styles#using-arbitrary-values) between square brackets:

  <CodeBlock
    example={html`
      <!-- [!code classes:group-[.is-published]:block] -->
      <div class="group is-published">
        <div class="hidden group-[.is-published]:block">
          Published
        </div>
      </div>
    `}
  />
  

For more control, you can use the `&` character to mark where `.group` should end up in the final selector relative to the selector you are passing in:

  <CodeBlock
    example={html`
      <!-- [!code classes:_&] -->
      <div class="group">
        <div class="group-[:nth-of-type(3)_&]:block">
          <!-- ... -->
        </div>
      </div>
    `}
  />
  

#### Implicit groups

The `in-*` variant works similarly to `group` except you don't need to add `group` to the parent element:

{/* prettier-ignore */}
```html
<!-- [!code classes:in-focus:opacity-100] -->
<!-- [!code --:3] -->
<div tabindex="0" class="group">
  <div class="opacity-50 group-focus:opacity-100">
<!-- [!code ++:3] -->
<div tabindex="0">
  <div class="opacity-50 in-focus:opacity-100">
    <!-- ... -->
  </div>
</div>
```

The `in-*` variant responds to state changes in any parent, so if you want more fine-grained control you'll need to use `group` instead.

### Styling based on sibling state

When you need to style an element based on the state of a _sibling_ element, mark the sibling with the `peer` class, and use `peer-*` variants like `peer-invalid` to style the target element:

  {
    <div className="mx-auto max-w-md border-x border-x-gray-200 px-6 pt-6 pb-5 dark:border-x-gray-800 dark:bg-gray-950/10">
      <form>
        <div>
          <label htmlFor="email-2" className="block text-sm font-medium text-gray-700 dark:text-gray-300">
            Email
          </label>
          <div className="mt-1">
            <input
              type="email"
              name="email"
              id="email-2"
              className="peer block w-full rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm invalid:border-pink-500 invalid:text-pink-600 focus:border-sky-500 focus:outline focus:outline-sky-500 focus:invalid:border-pink-500 focus:invalid:outline-pink-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none sm:text-sm"
              defaultValue="george@krugerindustrial."
              placeholder="you@example.com"
            />
            <p className="invisible mt-2 text-sm text-pink-600 peer-invalid:visible">
              Please provide a valid email address.
            </p>
          </div>
        </div>
      </form>
    </div>
  }

```html
<!-- [!code classes:peer-invalid:visible] -->
<!-- [!code classes:peer] -->
<form>
  <label class="block">
    <span class="...">Email</span>
    <input type="email" class="peer ..." />
    <p class="invisible peer-invalid:visible ...">Please provide a valid email address.</p>
  </label>
</form>
```

This makes it possible to do all sorts of neat tricks, like [floating labels](https://www.youtube.com/watch?v=nJzKi6oIvBA) for example without any JS.

This pattern works with every pseudo-class variant, for example `peer-focus`, `peer-required`, and `peer-disabled`.

It's important to note that the `peer` marker can only be used on _previous_ siblings because of how the [subsequent-sibling combinator](https://developer.mozilla.org/en-US/docs/Web/CSS/Subsequent-sibling_combinator) works in CSS:

{<>Won't work, only previous siblings can be marked as peers</>}

```html
<!-- [!code classes:peer-invalid:text-red-500] -->
<!-- [!code classes:peer] -->
<label>
  <span class="peer-invalid:text-red-500 ...">Email</span>
  <input type="email" class="peer ..." />
</label>
```

#### Differentiating peers

When using multiple peers, you can style something on the state of a _specific_ peer by giving that peer a unique name using a `peer/{name}` class, and including that name in variants using classes like `peer-checked/{name}`:

  {
    <div className="px-4">
      <fieldset className="mx-auto max-w-md border-x border-x-gray-200 p-8 text-sm text-gray-700 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-100">
        <div className="mb-6 border-b border-gray-200 pb-2 text-base font-semibold dark:border-gray-800">
          Published status
        </div>
        <input
          id="draft"
          className="peer/draft form-radio mr-2 mb-0.5 border-gray-300 text-sky-400 focus:ring-sky-400"
          type="radio"
          name="status"
          defaultChecked
        />
        <label className="font-medium peer-checked/draft:text-sky-500" htmlFor="draft">
          Draft
        </label>
        <input
          id="published"
          className="peer/published form-radio mr-2 mb-0.5 ml-4 border-gray-300 text-sky-400 focus:ring-sky-400"
          type="radio"
          name="status"
        />
        <label className="font-medium peer-checked/published:text-sky-500" htmlFor="published">
          Published
        </label>
        <div className="mt-4 hidden text-gray-500 peer-checked/draft:block dark:text-gray-400">
          Drafts are only visible to administrators.
        </div>
        <div className="mt-4 hidden text-gray-500 peer-checked/published:block dark:text-gray-400">
          Your post will be publicly visible on your site.
        </div>
      </fieldset>
    </div>
  }

```html
<!-- [!code classes:peer-checked/draft:block] -->
<!-- [!code classes:peer-checked/draft:text-sky-500] -->
<!-- [!code classes:peer-checked/published:text-sky-500] -->
<!-- [!code classes:peer-checked/published:block] -->
<!-- [!code classes:peer/draft] -->
<!-- [!code classes:peer/published] -->
<fieldset>
  <legend>Published status</legend>

  <input id="draft" class="peer/draft" type="radio" name="status" checked />
  <label for="draft" class="peer-checked/draft:text-sky-500">Draft</label>

  <input id="published" class="peer/published" type="radio" name="status" />
  <label for="published" class="peer-checked/published:text-sky-500">Published</label>
  <div class="hidden peer-checked/draft:block">Drafts are only visible to administrators.</div>
  <div class="hidden peer-checked/published:block">Your post will be publicly visible on your site.</div>
</fieldset>
```

Peers can be named however you like and don’t need to be configured in any way — just name your peers directly in your markup and Tailwind will automatically generate the necessary CSS.

#### Arbitrary peers

You can create one-off `peer-*` variants on the fly by providing your own selector as an [arbitrary value](/docs/adding-custom-styles#using-arbitrary-values) between square brackets:

  <CodeBlock
    example={html`
      <!-- [!code classes:peer-[.is-dirty]] -->
      <form>
        <label for="email">Email:</label>
        <input id="email" name="email" type="email" class="is-dirty peer" required />
        <div class="peer-[.is-dirty]:peer-required:block hidden">This field is required.</div>
        <!-- ... -->
      </form>
    `}
  />
  

For more control, you can use the `&` character to mark where `.peer` should end up in the final selector relative to the selector you are passing in:

  <CodeBlock
    filename="HTML"
    example={html`
      <!-- [!code classes:peer-[:nth-of-type(3)_&]:block] -->
      <div>
        <input type="text" class="peer" />
        <div class="hidden peer-[:nth-of-type(3)_&]:block">
          <!-- ... -->
        </div>
      </div>
    `}
  />
  

## Pseudo-elements

### ::before and ::after

Style the `::before` and `::after` pseudo-elements using the `before` and `after` variants:

  {
    <div className="mx-auto max-w-sm border-x border-x-gray-200 px-6 pt-6 pb-5 dark:border-x-gray-800 dark:bg-gray-950/10">
      <form>
        <label className="block">
          <span className="block text-sm font-medium text-gray-700 after:ml-0.5 after:text-red-500 after:content-['*'] dark:text-white">
            Email
          </span>
          <input
            type="email"
            name="email"
            id="email-3"
            className="mt-1 block w-full rounded-md border border-gray-300 px-3 py-2 placeholder-gray-400 shadow-sm focus:border-sky-500 focus:outline focus:outline-sky-500 sm:text-sm"
            placeholder="you@example.com"
          />
        </label>
      </form>
    </div>
  }

```html
<!-- [!code classes:after:content-['*']] -->
<!-- [!code classes:after:ml-0.5] -->
<!-- [!code classes:after:text-red-500] -->
<label>
  <span class="text-gray-700 after:ml-0.5 after:text-red-500 after:content-['*'] ...">Email</span>
  <input type="email" name="email" class="..." placeholder="you@example.com" />
</label>
```

When using these variants, Tailwind will automatically add `content: ''` by default so you don't have to specify it unless you want a different value:

  {
    <div className="px-6">
      <div className="mx-auto max-w-lg border-x border-x-gray-200 px-6 py-8 dark:border-x-gray-800 dark:bg-gray-950/10">
        <blockquote className="text-center text-2xl font-semibold text-gray-900 italic dark:text-white">
          When you look{" "}
          <span className="relative inline-block before:absolute before:-inset-1 before:block before:-skew-y-3 before:bg-pink-500">
            <span className="relative text-white dark:text-gray-950">annoyed</span>
          </span>{" "}
          all the time, people think that you're busy.
        </blockquote>
      </div>
    </div>
  }

```html
<!-- [!code classes:before:block] -->
<!-- [!code classes:before:absolute] -->
<!-- [!code classes:before:-inset-1] -->
<!-- [!code classes:before:-skew-y-3] -->
<!-- [!code classes:before:bg-pink-500] -->
<blockquote class="text-center text-2xl font-semibold text-gray-900 italic dark:text-white">
  When you look
  <span class="relative inline-block before:absolute before:-inset-1 before:block before:-skew-y-3 before:bg-pink-500">
    <span class="relative text-white dark:text-gray-950">annoyed</span>
  </span>
  all the time, people think that you're busy.
</blockquote>
```

It's worth noting that you don't really need `::before` and `::after` pseudo-elements for most things in Tailwind projects — it's usually simpler to just use a real HTML element.

For example, here's the same design from above but using a `<span>` instead of the `::before` pseudo-element, which is a little easier to read and is actually less code:

```html
<blockquote class="text-center text-2xl font-semibold text-gray-900 italic">
  When you look
  <span class="relative">
    <!-- [!code highlight:2] -->
    <span class="absolute -inset-1 block -skew-y-3 bg-pink-500" aria-hidden="true"></span>
    <span class="relative text-white">annoyed</span>
  </span>
  all the time, people think that you're busy.
</blockquote>
```

Save `before` and `after` for situations where it's important that the content of the pseudo-element is not actually in the DOM and can't be selected by the user.

### ::placeholder

Style the placeholder text of any input or textarea using the `placeholder` variant:

  {
    <div className="mx-auto max-w-sm">
      <form>
        <label className="relative block">
          <span className="absolute inset-y-0 left-0 flex items-center pl-2">
            <svg className="h-5 w-5 fill-gray-300" viewBox="0 0 20 20">
              <path
                fillRule="evenodd"
                d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
                clipRule="evenodd"
              />
            </svg>
          </span>
          <span className="sr-only">Search</span>
          <input
            type="text"
            name="search"
            className="block w-full rounded-md border border-gray-300 py-2 pr-3 pl-9 text-gray-700 shadow-sm placeholder:text-gray-400 placeholder:italic focus:border-sky-500 focus:outline focus:outline-sky-500 sm:text-sm dark:border-gray-600 dark:text-white"
            placeholder="Search for anything..."
          />
        </label>
      </form>
    </div>
  }

```html
<!-- [!code classes:placeholder:italic,placeholder:text-gray-500] -->
<input
  class="placeholder:text-gray-500 placeholder:italic ..."
  placeholder="Search for anything..."
  type="text"
  name="search"
/>
```

### ::file

Style the button in file inputs using the `file` variant:

  {
    <div className="px-6">
      <div className="mx-auto max-w-sm border-x border-x-gray-200 px-6 py-8 dark:border-x-gray-800 dark:bg-gray-950/10">
        <form className="flex items-center space-x-6">
          <div className="shrink-0">
            <img
              className="h-16 w-16 rounded-full object-cover"
              src="https://images.unsplash.com/photo-1580489944761-15a19d654956?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1361&q=80"
              alt="Current profile photo"
            />
          </div>
          <label className="block">
            <span className="sr-only">Choose profile photo</span>
            <input
              type="file"
              className="block w-full text-sm text-gray-500 file:mr-4 file:rounded-full file:border-0 file:bg-violet-50 file:px-4 file:py-2 file:text-sm file:font-semibold file:text-violet-700 hover:file:bg-violet-100 dark:file:bg-violet-600 dark:file:text-violet-100 dark:hover:file:bg-violet-500"
            />
          </label>
        </form>
      </div>
    </div>
  }

```html
<!-- [!code classes:file:mr-4,file:rounded-full,file:border-0,file:bg-violet-50,file:px-4,file:py-2,file:text-sm,file:font-semibold,file:text-violet-700,hover:file:bg-violet-100,dark:file:bg-violet-600,dark:file:text-violet-100,dark:hover:file:bg-violet-500] -->
<input
  type="file"
  class="file:mr-4 file:rounded-full file:border-0 file:bg-violet-50 file:px-4 file:py-2 file:text-sm file:font-semibold file:text-violet-700 hover:file:bg-violet-100 dark:file:bg-violet-600 dark:file:text-violet-100 dark:hover:file:bg-violet-500 ..."
/>
```

### ::marker

Style the counters or bullets in lists using the `marker` variant:

  {
    <div className="px-6">
      <div className="mx-auto max-w-sm border-x border-x-gray-200 px-8 py-8 dark:border-x-gray-800 dark:bg-gray-950/10">
        <h2 className="text-base font-semibold text-gray-900 dark:text-gray-200">Ingredients</h2>
        <ul role="list" className="mt-3 list-disc space-y-3 pl-5 text-gray-500 marker:text-sky-400 dark:text-gray-400">
          <li>5 cups chopped Porcini mushrooms</li>
          <li>1/2 cup of olive oil</li>
          <li>3lb of celery</li>
        </ul>
      </div>
    </div>
  }

```html
<!-- [!code classes:marker:text-sky-400] -->
<ul role="list" class="list-disc marker:text-sky-400 ...">
  <li>5 cups chopped Porcini mushrooms</li>
  <li>1/2 cup of olive oil</li>
  <li>3lb of celery</li>
</ul>
```

We've designed the `marker` variant to be inheritable, so although you can use it directly on an `<li>` element, you can also use it on a parent to avoid repeating yourself.

### ::selection

Style the active text selection using the `selection` variant:

  {
    <div className="px-6">
      <div className="mx-auto max-w-lg border-x border-x-gray-200 px-6 py-8 text-gray-700 selection:bg-fuchsia-300 selection:text-fuchsia-900 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-300">
        <p>
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:selection:bg-fuchsia-300] -->
<!-- [!code classes:selection:text-fuchsia-900] -->
<div class="selection:bg-fuchsia-300 selection:text-fuchsia-900">
  <p>
    So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my
    way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of all
    living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
  </p>
</div>
```

We've designed the `selection` variant to be inheritable, so you can add it anywhere in the tree and it will be applied to all descendant elements.

This makes it easy to set the selection color to match your brand across your entire site:

```html
<!-- [!code classes:selection:bg-pink-300] -->
<html>
  <head>
    <!-- ... -->
  </head>
  <body class="selection:bg-pink-300">
    <!-- ... -->
  </body>
</html>
```

### ::first-line and ::first-letter

Style the first line in a block of content using the `first-line` variant, and the first letter using the `first-letter` variant:

  {
    <div className="px-6">
      <div className="mx-auto max-w-lg border-x border-x-gray-200 px-6 py-8 font-serif text-gray-700 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-gray-200">
        <p
          className="first-letter:float-left first-letter:mr-3 first-letter:text-7xl first-letter:leading-none first-letter:font-bold first-letter:text-gray-900 first-line:tracking-widest first-line:uppercase dark:first-letter:text-white"
          children={`Well, let me tell you something, funny boy. Y'know that little stamp, the one that says "New York Public Library"? Well that may not mean anything to you, but that means a lot to me. One whole hell of a lot.`}
        />
        <p
          className="mt-6"
          children={`Sure, go ahead, laugh if you want to. I've seen your type before: Flashy, making the scene, flaunting convention. Yeah, I know what you're thinking. What's this guy making such a big stink about old library books? Well, let me give you a hint, junior.`}
        />
      </div>
    </div>
  }

```html
<!-- [!code classes:first-line:uppercase] -->
<!-- [!code classes:first-line:tracking-widest] -->
<!-- [!code classes:first-letter:text-7xl] -->
<!-- [!code classes:first-letter:font-bold] -->
<!-- [!code classes:first-letter:text-gray-900] -->
<!-- [!code classes:first-letter:mr-3] -->
<!-- [!code classes:first-letter:float-left] -->
<!-- [!code classes:first-line:uppercase] -->
<!-- [!code classes:first-line:tracking-widest] -->
<!-- [!code classes:first-letter:text-7xl] -->
<!-- [!code classes:first-letter:font-bold] -->
<!-- [!code classes:first-letter:text-white] -->
<!-- [!code classes:first-letter:mr-3] -->
<!-- [!code classes:first-letter:float-left] -->
<div class="text-gray-700">
  <p
    class="first-letter:float-left first-letter:mr-3 first-letter:text-7xl first-letter:font-bold first-letter:text-gray-900 first-line:tracking-widest first-line:uppercase"
  >
    Well, let me tell you something, funny boy. Y'know that little stamp, the one that says "New York Public Library"?
  </p>
  <p class="mt-6">Well that may not mean anything to you, but that means a lot to me. One whole hell of a lot.</p>
</div>
```

### ::backdrop

Style the backdrop of a [native `<dialog>` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) using the `backdrop` variant:

```html
<!-- [!code classes:backdrop:bg-gray-50] -->
<dialog class="backdrop:bg-gray-50">
  <form method="dialog">
    <!-- ... -->
  </form>
</dialog>
```

If you're using native `<dialog>` elements in your project, you may also want to read about [styling open/closed states](/docs/hover-focus-and-other-states#openclosed-state) using the `open` variant.

## Media and feature queries

### Responsive breakpoints

To style an element at a specific breakpoint, use responsive variants like `md` and `lg`.

For example, this will render a 3-column grid on mobile, a 4-column grid on medium-width screens, and a 6-column grid on large-width screens:

```html
<!-- [!code classes:md:grid-cols-4,lg:grid-cols-6] -->
<div class="grid grid-cols-3 md:grid-cols-4 lg:grid-cols-6">
  <!-- ... -->
</div>
```

To style an element based on the width of a parent element instead of the viewport, use variants like `@md` and `@lg`:

```html
<!-- [!code classes:@container,@md:flex-row] -->
<div class="@container">
  <div class="flex flex-col @md:flex-row">
    <!-- ... -->
  </div>
</div>
```

Check out the [Responsive design](/docs/responsive-design) documentation for an in-depth look at how these features work.

### prefers-color-scheme

The `prefers-color-scheme` media query tells you whether the user prefers a light theme or dark theme, and is usually configured at the operating system level.

Use utilities with no variant to target light mode, and use the `dark` variant to provide overrides for dark mode:

  {
    <div className="grid grid-cols-1 sm:grid-cols-2">
      <div className="p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-500">Light mode</p>
        <div className="rounded-lg bg-white px-6 py-8 shadow-xl ring-1 ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          {/* This is not an h3 because we're converting h3's to links in MDX files */}
          <div className="mt-5 text-base font-medium tracking-tight text-gray-900">Writes upside-down</div>
          <p className="mt-2 text-sm text-gray-500">
            The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer
            space.
          </p>
        </div>
      </div>
      <div className="border-l border-l-transparent bg-black/90 p-8 pt-7 dark:border-l-white/10 dark:bg-transparent">
        <p className="mb-2 text-sm font-medium text-gray-400">Dark mode</p>
        <div className="rounded-lg bg-gray-800 px-6 py-8 shadow-xl ring-1 ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          {/* This is not an h3 because we're converting h3's to links in MDX files */}
          <div className="mt-5 text-base font-medium tracking-tight text-white">Writes upside-down</div>
          <p className="mt-2 text-sm text-gray-400">
            The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer
            space.
          </p>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:dark:bg-gray-900] -->
<!-- [!code classes:dark:text-white] -->
<!-- [!code classes:dark:text-gray-400] -->
<div class="bg-white dark:bg-gray-900 ...">
  <!-- ... -->
  <h3 class="text-gray-900 dark:text-white ...">Writes upside-down</h3>
  <p class="text-gray-500 dark:text-gray-400 ...">
    The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer space.
  </p>
</div>
```

Check out the [Dark Mode](/docs/dark-mode) documentation for an in-depth look at how this feature works.

### prefers-reduced-motion

The `prefers-reduced-motion` media query tells you if the user has requested that you minimize non-essential motion.

Use the `motion-reduce` variant to conditionally add styles when the user has requested reduced motion:

  {
    <div className="flex items-center justify-center">
      <button
        type="button"
        className="inline-flex items-center rounded-md bg-indigo-500 px-4 py-2 text-sm leading-6 font-semibold text-white shadow"
        disabled
      >
        <svg
          className="mr-3 -ml-1 h-5 w-5 animate-spin text-white motion-reduce:hidden"
          fill="none"
          viewBox="0 0 24 24"
        >
          <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
          <path
            className="opacity-75"
            fill="currentColor"
            d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
          ></path>
        </svg>
        Processing...
      </button>
    </div>
  }

```html
<!-- [!code classes:motion-reduce:hidden] -->
<button type="button" class="bg-indigo-500 ..." disabled>
  <svg class="animate-spin motion-reduce:hidden ..." viewBox="0 0 24 24"><!-- ... --></svg>
  Processing...
</button>
```

Tailwind also includes a `motion-safe` variant that only adds styles when the user has _not_ requested reduced motion. This can be useful when using the `motion-reduce` helper would mean having to "undo" a lot of styles:

```html
<!-- [!code classes:motion-reduce:hover:translate-y-0] -->
<!-- [!code classes:motion-reduce:transition-none] -->
<!-- [!code classes:motion-safe:hover:-translate-x-0.5] -->
<!-- [!code classes:motion-safe:transition] -->
<!-- Using `motion-reduce` can mean lots of "undoing" styles -->
<button class="transition hover:-translate-y-0.5 motion-reduce:transition-none motion-reduce:hover:translate-y-0 ...">
  Save changes
</button>

<!-- Using `motion-safe` is less code in these situations -->
<button class="motion-safe:transition motion-safe:hover:-translate-x-0.5 ...">Save changes</button>
```

### prefers-contrast

The `prefers-contrast` media query tells you if the user has requested more or less contrast.

Use the `contrast-more` variant to conditionally add styles when the user has requested more contrast:

  {
    <div className="mx-auto max-w-sm border-x border-x-gray-200 px-6 pt-6 pb-4 dark:border-x-gray-800 dark:bg-gray-950/10">
      <form>
        <div>
          <label htmlFor="contrast-example" className="block text-sm font-medium text-gray-700 dark:text-white">
            Social Security Number
          </label>
          <div className="mt-1">
            <input
              type="text"
              name="contrast-example"
              id="contrast-example"
              className="block w-full rounded-md border border-gray-200 px-3 py-2 placeholder-gray-400 shadow-sm focus:border-sky-500 focus:outline focus:outline-sky-500 contrast-more:border-gray-400 contrast-more:placeholder-gray-500 sm:text-sm dark:border-gray-900 dark:contrast-more:border-gray-700 dark:contrast-more:placeholder-gray-300"
              placeholder="000-00-0000"
            />
            <p className="mt-2 text-sm text-gray-600 opacity-10 contrast-more:opacity-100 dark:text-gray-400">
              We need this to steal your identity.
            </p>
          </div>
        </div>
      </form>
    </div>
  }

```html
<!-- [!code classes:contrast-more:border-gray-400,contrast-more:placeholder-gray-500,contrast-more:opacity-100] -->
<label class="block">
  <span class="block text-sm font-medium text-gray-700">Social Security Number</span>
  <input
    class="border-gray-200 placeholder-gray-400 contrast-more:border-gray-400 contrast-more:placeholder-gray-500 ..."
  />
  <p class="text-gray-600 opacity-10 contrast-more:opacity-100 ...">We need this to steal your identity.</p>
</label>
```

Tailwind also includes a `contrast-less` variant you can use to conditionally add styles when the user has requested less contrast.

### forced-colors

The `forced-colors` media query indicates if the user is using a forced colors mode. These modes override your site's colors with a user defined palette for text, backgrounds, links and buttons.

Use the `forced-colors` variant to conditionally add styles when the user has enabled a forced color mode:

  {
    <div className="mx-auto max-w-sm border-x border-x-gray-200 px-6 pt-6 pb-4 text-gray-900 dark:border-x-gray-800 dark:bg-gray-950/10 dark:text-white">
      <form>
        <legend> Choose a theme: </legend>
        <div className="mt-4 grid grid-flow-col">
          <label htmlFor="theme-1" className="text-sm font-medium text-gray-700 dark:text-white">
            <div className="relative grid h-16 w-16 items-center justify-center rounded-xl border border-transparent bg-transparent text-white hover:bg-gray-50 has-checked:border-cyan-500 has-checked:bg-cyan-50 has-checked:text-cyan-50 dark:text-gray-800 dark:hover:bg-gray-800 dark:has-checked:bg-cyan-950 dark:has-checked:text-cyan-950 forced-colors:border-0">
              <input
                type="radio"
                name="themes"
                id="theme-1"
                className="appearance-none forced-colors:appearance-auto"
                defaultChecked
              />
              <p className="hidden forced-colors:block">Cyan</p>
              <div className="absolute top-3 left-3 h-6 w-6 rounded-full bg-cyan-200 forced-colors:hidden"></div>
              <div className="absolute right-3 bottom-3 h-6 w-6 rounded-full bg-cyan-500 ring-2 ring-current forced-colors:hidden"></div>
            </div>
          </label>
          <label htmlFor="theme-2" className="text-sm font-medium text-gray-700 dark:text-white">
            <div className="relative grid h-16 w-16 items-center justify-center rounded-xl border border-transparent bg-transparent text-white hover:bg-gray-50 has-checked:border-blue-500 has-checked:bg-blue-50 has-checked:text-blue-50 dark:text-gray-800 dark:hover:bg-gray-800 dark:has-checked:bg-blue-950 dark:has-checked:text-blue-950 forced-colors:border-0">
              <input
                type="radio"
                name="themes"
                id="theme-2"
                className="appearance-none forced-colors:appearance-auto"
              />
              <p className="hidden forced-colors:block">Blue</p>
              <div className="absolute top-3 left-3 h-6 w-6 rounded-full bg-blue-200 forced-colors:hidden"></div>
              <div className="absolute right-3 bottom-3 h-6 w-6 rounded-full bg-blue-500 ring-2 ring-current forced-colors:hidden"></div>
            </div>
          </label>
          <label htmlFor="theme-3" className="text-sm font-medium text-gray-700 dark:text-white">
            <div className="relative grid h-16 w-16 items-center justify-center rounded-xl border border-transparent bg-transparent text-white hover:bg-gray-50 has-checked:border-indigo-500 has-checked:bg-indigo-50 has-checked:text-indigo-50 dark:text-gray-800 dark:hover:bg-gray-800 dark:has-checked:bg-indigo-950 dark:has-checked:text-indigo-950 forced-colors:border-0">
              <input
                type="radio"
                name="themes"
                id="theme-3"
                className="appearance-none forced-colors:appearance-auto"
              />
              <p className="hidden forced-colors:block">Indigo</p>
              <div className="absolute top-3 left-3 h-6 w-6 rounded-full bg-indigo-200 forced-colors:hidden"></div>
              <div className="absolute right-3 bottom-3 h-6 w-6 rounded-full bg-indigo-500 ring-2 ring-current forced-colors:hidden"></div>
            </div>
          </label>
          <label htmlFor="theme-4" className="text-sm font-medium text-gray-700 dark:text-white">
            <div className="relative grid h-16 w-16 items-center justify-center rounded-xl border border-transparent bg-transparent text-white hover:bg-gray-50 has-checked:border-purple-500 has-checked:bg-purple-50 has-checked:text-purple-50 dark:text-gray-800 dark:hover:bg-gray-800 dark:has-checked:bg-purple-950 dark:has-checked:text-purple-950 forced-colors:border-0">
              <input
                type="radio"
                name="themes"
                id="theme-4"
                className="appearance-none forced-colors:appearance-auto"
              />
              <p className="hidden forced-colors:block">Purple</p>
              <div className="absolute top-3 left-3 h-6 w-6 rounded-full bg-purple-200 forced-colors:hidden"></div>
              <div className="absolute right-3 bottom-3 h-6 w-6 rounded-full bg-purple-500 ring-2 ring-current forced-colors:hidden"></div>
            </div>
          </label>
        </div>
      </form>
    </div>
  }

```html
<!-- [!code classes:forced-colors:appearance-auto] -->
<!-- [!code classes:forced-colors:block] -->
<!-- [!code classes:forced-colors:hidden] -->
<!-- [!code classes:forced-colors:hidden] -->
<label>
  <input type="radio" class="appearance-none forced-colors:appearance-auto" />
  <p class="hidden forced-colors:block">Cyan</p>
  <div class="bg-cyan-200 forced-colors:hidden ..."></div>
  <div class="bg-cyan-500 forced-colors:hidden ..."></div>
</label>
```

Use the `not-forced-colors` variant to apply styles based when the user is _not_ using a forced colors mode:

```html
<!-- [!code classes:not-forced-colors:appearance-none] -->
<div class="not-forced-colors:appearance-none ...">
  <!-- ... -->
</div>
```

Tailwind also includes a [forced color adjust](/docs/forced-color-adjust) utilities to opt in and out of forced colors.

### inverted-colors

Use the `inverted-colors` variant to conditionally add styles when the user has enabled an inverted color scheme:

```html
<!-- [!code classes:inverted-colors:shadow-none] -->
<div class="shadow-xl inverted-colors:shadow-none ...">
  <!-- ... -->
</div>
```

### pointer and any-pointer

The `pointer` media query tells you whether the user has a primary pointing device, like a mouse, and the accuracy of that pointing device.

Use the `pointer-fine` variant to target an accurate pointing device, like a mouse or trackpad, or the `pointer-coarse` variant to target a less accurate pointing device, like a touchscreen, which can be useful for providing larger click targets on touch devices:

  {
    <fieldset aria-label="Choose a memory option" className="mx-auto max-w-md">
      <div className="flex items-center justify-between">
        <div className="text-sm/6 font-medium text-gray-900 dark:text-white">RAM</div>
        <a href="#" className="text-sm/6 font-medium text-indigo-600 hover:text-indigo-500 dark:text-indigo-400">
          See performance specs
        </a>
      </div>
      <div className="mt-4 grid grid-cols-6 gap-2 max-sm:grid-cols-3 pointer-coarse:mt-6 pointer-coarse:grid-cols-3 pointer-coarse:gap-4">
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="4 GB" className="sr-only" />
          <span>4 GB</span>
        </label>
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="8 GB" className="sr-only" defaultChecked />
          <span>8 GB</span>
        </label>
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="16 GB" className="sr-only" />
          <span>16 GB</span>
        </label>
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="32 GB" className="sr-only" />
          <span>32 GB</span>
        </label>
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="64 GB" className="sr-only" />
          <span>64 GB</span>
        </label>
        <label className="flex items-center justify-center rounded-md bg-white p-2 text-sm font-semibold text-gray-900 uppercase ring-1 ring-gray-300 not-data-focus:not-has-checked:ring-inset hover:bg-gray-50 has-checked:bg-indigo-600 has-checked:text-white has-checked:ring-0 has-checked:hover:bg-indigo-500 has-focus-visible:outline-2 has-focus-visible:outline-offset-2 has-focus-visible:outline-indigo-600 data-focus:ring-2 data-focus:ring-indigo-600 data-focus:ring-offset-2 data-focus:has-checked:ring-2 sm:flex-1 dark:bg-transparent dark:text-white dark:ring-white/20 dark:hover:bg-gray-950/50 pointer-coarse:p-4">
          <input type="radio" name="memory-option" value="128 GB" className="sr-only" />
          <span>128 GB</span>
        </label>
      </div>
    </fieldset>
  }

```html
<!-- [!code classes:pointer-coarse:mt-6,pointer-coarse:grid-cols-3,pointer-coarse:gap-4,pointer-coarse:p-4] -->
<fieldset aria-label="Choose a memory option">
  <div class="flex items-center justify-between">
    <div>RAM</div>
    <a href="#"> See performance specs </a>
  </div>
  <div class="mt-4 grid grid-cols-6 gap-2 pointer-coarse:mt-6 pointer-coarse:grid-cols-3 pointer-coarse:gap-4">
    <label class="p-2 pointer-coarse:p-4 ...">
      <input type="radio" name="memory-option" value="4 GB" className="sr-only" />
      <span>4 GB</span>
    </label>
    <!-- ... -->
  </div>
</fieldset>
```

While `pointer`only targets the primary pointing device, `any-pointer` is used to target any of the pointing devices that might be available. Use the `any-pointer-fine` and `any-pointer-coarse` variants to provide different styles if at least one connected pointing device meets the criteria.

You can use `pointer-none` and `any-pointer-none` to target the absence of a pointing device.

### orientation

Use the `portrait` and `landscape` variants to conditionally add styles when the viewport is in a specific orientation:

```html
<!-- [!code classes:portrait:hidden,landscape:hidden] -->
<div>
  <div class="portrait:hidden">
    <!-- ... -->
  </div>
  <div class="landscape:hidden">
    <p>This experience is designed to be viewed in landscape. Please rotate your device to view the site.</p>
  </div>
</div>
```

### scripting

Use the `noscript` variant to conditionally add styles based on whether the user has scripting, such as JavaScript, enabled:

```html
<!-- [!code classes:noscript:block] -->
<div class="hidden noscript:block">
  <p>This experience requires JavaScript to function. Please enable JavaScript in your browser settings.</p>
</div>
```

### print

Use the `print` variant to conditionally add styles that only apply when the document is being printed:

```html
<!-- [!code classes:print:hidden] -->
<!-- [!code classes:print:block] -->
<div>
  <article class="print:hidden">
    <h1>My Secret Pizza Recipe</h1>
    <p>This recipe is a secret, and must not be shared with anyone</p>
    <!-- ... -->
  </article>
  <div class="hidden print:block">Are you seriously trying to print this? It's secret!</div>
</div>
```

### @supports

Use the `supports-[...]` variant to style things based on whether a certain feature is supported in the user's browser:

```html
<!-- [!code classes:supports-[display:grid]:grid] -->
<div class="flex supports-[display:grid]:grid ...">
  <!-- ... -->
</div>
```

Under the hood the `supports-[...]` variant generates [`@supports rules`](https://developer.mozilla.org/en-US/docs/Web/CSS/@supports) and takes anything you’d use with `@supports (...)` between the square brackets, like a property/value pair, and even expressions using `and` and `or`.

For terseness, if you only need to check if a property is supported (and not a specific value), you can just specify the property name:

```html
<!-- [!code classes:supports-backdrop-filter:bg-black/25,supports-backdrop-filter:backdrop-blur] -->
<div class="bg-black/75 supports-backdrop-filter:bg-black/25 supports-backdrop-filter:backdrop-blur ...">
  <!-- ... -->
</div>
```

Use the `not-supports-[...]` variant to style things based on whether a certain feature is not supported in the user's browser:

```html
<!-- [!code classes:not-supports-[display:grid]:flex] -->
<div class="not-supports-[display:grid]:flex">
  <!-- ... -->
</div>
```

You can configure shortcuts for common `@supports` rules you're using in your project by creating a new variant in the `supports-*` namespace:

```css
@custom-variant supports-grid {
  @supports (display: grid) {
    @slot;
  }
}
```

You can then use these custom `supports-*` variants in your project:

```html
<!-- [!code classes:supports-grid:grid] -->
<div class="supports-grid:grid">
  <!-- ... -->
</div>
```

### @starting-style

Use the `starting` variant to set the appearance of an element when it is first rendered in the DOM, or transitions from `display: none` to visible:

  {
    
      <div className="grid h-full items-center justify-center">
        <button
          popoverTarget="my-popover"
          className="inline-flex w-full justify-center rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:col-start-2"
        >
          Check for updates
        </button>
        <div
          popover="auto"
          id="my-popover"
          className="relative inset-y-0 mx-auto my-auto transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left opacity-0 shadow-xl transition-all transition-discrete duration-500 open:opacity-100 sm:w-full sm:max-w-96 sm:p-6 dark:bg-gray-800 starting:open:opacity-0"
        >
          <div>
            <div className="mx-auto flex size-12 items-center justify-center rounded-full bg-indigo-50 dark:bg-indigo-600/10">
              <svg
                className="size-5 text-indigo-400 dark:text-indigo-600"
                viewBox="0 0 20 20"
                fill="currentColor"
                aria-hidden="true"
                data-slot="icon"
              >
                <path
                  fillRule="evenodd"
                  d="M18 10a8 8 0 1 1-16 0 8 8 0 0 1 16 0Zm-7-4a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM9 9a.75.75 0 0 0 0 1.5h.253a.25.25 0 0 1 .244.304l-.459 2.066A1.75 1.75 0 0 0 10.747 15H11a.75.75 0 0 0 0-1.5h-.253a.25.25 0 0 1-.244-.304l.459-2.066A1.75 1.75 0 0 0 9.253 9H9Z"
                  clipRule="evenodd"
                />
              </svg>
            </div>
            <div className="mt-3 text-center sm:mt-5">
              <h3 className="text-base font-semibold text-gray-900 dark:text-white" id="modal-title">
                Update available
              </h3>
              <div className="mt-2">
                <p className="text-sm text-gray-500 dark:text-gray-200">
                  A new software update is available: <span className="font-semibold">v2.0.4.</span>
                  <br />
                  Click the button below to install it.
                </p>
              </div>
            </div>
          </div>
          <div className="mt-5">
            <button
              type="button"
              className="inline-flex w-full justify-center rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 sm:col-start-2"
            >
              Install
            </button>
          </div>
        </div>
      </div>
    
  }

```html
<!-- [!code classes:starting:open:opacity-0] -->
<div>
  <button popovertarget="my-popover">Check for updates</button>
  <div popover id="my-popover" class="opacity-0 starting:open:opacity-0 ...">
    <!-- ... -->
  </div>
</div>
```

## Attribute selectors

### ARIA states

Use the `aria-*` variant to conditionally style things based on [ARIA attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes).

For example, to apply the `bg-sky-700` class when the `aria-checked` attribute is set to `true`, use the `aria-checked:bg-sky-700` class:

```html
<!-- [!code classes:aria-checked:bg-sky-700] -->
<div aria-checked="true" class="bg-gray-600 aria-checked:bg-sky-700">
  <!-- ... -->
</div>
```

By default we've included variants for the most common boolean ARIA attributes:

{

<table>
  <thead>
    <tr>
      <th>Variant</th>
      <th>CSS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-busy</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-busy="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-checked</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-checked="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-disabled</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-disabled="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-expanded</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-expanded="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-hidden</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-hidden="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-pressed</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-pressed="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-readonly</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-readonly="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-required</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-required="true"]
        </code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="before:content-none after:content-none">aria-selected</code>
      </td>
      <td>
        <code className="whitespace-nowrap before:content-none after:content-none">
          <span className="text-gray-400">&</span>[aria-selected="true"]
        </code>
      </td>
    </tr>
  </tbody>
</table>

}

You can customize which `aria-*` variants are available by creating a new variant:

```css
@custom-variant aria-asc (&[aria-sort="ascending"]);
@custom-variant aria-desc (&[aria-sort="descending"]);
```

If you need to use a one-off `aria` variant that doesn’t make sense to include in your project, or for more complex ARIA attributes that take specific values, use square brackets to generate a property on the fly using any arbitrary value:

  {
    <div className="py-8">
      <table className="w-full border-collapse border-y border-gray-400 bg-white text-sm dark:border-white/10 dark:bg-transparent">
        <thead className="bg-gray-50 dark:bg-white/5">
          <tr>
            <th
              className="group border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-200"
              aria-sort="ascending"
            >
              <span className="flex w-full items-center justify-between gap-2">
                Invoice #
                <svg
                  viewBox="0 0 20 20"
                  className="h-5 w-5 fill-gray-500 group-aria-[sort=ascending]:rotate-0 group-aria-[sort=descending]:rotate-180"
                >
                  <path
                    fillRule="evenodd"
                    d="M10 5a.75.75 0 01.75.75v6.638l1.96-2.158a.75.75 0 111.08 1.04l-3.25 3.5a.75.75 0 01-1.08 0l-3.25-3.5a.75.75 0 111.08-1.04l1.96 2.158V5.75A.75.75 0 0110 5z"
                    clipRule="evenodd"
                  />
                </svg>
              </span>
            </th>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-200">
              Client
            </th>
            <th className="border border-gray-300 px-4 py-3 text-right font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-200">
              Amount
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              #100
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              Pendant Publishing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              $2,000.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              #101
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              Kruger Industrial Smoothing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              $545.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              #102
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              J. Peterman
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-white/10 dark:text-gray-400">
              $10,000.25
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

  
    <CodeBlock
      example={html`
        <!-- [!code classes:aria-[sort=ascending]:bg-[url('/img/down-arrow.svg')],aria-[sort=descending]:bg-[url('/img/up-arrow.svg')]] -->
        <table>
          <thead>
            <tr>
              <th
                aria-sort="ascending"
                class="aria-[sort=ascending]:bg-[url('/img/down-arrow.svg')] aria-[sort=descending]:bg-[url('/img/up-arrow.svg')]"
              >
                Invoice #
              </th>
              <!-- ... -->
            </tr>
          </thead>
          <!-- ... -->
        </table>
      `}
    />
    

  

ARIA state variants can also target parent and sibling elements using the `group-aria-*` and `peer-aria-*` variants:

  <CodeBlock
    example={html`
      <!-- [!code classes:group-aria-[sort=ascending]:rotate-0,group-aria-[sort=descending]:rotate-180] -->
      <table>
        <thead>
          <tr>
          <th aria-sort="ascending" class="group">
            Invoice #
            <svg class="group-aria-[sort=ascending]:rotate-0 group-aria-[sort=descending]:rotate-180"><!-- ... --></svg>
          </th>
          <!-- ... -->
          </tr>
        </thead>
        <!-- ... -->
      </table>
    `}
  />
  

### Data attributes

Use the `data-*` variant to conditionally apply styles based on [data attributes](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes).

To check if a data attribute exists (and not a specific value), you can just specify the attribute name:

```html
<!-- Will apply -->
<!-- [!code classes:data-active:border-purple-500] -->
<div data-active class="border border-gray-300 data-active:border-purple-500">
  <!-- ... -->
</div>

<!-- Will not apply -->
<div class="border border-gray-300 data-active:border-purple-500">
  <!-- ... -->
</div>
```

If you need to check for a specific value you may use an arbitrary value:

```html
<!-- Will apply -->
<!-- [!code classes:data-[size=large]:p-8] -->
<div data-size="large" class="data-[size=large]:p-8">
  <!-- ... -->
</div>

<!-- Will not apply -->
<div data-size="medium" class="data-[size=large]:p-8">
  <!-- ... -->
</div>
```

Alternatively, you can configure shortcuts for common data attributes you're using in your project by creating a new variant in the `data-*` namespace:

```css
<!-- [!code filename:app.css] -->
@import "tailwindcss";

@custom-variant data-checked (&[data-ui~="checked"]);
```

You can then use these custom `data-*` variants in your project:

```html
<!-- [!code classes:data-checked:underline] -->
<div data-ui="checked active" class="data-checked:underline">
  <!-- ... -->
</div>
```

### RTL support

Use the `rtl` and `ltr` variants to conditionally add styles in right-to-left and left-to-right modes respectively when building multi-directional layouts:

  {
    <div className="mx-auto grid max-w-lg grid-cols-1 gap-x-6 gap-y-10 sm:grid-cols-2">
      <div dir="ltr">
        <p className="mb-4 text-sm font-medium">Left-to-right</p>
        <div className="group flex items-center">
          <img
            className="h-12 w-12 shrink-0 rounded-full"
            src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
            alt=""
          />
          <div className="ml-3 rtl:mr-3 rtl:ml-0">
            <p className="text-sm font-medium text-gray-700 group-hover:text-gray-900 dark:text-gray-300 dark:group-hover:text-white">
              Tom Cook
            </p>
            <p className="text-sm font-medium text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300">
              Director of Operations
            </p>
          </div>
        </div>
      </div>
      <div dir="rtl">
        <p className="mb-4 text-sm font-medium">Right-to-left</p>
        <div className="group flex items-center">
          <img
            className="h-12 w-12 shrink-0 rounded-full"
            src="https://images.unsplash.com/photo-1563833717765-00462801314e?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
            alt=""
          />
          <div className="ml-3 rtl:mr-3 rtl:ml-0">
            <p className="text-sm font-medium text-gray-700 group-hover:text-gray-900 dark:text-gray-300 dark:group-hover:text-white">
              تامر كرم
            </p>
            <p className="text-sm font-medium text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300">
              الرئيس التنفيذي
            </p>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:ltr:ml-3,rtl:mr-3] -->
<div class="group flex items-center">
  <img class="h-12 w-12 shrink-0 rounded-full" src="..." alt="" />
  <div class="ltr:ml-3 rtl:mr-3">
    <p class="text-gray-700 group-hover:text-gray-900 ...">...</p>
    <p class="text-gray-500 group-hover:text-gray-700 ...">...</p>
  </div>
</div>
```

Remember, these variants are only useful if you are building a site that needs to support _both_ left-to-right and right-to-left layouts. If you're building a site that only needs to support a single direction, you don't need these variants — just apply the styles that make sense for your content.

### Open/closed state

Use the `open` variant to conditionally add styles when a `<details>` or `<dialog>` element is in an open state:

  {
    <div className="mx-auto max-w-lg">
      <details
        className="rounded-lg border border-transparent p-6 open:border-black/10 open:bg-gray-100 dark:open:border-gray-700/50 dark:open:bg-gray-950/50"
        open
      >
        <summary className="text-sm leading-6 font-semibold text-gray-900 select-none dark:text-white">
          Why do they call it Ovaltine?
        </summary>
        <div className="mt-3 text-sm leading-6 text-gray-600 dark:text-gray-400">
          <p>The mug is round. The jar is round. They should call it Roundtine.</p>
        </div>
      </details>
    </div>
  }

```html
<!-- [!code classes:open:border-black/10,open:bg-gray-100] -->
<details class="border border-transparent open:border-black/10 open:bg-gray-100 ..." open>
  <summary class="text-sm leading-6 font-semibold text-gray-900 select-none">Why do they call it Ovaltine?</summary>
  <div class="mt-3 text-sm leading-6 text-gray-600">
    <p>The mug is round. The jar is round. They should call it Roundtine.</p>
  </div>
</details>
```

This variant also targets the `:popover-open` pseudo-class for popovers:

```html
<!-- [!code classes:open:opacity-100] -->
<div>
  <button popovertarget="my-popover">Open Popover</button>
  <div popover id="my-popover" class="opacity-0 open:opacity-100 ...">
    <!-- ... -->
  </div>
</div>
```

### Styling inert elements

The `inert` variant lets you style elements marked with the `inert` attribute:

  {
    <form className="mx-auto max-w-md space-y-6 border-x border-x-gray-200 p-8 dark:border-x-gray-800">
      <legend>Notification preferences</legend>
      <fieldset name="resale" defaultValue="permit">
        <div className="flex items-center gap-x-3">
          <input
            readOnly
            id="push-everything"
            name="push-notifications"
            type="radio"
            className="relative size-4 appearance-none rounded-full border border-gray-300 bg-white before:absolute before:inset-1 before:rounded-full before:bg-white not-checked:before:hidden checked:border-indigo-600 checked:bg-indigo-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:border-gray-300 disabled:bg-gray-100 disabled:before:bg-gray-400 dark:border-gray-700 dark:bg-gray-950 forced-colors:appearance-auto forced-colors:before:hidden"
          />
          <label htmlFor="push-everything" className="block text-sm/6 font-medium text-gray-900 dark:text-white">
            Custom
          </label>
        </div>
        <fieldset className="mt-6 space-y-6 pl-8 inert:opacity-25" inert>
          <div className="flex gap-3">
            <div className="flex h-6 shrink-0 items-center">
              <div className="group grid size-4 grid-cols-1">
                <input
                  defaultChecked
                  id="comments"
                  name="comments"
                  type="checkbox"
                  aria-describedby="comments-description"
                  className="col-start-1 row-start-1 appearance-none rounded-sm border border-gray-300 bg-white checked:border-indigo-600 checked:bg-indigo-600 indeterminate:border-indigo-600 indeterminate:bg-indigo-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:border-gray-300 disabled:bg-gray-100 disabled:checked:bg-gray-100 dark:border-gray-700 dark:bg-gray-950 forced-colors:appearance-auto"
                />
                <svg
                  fill="none"
                  viewBox="0 0 14 14"
                  className="pointer-events-none col-start-1 row-start-1 size-3.5 self-center justify-self-center stroke-white group-has-disabled:stroke-gray-950/25"
                >
                  <path
                    d="M3 8L6 11L11 3.5"
                    strokeWidth={2}
                    strokeLinecap="round"
                    strokeLinejoin="round"
                    className="opacity-0 group-has-checked:opacity-100"
                  />
                  <path
                    d="M3 7H11"
                    strokeWidth={2}
                    strokeLinecap="round"
                    strokeLinejoin="round"
                    className="opacity-0 group-has-indeterminate:opacity-100"
                  />
                </svg>
              </div>
            </div>
            <div className="text-sm/6">
              <label htmlFor="comments" className="font-medium text-gray-900 dark:text-white">
                Comments
              </label>
              <p id="comments-description" className="text-gray-500 dark:text-gray-400">
                Get notified when someones posts a comment on a post.
              </p>
            </div>
          </div>
          <div className="flex gap-3">
            <div className="flex h-6 shrink-0 items-center">
              <div className="group grid size-4 grid-cols-1">
                <input
                  defaultChecked
                  id="comments"
                  name="comments"
                  type="checkbox"
                  aria-describedby="comments-description"
                  className="col-start-1 row-start-1 appearance-none rounded-sm border border-gray-300 bg-white checked:border-indigo-600 checked:bg-indigo-600 indeterminate:border-indigo-600 indeterminate:bg-indigo-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:border-gray-300 disabled:bg-gray-100 disabled:checked:bg-gray-100 dark:border-gray-700 dark:bg-gray-950 forced-colors:appearance-auto"
                />
                <svg
                  fill="none"
                  viewBox="0 0 14 14"
                  className="pointer-events-none col-start-1 row-start-1 size-3.5 self-center justify-self-center stroke-white group-has-disabled:stroke-gray-950/25"
                >
                  <path
                    d="M3 8L6 11L11 3.5"
                    strokeWidth={2}
                    strokeLinecap="round"
                    strokeLinejoin="round"
                    className="opacity-0 group-has-checked:opacity-100"
                  />
                  <path
                    d="M3 7H11"
                    strokeWidth={2}
                    strokeLinecap="round"
                    strokeLinejoin="round"
                    className="opacity-0 group-has-indeterminate:opacity-100"
                  />
                </svg>
              </div>
            </div>
            <div className="text-sm/6">
              <label htmlFor="comments" className="font-medium text-gray-900 dark:text-white">
                Mentions
              </label>
              <p id="comments-description" className="text-gray-500 dark:text-gray-400">
                Get notified when someones mentions you.
              </p>
            </div>
          </div>
        </fieldset>
        <div className="mt-6 flex items-center gap-x-3">
          <input
            readOnly
            checked
            id="push-everything"
            name="push-notifications"
            type="radio"
            className="relative size-4 appearance-none rounded-full border border-gray-300 bg-white before:absolute before:inset-1 before:rounded-full before:bg-white not-checked:before:hidden checked:border-indigo-600 checked:bg-indigo-600 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:border-gray-300 disabled:bg-gray-100 disabled:before:bg-gray-400 dark:border-gray-700 dark:bg-gray-950 forced-colors:appearance-auto forced-colors:before:hidden"
          />
          <label htmlFor="push-everything" className="block text-sm/6 font-medium text-gray-900 dark:text-white">
            Everything
          </label>
        </div>
      </fieldset>
    </form>
  }

```html
<!-- [!code classes:inert:opacity-50] -->
<form>
  <legend>Notification preferences</legend>
  <fieldset>
    <input type="radio" />
    <label> Custom </label>
    <fieldset inert class="inert:opacity-50">
      <!-- ... -->
    </fieldset>
    <input type="radio" />
    <label> Everything </label>
  </fieldset>
</form>
```

This is useful for adding visual cues that make it clear that sections of content aren't interactive.

## Child selectors

### Styling direct children

While it's generally preferable to put utility classes directly on child elements, you can use the `*` variant in situations where you need to style direct children that you don’t have control over:

  {
    <div className="mx-auto max-w-md border-x border-x-gray-200 p-6 dark:border-x-gray-800 dark:bg-gray-950/10">
      <h2 className="text-base font-semibold text-gray-900 dark:text-gray-200">Categories</h2>
      <div className="flex flex-wrap gap-2 pt-4 text-sm text-sky-600 *:rounded-full *:border *:border-sky-100 *:bg-sky-50 *:px-2 *:py-0.5 dark:text-sky-300 dark:*:border-sky-500/15 dark:*:bg-sky-500/10">
        <div>Sales</div>
        <div>Marketing</div>
        <div>SEO</div>
        <div>Analytics</div>
        <div>Design</div>
        <div>Strategy</div>
        <div>Security</div>
        <div>Growth</div>
        <div>Mobile</div>
        <div>UX/UI</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:*:rounded-full] -->
<!-- [!code classes:*:border] -->
<!-- [!code classes:*:border-sky-100] -->
<!-- [!code classes:*:bg-sky-50] -->
<!-- [!code classes:*:px-2] -->
<!-- [!code classes:*:py-0.5] -->
<!-- [!code classes:dark:text-sky-300] -->
<!-- [!code classes:dark:*:border-sky-500/15] -->
<!-- [!code classes:dark:*:bg-sky-500/10] -->
<div>
  <h2>Categories<h2>
  <ul class="*:rounded-full *:border *:border-sky-100 *:bg-sky-50 *:px-2 *:py-0.5 dark:text-sky-300 dark:*:border-sky-500/15 dark:*:bg-sky-500/10 ...">
    <li>Sales</li>
    <li>Marketing</li>
    <li>SEO</li>
    <!-- ... -->
  </ul>
</div>
```

It's important to note that overriding a style with a utility directly on the child itself won't work since children rules are generated after the regular ones and they have the same specificity:

{<>Won't work, children can't override styles given to them by the parent.</>}

```html
<!-- [!code classes:*:bg-sky-50] -->
<!-- [!code classes:bg-red-50] -->
<ul class="*:bg-sky-50 ...">
  <li class="bg-red-50 ...">Sales</li>
  <li>Marketing</li>
  <li>SEO</li>
  <!-- ... -->
</ul>
```

### Styling all descendants

Like `*`, the `**` variant can be used to style children of an element. The main difference is that `**` will apply styles to _all_ descendants, not just the direct children. This is especially useful when you combine it with another variant for narrowing the thing you're selecting:

  {
    <div className="px-4">
      <ul
        role="list"
        className="mx-auto max-w-md border-x border-x-gray-200 p-2 **:data-avatar:size-12 **:data-avatar:rounded-full dark:border-x-gray-800 dark:bg-gray-950/10"
      >
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                data-avatar
                src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Leslie Abbott
              </a>
              <div className="text-gray-500">Co-Founder / CEO</div>
            </div>
          </div>
        </li>
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                data-avatar
                src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Hector Adams
              </a>
              <div className="text-gray-500">VP, Marketing</div>
            </div>
          </div>
        </li>
        <li className="group/item relative flex items-center justify-between rounded-xl p-4 hover:bg-gray-100 dark:hover:bg-white/5">
          <div className="flex gap-4">
            <div className="shrink-0">
              <img
                data-avatar
                src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                alt=""
              />
            </div>
            <div className="w-full text-sm leading-6">
              <a href="#" className="font-semibold text-gray-900 dark:text-white">
                <span className="absolute inset-0 rounded-xl" aria-hidden="true"></span>Blake Alexander
              </a>
              <div className="text-gray-500">Account Coordinator</div>
            </div>
          </div>
        </li>
      </ul>
    </div>
  }

```svelte
<!-- [!code classes:**:data-avatar:rounded-full,**:data-avatar:size-12] -->
<ul class="**:data-avatar:size-12 **:data-avatar:rounded-full ...">
  {#each items as item}
    <li>
      <img src={item.src} data-avatar />
      <p>{item.name}</p>
    </li>
  {/each}
</ul>
```

## Custom variants

### Using arbitrary variants

Just like [arbitrary values](/docs/adding-custom-styles#using-arbitrary-values) let you use custom values with your utility classes, arbitrary variants let you write custom selector variants directly in your HTML.

Arbitrary variants are just format strings that represent the selector, wrapped in square brackets. For example, this arbitrary variant changes the cursor to `grabbing` when the element has the `is-dragging` class:

  <CodeBlock
    example={svelte`
      <!-- [!code classes:[&.is-dragging]:cursor-grabbing] -->
      <ul role="list">
        {#each items as item}
          <li class="[&.is-dragging]:cursor-grabbing">{item}</li>
        {/each}
      </ul>
    `}

/>

  

Arbitrary variants can be stacked with built-in variants or with each other, just like the rest of the variants in Tailwind:

  <CodeBlock
    example={svelte`
      <!-- [!code classes:[&.is-dragging]:active:cursor-grabbing] -->
      <ul role="list">
        {#each items as item}
          <li class="[&.is-dragging]:active:cursor-grabbing">{item}</li>
        {/each}
      </ul>
    `}
  />
  

If you need spaces in your selector, you can use an underscore. For example, this arbitrary variant selects all `p` elements within the element where you've added the class:

  <CodeBlock
    example={html`
      <!-- [!code classes:[&_p]:mt-4] -->
      <div class="[&_p]:mt-4">
        <p>Lorem ipsum...</p>
        <ul>
          <li>
            <p>Lorem ipsum...</p>
          </li>
          <!-- ... -->
        </ul>
      </div>
    `}
  />
  

You can also use at-rules like `@media` or `@supports` in arbitrary variants:

  <CodeBlock
    example={html`
      <!-- [!code classes:[@supports(display:grid)]:grid] -->
      <div class="flex [@supports(display:grid)]:grid">
        <!-- ... -->
      </div>
    `}
  />
  

With at-rule custom variants the `&` placeholder isn't necessary, just like when nesting with a preprocessor.

### Registering a custom variant

If you find yourself using the same arbitrary variant multiple times in your project, it might be worth creating a custom variant using the `@custom-variant` directive:

```css
@custom-variant theme-midnight (&:where([data-theme="midnight"] *));
```

Now you can use the `theme-midnight:<utility>` variant in your HTML:

```html
<!-- [!code classes:theme-midnight:bg-black] -->
<html data-theme="midnight">
  <button class="theme-midnight:bg-black ..."></button>
</html>
```

Learn more about adding custom variants in the [adding custom variants documentation](/docs/adding-custom-styles#adding-custom-variants).

## Appendix

### Quick reference

A quick reference table of every single variant included in Tailwind by default.

{

<div className="max-w-screen overflow-scroll">
  <table>
    <thead>
      <tr>
        <th>Variant</th>
        <th>CSS</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          <a href="#hover" className="whitespace-nowrap">
            hover
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (hover: hover) {"{ "} <span className="text-gray-400">&</span>:hover {" }"}
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#focus" className="whitespace-nowrap">
            focus
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:focus
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#focus-within" className="whitespace-nowrap">
            focus-within
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:focus-within
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#focus-visible" className="whitespace-nowrap">
            focus-visible
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:focus-visible
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#active" className="whitespace-nowrap">
            active
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:active
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#visited" className="whitespace-nowrap">
            visited
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:visited
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#target" className="whitespace-nowrap">
            target
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:target
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#styling-direct-children" className="whitespace-nowrap">
            *
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            :is(<span className="text-gray-400">&</span> {" > *"})
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#styling-all-descendants" className="whitespace-nowrap">
            **
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            :is(<span className="text-gray-400">&</span> {" *"})
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#has" className="whitespace-nowrap">
            has-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:has(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#styling-based-on-parent-state" className="whitespace-nowrap">
            group-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:is(:where(.group)<span className="text-gray-400">...</span> *)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#styling-based-on-sibling-state" className="whitespace-nowrap">
            peer-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:is(:where(.peer)<span className="text-gray-400">...</span> ~ *)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#implicit-groups" className="whitespace-nowrap">
            in-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            :where(<span className="text-gray-400">...</span>) <span className="text-gray-400">&</span>
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#not" className="whitespace-nowrap">
            not-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:not(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#styling-inert-elements" className="whitespace-nowrap">
            inert
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:is([inert], [inert] *)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#first" className="whitespace-nowrap">
            first
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:first-child
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#last" className="whitespace-nowrap">
            last
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:last-child
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#only" className="whitespace-nowrap">
            only
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:only-child
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#odd" className="whitespace-nowrap">
            odd
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-child(odd)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#even" className="whitespace-nowrap">
            even
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-child(even)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#first-of-type" className="whitespace-nowrap">
            first-of-type
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:first-of-type
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#last-of-type" className="whitespace-nowrap">
            last-of-type
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:last-of-type
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#only-of-type" className="whitespace-nowrap">
            only-of-type
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:only-of-type
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#nth" className="whitespace-nowrap">
            nth-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-child(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#nth-last" className="whitespace-nowrap">
            nth-last-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-last-child(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#nth-of-type" className="whitespace-nowrap">
            nth-of-type-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-of-type(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#nth-last-of-type" className="whitespace-nowrap">
            nth-last-of-type-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:nth-last-of-type(<span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#empty" className="whitespace-nowrap">
            empty
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:empty
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#disabled" className="whitespace-nowrap">
            disabled
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:disabled
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#enabled" className="whitespace-nowrap">
            enabled
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:enabled
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#checked" className="whitespace-nowrap">
            checked
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:checked
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#indeterminate" className="whitespace-nowrap">
            indeterminate
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:indeterminate
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#default" className="whitespace-nowrap">
            default
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:default
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#optional" className="whitespace-nowrap">
            optional
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:optional
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#required" className="whitespace-nowrap">
            required
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:required
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#valid" className="whitespace-nowrap">
            valid
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:valid
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#invalid" className="whitespace-nowrap">
            invalid
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:invalid
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#user-valid" className="whitespace-nowrap">
            user-valid
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:user-valid
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#user-invalid" className="whitespace-nowrap">
            user-invalid
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:user-invalid
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#in-range" className="whitespace-nowrap">
            in-range
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:in-range
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#out-of-range" className="whitespace-nowrap">
            out-of-range
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:out-of-range
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#placeholder-shown" className="whitespace-nowrap">
            placeholder-shown
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:placeholder-shown
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#placeholder-shown" className="whitespace-nowrap">
            details-content
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:details-content
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#autofill" className="whitespace-nowrap">
            autofill
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:autofill
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#read-only" className="whitespace-nowrap">
            read-only
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:read-only
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#before-and-after" className="whitespace-nowrap">
            before
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::before
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#before-and-after" className="whitespace-nowrap">
            after
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::after
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#first-line-and-first-letter" className="whitespace-nowrap">
            first-letter
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::first-letter
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#first-line-and-first-letter" className="whitespace-nowrap">
            first-line
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::first-line
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#marker" className="whitespace-nowrap">
            marker
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::marker, <span className="text-gray-400">&</span> *::marker
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#selection" className="whitespace-nowrap">
            selection
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::selection
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#file" className="whitespace-nowrap">
            file
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::file-selector-button
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#backdrop" className="whitespace-nowrap">
            backdrop
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::backdrop
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#placeholder" className="whitespace-nowrap">
            placeholder
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>::placeholder
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            sm
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {">="} 40rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            md
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {">="} 48rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            lg
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {">="} 64rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {">="} 80rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            2xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {">="} 96rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            min-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (width {">= "} <span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-sm
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {"<"} 40rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-md
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {"<"} 48rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-lg
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {"<"} 64rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {"<"} 80rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-2xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (width {"<"} 96rem)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            max-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (width {"< "} <span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @3xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 16rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @2xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 18rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 20rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @sm
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 24rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @md
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 28rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @lg
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 32rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 36rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @2xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 42rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @3xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 48rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @4xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 56rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @5xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 64rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @6xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 72rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @7xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">="} 80rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @min-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {">= "} <span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-3xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 16rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-2xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 18rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-xs
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 20rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-sm
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 24rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-md
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 28rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-lg
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 32rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 36rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-2xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 42rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-3xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 48rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-4xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 56rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-5xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 64rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-6xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 72rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-7xl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"<"} 80rem)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#responsive-breakpoints" className="whitespace-nowrap">
            @max-[<span className="text-gray-400">...</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @container (width {"< "} <span className="text-gray-400">...</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#prefers-color-scheme" className="whitespace-nowrap">
            dark
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (prefers-color-scheme: dark)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#prefers-reduced-motion" className="whitespace-nowrap">
            motion-safe
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (prefers-reduced-motion: no-preference)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#prefers-reduced-motion" className="whitespace-nowrap">
            motion-reduce
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (prefers-reduced-motion: reduce)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#prefers-contrast" className="whitespace-nowrap">
            contrast-more
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (prefers-contrast: more)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#prefers-contrast" className="whitespace-nowrap">
            contrast-less
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (prefers-contrast: less)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#forced-colors" className="whitespace-nowrap">
            forced-colors
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (forced-colors: active)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#inverted-colors" className="whitespace-nowrap">
            inverted-colors
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (inverted-colors: inverted)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            pointer-fine
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (pointer: fine)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            pointer-coarse
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (pointer: coarse)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            pointer-none
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (pointer: none)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            any-pointer-fine
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (any-pointer: fine)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            any-pointer-coarse
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (any-pointer: coarse)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#pointer-and-any-pointer" className="whitespace-nowrap">
            any-pointer-none
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (any-pointer: none)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#orientation" className="whitespace-nowrap">
            portrait
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (orientation: portrait)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#orientation" className="whitespace-nowrap">
            landscape
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @media (orientation: landscape)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#scripting" className="whitespace-nowrap">
            noscript
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media (scripting: none)</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#print" className="whitespace-nowrap">
            print
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@media print</code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#supports" className="whitespace-nowrap">
            supports-[<span className="text-gray-400">&hellip;</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            @supports (<span className="text-gray-400">&hellip;</span>)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-busy
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-busy="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-checked
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-checked="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-disabled
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-disabled="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-expanded
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-expanded="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-hidden
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-hidden="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-pressed
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-pressed="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-readonly
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-readonly="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-required
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-required="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-selected
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-selected="true"]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#aria-states" className="whitespace-nowrap">
            aria-[<span className="text-gray-400">&hellip;</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[aria-<span className="text-gray-400">&hellip;</span>]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#data-attributes" className="whitespace-nowrap">
            data-[<span className="text-gray-400">&hellip;</span>]
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>[data-<span className="text-gray-400">&hellip;</span>]
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#rtl-support" className="whitespace-nowrap">
            rtl
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#rtl-support" className="whitespace-nowrap">
            ltr
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#openclosed-state" className="whitespace-nowrap">
            open
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">
            <span className="text-gray-400">&</span>:is([open], :popover-open, :open)
          </code>
        </td>
      </tr>
      <tr>
        <td>
          <a href="#starting-style" className="whitespace-nowrap">
            starting
          </a>
        </td>
        <td>
          <code className="whitespace-nowrap before:content-none after:content-none">@starting-style</code>
        </td>
      </tr>
    </tbody>
  </table>
</div>

}

### Pseudo-class reference

This is a comprehensive list of examples for all the pseudo-class variants included in Tailwind to complement the [pseudo-classes documentation](/docs/hover-focus-and-other-states#pseudo-classes) at the beginning of this guide.

#### :hover

Style an element when the user hovers over it with the mouse cursor using the `hover` variant:

```html
<!-- [!code classes:hover:bg-white] -->
<div class="bg-black hover:bg-white ...">
  <!-- ... -->
</div>
```

#### :focus

Style an element when it has focus using the `focus` variant:

```html
<!-- [!code classes:focus:border-blue-400] -->
<input class="border-gray-300 focus:border-blue-400 ..." />
```

#### :focus-within

Style an element when it or one of its descendants has focus using the `focus-within` variant:

```html
<!-- [!code classes:focus-within:shadow-lg] -->
<div class="focus-within:shadow-lg ...">
  <input type="text" />
</div>
```

#### :focus-visible

Style an element when it has been focused using the keyboard using the `focus-visible` variant:

```html
<!-- [!code classes:focus-visible:outline-2] -->
<button class="focus-visible:outline-2 ...">Submit</button>
```

#### :active

Style an element when it is being pressed using the `active` variant:

```html
<!-- [!code classes:active:bg-blue-600] -->
<button class="bg-blue-500 active:bg-blue-600 ...">Submit</button>
```

#### :visited

Style a link when it has already been visited using the `visited` variant:

```html
<!-- [!code classes:visited:text-purple-600] -->
<a href="https://seinfeldquotes.com" class="text-blue-600 visited:text-purple-600 ..."> Inspiration </a>
```

#### :target

Style an element if its ID matches the current URL fragment using the `target` variant:

```html
<!-- [!code classes:target:shadow-lg] -->
<div id="about" class="target:shadow-lg ...">
  <!-- ... -->
</div>
```

#### :first-child

Style an element if it's the first child using the `first` variant:

```svelte
<!-- [!code classes:first:pt-0] -->
<ul>
  {#each people as person}
    <li class="py-4 first:pt-0 ...">
      <!-- ... -->
    </li>
  {/each}
</ul>
```

#### :last-child

Style an element if it's the last child using the `last` variant:

```svelte
<!-- [!code classes:last:pb-0] -->
<ul>
  {#each people as person}
    <li class="py-4 last:pb-0 ...">
      <!-- ... -->
    </li>
  {/each}
</ul>
```

#### :only-child

Style an element if it's the only child using the `only` variant:

```svelte
<!-- [!code classes:only:py-0] -->
<ul>
  {#each people as person}
    <li class="py-4 only:py-0 ...">
      <!-- ... -->
    </li>
  {/each}
</ul>
```

#### :nth-child(odd)

Style an element if it's an oddly numbered child using the `odd` variant:

```svelte
<!-- [!code classes:odd:bg-gray-100] -->
<table>
  {#each people as person}
    <tr class="bg-white odd:bg-gray-100 ...">
      <!-- ... -->
    </tr>
  {/each}
</table>
```

#### :nth-child(even)

Style an element if it's an evenly numbered child using the `even` variant:

```svelte
<!-- [!code classes:even:bg-gray-100] -->
<table>
  {#each people as person}
    <tr class="bg-white even:bg-gray-100 ...">
      <!-- ... -->
    </tr>
  {/each}
</table>
```

#### :first-of-type

Style an element if it's the first child of its type using the `first-of-type` variant:

```svelte
<!-- [!code classes:first-of-type:ml-6] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="ml-2 first-of-type:ml-6 ...">
      <!-- ... -->
    </a>
  {/each}
</nav>
```

#### :last-of-type

Style an element if it's the last child of its type using the `last-of-type` variant:

```svelte
<!-- [!code classes:last-of-type:mr-6] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mr-2 last-of-type:mr-6 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :only-of-type

Style an element if it's the only child of its type using the `only-of-type` variant:

```svelte
<!-- [!code classes:only-of-type:mx-6] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mx-2 only-of-type:mx-6 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :nth-child()

Style an element at a specific position using the `nth` variant:

```svelte
<!-- [!code classes:nth-3:mx-6,nth-[3n+1]:mx-7] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mx-2 nth-3:mx-6 nth-[3n+1]:mx-7 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :nth-last-child()

Style an element at a specific position from the end using the `nth-last` variant:

```svelte
<!-- [!code classes:nth-last-3:mx-6,nth-last-[3n+1]:mx-7] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mx-2 nth-last-3:mx-6 nth-last-[3n+1]:mx-7 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :nth-of-type()

Style an element at a specific position, of the same type using the `nth-of-type` variant:

```svelte
<!-- [!code classes:nth-of-type-3:mx-6,nth-of-type-[3n+1]:mx-7] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mx-2 nth-of-type-3:mx-6 nth-of-type-[3n+1]:mx-7 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :nth-last-of-type()

Style an element at a specific position from the end, of the same type using the `nth-last-of-type` variant:

```svelte
<!-- [!code classes:nth-last-of-type-3:mx-6,nth-last-of-type-[3n+1]:mx-7] -->
<nav>
  <img src="/logo.svg" alt="Vandelay Industries" />
  {#each links as link}
    <a href="#" class="mx-2 nth-last-of-type-3:mx-6 nth-last-of-type-[3n+1]:mx-7 ...">
      <!-- ... -->
    </a>
  {/each}
  <button>More</button>
</nav>
```

#### :empty

Style an element if it has no content using the `empty` variant:

```svelte
<!-- [!code classes:empty:hidden] -->
<ul>
  {#each people as person}
    <li class="empty:hidden ...">{person.hobby}</li>
  {/each}
</ul>
```

#### :disabled

Style an input when it's disabled using the `disabled` variant:

```html
<!-- [!code classes:disabled:opacity-75] -->
<input class="disabled:opacity-75 ..." />
```

#### :enabled

Style an input when it's enabled using the `enabled` variant, most helpful when you only want to apply another style when an element is not disabled:

```html
<!-- [!code classes:enabled:hover:border-gray-400] -->
<input class="enabled:hover:border-gray-400 disabled:opacity-75 ..." />
```

#### :checked

Style a checkbox or radio button when it's checked using the `checked` variant:

```html
<!-- [!code classes:checked:bg-blue-500] -->
<input type="checkbox" class="appearance-none checked:bg-blue-500 ..." />
```

#### :indeterminate

Style a checkbox or radio button in an indeterminate state using the `indeterminate` variant:

```html
<!-- [!code classes:indeterminate:bg-gray-300] -->
<input type="checkbox" class="appearance-none indeterminate:bg-gray-300 ..." />
```

#### :default

Style an option, checkbox or radio button that was the default value when the page initially loaded using the `default` variant:

```html
<!-- [!code classes:default:outline-2] -->
<input type="checkbox" class="default:outline-2 ..." />
```

#### :optional

Style an input when it's optional using the `optional` variant:

```html
<!-- [!code classes:optional:border-red-500] -->
<input class="border optional:border-red-500 ..." />
```

#### :required

Style an input when it's required using the `required` variant:

```html
<!-- [!code classes:required:border-red-500] -->
<input required class="border required:border-red-500 ..." />
```

#### :valid

Style an input when it's valid using the `valid` variant:

```html
<!-- [!code classes:valid:border-green-500] -->
<input required class="border valid:border-green-500 ..." />
```

#### :invalid

Style an input when it's invalid using the `invalid` variant:

```html
<!-- [!code classes:invalid:border-red-500] -->
<input required class="border invalid:border-red-500 ..." />
```

#### :user-valid

Style an input when it's valid and the user has interacted with it, using the `user-valid` variant:

```html
<!-- [!code classes:user-valid:border-green-500] -->
<input required class="border user-valid:border-green-500" />
```

#### :user-invalid

Style an input when it's invalid and the user has interacted with it, using the `user-invalid` variant:

```html
<!-- [!code classes:user-invalid:border-red-500] -->
<input required class="border user-invalid:border-red-500" />
```

#### :in-range

Style an input when its value is within a specified range limit using the `in-range` variant:

```html
<!-- [!code classes:in-range:border-green-500] -->
<input min="1" max="5" class="in-range:border-green-500 ..." />
```

#### :out-of-range

Style an input when its value is outside of a specified range limit using the `out-of-range` variant:

```html
<!-- [!code classes:out-of-range:border-red-500] -->
<input min="1" max="5" class="out-of-range:border-red-500 ..." />
```

#### :placeholder-shown

Style an input when the placeholder is shown using the `placeholder-shown` variant:

```html
<!-- [!code classes:placeholder-shown:border-gray-500] -->
<input class="placeholder-shown:border-gray-500 ..." placeholder="you@example.com" />
```

#### :details-content

Style the content of a `<details>` element using the `details-content` variant:

```html
<!-- [!code classes:details-content:bg-gray-100] -->
<details class="details-content:bg-gray-100 ...">
  <summary>Details</summary>
  This is a secret.
</details>
```

#### :autofill

Style an input when it has been autofilled by the browser using the `autofill` variant:

```html
<!-- [!code classes:autofill:bg-yellow-200] -->
<input class="autofill:bg-yellow-200 ..." />
```

#### :read-only

Style an input when it is read-only using the `read-only` variant:

```html
<!-- [!code classes:read-only:bg-gray-100] -->
<input class="read-only:bg-gray-100 ..." />
```


---

# hyphens

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/hyphens*

| Clase | Propiedades CSS |
| :--- | :--- |
| `hyphens-none` | `hyphens: none;` |
| `hyphens-manual` | `hyphens: manual;` |
| `hyphens-auto` | `hyphens: auto;` |

## Examples

### Preventing hyphenation

Use the `hyphens-none` utility to prevent words from being hyphenated even if the line break suggestion `&shy;` is used:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-normal hyphens-none text-gray-900 dark:text-gray-200">
      Officially recognized by the Duden dictionary as the longest word in German,{" "}
      <span className="font-bold" lang="de">
        Kraftfahrzeug&shy;haftpflichtversicherung
      </span>{" "}
      is a 36 letter word for motor vehicle liability insurance.
    </p>
  }

```html
<!-- [!code classes:hyphens-none] -->
<!-- [!code word:&shy;] -->
<!-- prettier-ignore -->
<p class="hyphens-none">
  ... Kraftfahrzeug&shy;haftpflichtversicherung is a ...
</p>
```

### Manual hyphenation

Use the `hyphens-manual` utility to only set hyphenation points where the line break suggestion `&shy;` is used:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-normal hyphens-manual text-gray-900 dark:text-gray-200">
      Officially recognized by the Duden dictionary as the longest word in German,{" "}
      <span className="font-bold" lang="de">
        Kraftfahrzeug&shy;haftpflichtversicherung
      </span>{" "}
      is a 36 letter word for motor vehicle liability insurance.
    </p>
  }

```html
<!-- [!code classes:hyphens-manual] -->
<!-- [!code word:&shy;] -->
<!-- prettier-ignore -->
<p class="hyphens-manual">
  ... Kraftfahrzeug&shy;haftpflichtversicherung is a ...
</p>
```

This is the default browser behavior.

### Automatic hyphenation

Use the `hyphens-auto` utility to allow the browser to automatically choose hyphenation points based on the language:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-normal hyphens-auto text-gray-900 dark:text-gray-200">
      Officially recognized by the Duden dictionary as the longest word in German,{" "}
      <span className="font-bold" lang="de">
        Kraftfahrzeughaftpflichtversicherung
      </span>{" "}
      is a 36 letter word for motor vehicle liability insurance.
    </p>
  }

```html
<!-- [!code classes:hyphens-auto] -->
<!-- [!code word:lang="de"] -->
<!-- prettier-ignore -->
<p class="hyphens-auto" lang="de">
  ... Kraftfahrzeughaftpflichtversicherung is a ...
</p>
```

The line break suggestion `&shy;` will be preferred over automatic hyphenation points.

### Responsive design


---

# inline-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/inline-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `inline-<number>` | `inline-size: calc(var(--spacing) * <number>);` |
| `inline-<fraction>` | `inline-size: calc(<fraction> * 100%);` |
| `inline-3xs` | `inline-size: var(--container-3xs); /* 16rem (256px) */` |
| `inline-2xs` | `inline-size: var(--container-2xs); /* 18rem (288px) */` |
| `inline-xs` | `inline-size: var(--container-xs); /* 20rem (320px) */` |
| `inline-sm` | `inline-size: var(--container-sm); /* 24rem (384px) */` |
| `inline-md` | `inline-size: var(--container-md); /* 28rem (448px) */` |
| `inline-lg` | `inline-size: var(--container-lg); /* 32rem (512px) */` |
| `inline-xl` | `inline-size: var(--container-xl); /* 36rem (576px) */` |
| `inline-2xl` | `inline-size: var(--container-2xl); /* 42rem (672px) */` |
| `inline-3xl` | `inline-size: var(--container-3xl); /* 48rem (768px) */` |
| `inline-4xl` | `inline-size: var(--container-4xl); /* 56rem (896px) */` |
| `inline-5xl` | `inline-size: var(--container-5xl); /* 64rem (1024px) */` |
| `inline-6xl` | `inline-size: var(--container-6xl); /* 72rem (1152px) */` |
| `inline-7xl` | `inline-size: var(--container-7xl); /* 80rem (1280px) */` |
| `inline-auto` | `inline-size: auto;` |
| `inline-px` | `inline-size: 1px;` |
| `inline-full` | `inline-size: 100%;` |
| `inline-screen` | `inline-size: 100vw;` |
| `inline-dvw` | `inline-size: 100dvw;` |
| `inline-dvh` | `inline-size: 100dvh;` |
| `inline-lvw` | `inline-size: 100lvw;` |
| `inline-lvh` | `inline-size: 100lvh;` |
| `inline-svw` | `inline-size: 100svw;` |
| `inline-svh` | `inline-size: 100svh;` |
| `inline-min` | `inline-size: min-content;` |
| `inline-max` | `inline-size: max-content;` |
| `inline-fit` | `inline-size: fit-content;` |
| `inline-(<custom-property>)` | `inline-size: var(<custom-property>);` |
| `inline-[<value>]` | `inline-size: <value>;` |

## Examples

### Basic example

Use `inline-<number>` utilities like `inline-24` and `inline-64` to set an element to a fixed inline size based on the spacing scale:

  {
    <div className="flex justify-center">
      <div className="space-y-4 text-center font-mono text-xs font-bold text-white">
        <div className="hidden rounded-lg bg-blue-500 px-4 py-2 inline-96 sm:block">inline-96</div>
        <div className="hidden rounded-lg bg-blue-500 px-4 py-2 inline-80 sm:block">inline-80</div>
        <div className="hidden rounded-lg bg-blue-500 px-4 py-2 inline-64 sm:block">inline-64</div>
        <div className="rounded-lg bg-blue-500 px-4 py-2 inline-48">inline-48</div>
        <div className="rounded-lg bg-blue-500 px-4 py-2 inline-40">inline-40</div>
        <div className="rounded-lg bg-blue-500 px-4 py-2 inline-32">inline-32</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inline-96,inline-80,inline-64,inline-48,inline-40,inline-32,inline-24] -->
<div class="inline-96 ...">inline-96</div>
<div class="inline-80 ...">inline-80</div>
<div class="inline-64 ...">inline-64</div>
<div class="inline-48 ...">inline-48</div>
<div class="inline-40 ...">inline-40</div>
<div class="inline-32 ...">inline-32</div>
```

### Using a percentage

Use `inline-full` or `inline-<fraction>` utilities like `inline-1/2` and `inline-2/5` to give an element a percentage-based inline size:

  {
    <div className="space-y-4 font-mono text-xs font-bold text-white">
      <div className="flex gap-x-4">
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-1/2">inline-1/2</div>
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-1/2">inline-1/2</div>
      </div>
      <div className="flex gap-x-4">
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-2/5">inline-2/5</div>
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-3/5">inline-3/5</div>
      </div>
      <div className="flex gap-x-4">
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-1/3">inline-1/3</div>
        <div className="rounded-lg bg-violet-500 px-4 py-2 text-center inline-2/3">inline-2/3</div>
      </div>
      <div className="rounded-lg bg-violet-500 px-4 py-2 text-center font-mono text-white inline-full">inline-full</div>
    </div>
  }

```html
<!-- [!code classes:inline-1/2,inline-2/5,inline-3/5,inline-1/3,inline-2/3,inline-full] -->
<div class="flex ...">
  <div class="inline-1/2 ...">inline-1/2</div>
  <div class="inline-1/2 ...">inline-1/2</div>
</div>
<div class="flex ...">
  <div class="inline-2/5 ...">inline-2/5</div>
  <div class="inline-3/5 ...">inline-3/5</div>
</div>
<div class="flex ...">
  <div class="inline-1/3 ...">inline-1/3</div>
  <div class="inline-2/3 ...">inline-2/3</div>
</div>
<div class="inline-full ...">inline-full</div>
```

### Using the container scale

Use utilities like `inline-sm` and `inline-xl` to set an element to a fixed inline size based on the container scale:

  {
    <div className="flex justify-center">
      <div className="space-y-4 text-center font-mono text-xs font-bold text-white">
        <div className="hidden rounded-lg bg-sky-500 px-4 py-2 inline-xl sm:block">inline-xl</div>
        <div className="hidden rounded-lg bg-sky-500 px-4 py-2 inline-lg sm:block">inline-lg</div>
        <div className="hidden rounded-lg bg-sky-500 px-4 py-2 inline-md sm:block">inline-md</div>
        <div className="rounded-lg bg-sky-500 px-4 py-2 inline-sm">inline-sm</div>
        <div className="rounded-lg bg-sky-500 px-4 py-2 inline-xs">inline-xs</div>
        <div className="rounded-lg bg-sky-500 px-4 py-2 inline-2xs">inline-2xs</div>
        <div className="rounded-lg bg-sky-500 px-4 py-2 inline-3xs">inline-3xs</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inline-xl,inline-lg,inline-md,inline-sm,inline-xs,inline-2xs,inline-3xs] -->
<div class="inline-xl ...">inline-xl</div>
<div class="inline-lg ...">inline-lg</div>
<div class="inline-md ...">inline-md</div>
<div class="inline-sm ...">inline-sm</div>
<div class="inline-xs ...">inline-xs</div>
<div class="inline-2xs ...">inline-2xs</div>
<div class="inline-3xs ...">inline-3xs</div>
```

### Matching the viewport

Use the `inline-screen` utility to make an element span the entire inline size of the viewport:

```html
<!-- [!code classes:inline-screen] -->
<div class="inline-screen">
  <!-- ... -->
</div>
```

### Resetting the inline size

Use the `inline-auto` utility to remove an element's assigned inline size under a specific condition, like at a particular breakpoint:

```html
<!-- [!code classes:inline-full,inline-auto] -->
<div class="inline-full md:inline-auto">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# isolation

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/isolation*

"Utilities for controlling whether an element should explicitly create a new stacking context.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `isolate` | `isolation: isolate;` |
| `isolation-auto` | `isolation: auto;` |

## Examples

### Basic example

Use the `isolate` and `isolation-auto` utilities to control whether an element should explicitly create a new stacking context:

```html
<!-- [!code classes:isolate] -->
<div class="isolate ...">
  <!-- ... -->
</div>
```

### Responsive design


---

# justify-content

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/justify-content*

"Utilities for controlling how flex and grid items are positioned along a container's main axis.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `justify-start` | `justify-content: flex-start;` |
| `justify-end` | `justify-content: flex-end;` |
| `justify-end-safe` | `justify-content: safe flex-end;` |
| `justify-center` | `justify-content: center;` |
| `justify-center-safe` | `justify-content: safe center;` |
| `justify-between` | `justify-content: space-between;` |
| `justify-around` | `justify-content: space-around;` |
| `justify-evenly` | `justify-content: space-evenly;` |
| `justify-stretch` | `justify-content: stretch;` |
| `justify-baseline` | `justify-content: baseline;` |
| `justify-normal` | `justify-content: normal;` |

## Examples

### Start

Use the `justify-start` utility to justify items against the start of the container's main axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex justify-start space-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-start] -->
<div class="flex justify-start ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Center

Use the `justify-center` or `justify-center-safe` utilities to justify items along the center of the container's main axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">justify-center</p>
        <div className="mt-4 grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex justify-center space-x-4 overflow-hidden rounded-lg font-mono text-sm leading-6 font-bold text-white">
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">01</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">02</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">03</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">04</div>
          </div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-center-safe
        </p>
        <div className="mt-4 grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex justify-center-safe space-x-4 overflow-hidden rounded-lg font-mono text-sm leading-6 font-bold text-white">
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">01</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">02</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">03</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">04</div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-center] -->
<!-- [!code classes:justify-center] -->
<div class="flex justify-center ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

```html
<!-- [!code filename:justify-center-safe] -->
<!-- [!code classes:justify-center-safe] -->
<div class="flex justify-center-safe ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

When there is not enough space available, the `justify-center-safe` utility will align items to the start of the container instead of the center.

### End

Use the `justify-end` or `justify-end-safe` utilities to justify items against the end of the container's main axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">justify-end</p>
        <div className="mt-4 grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex justify-end space-x-4 overflow-hidden rounded-lg font-mono text-sm leading-6 font-bold text-white">
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-pink-500">01</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-pink-500">02</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-pink-500">03</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-pink-500">04</div>
          </div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">justify-end-safe</p>
        <div className="mt-4 grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex justify-end-safe space-x-4 overflow-hidden rounded-lg font-mono text-sm leading-6 font-bold text-white">
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
            <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-fuchsia-500">04</div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-end] -->
<!-- [!code classes:justify-end] -->
<div class="flex justify-end ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

```html
<!-- [!code filename:justify-end-safe] -->
<!-- [!code classes:justify-end-safe] -->
<div class="flex justify-end-safe ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

When there is not enough space available, the `justify-end-safe` utility will align items to the start of the container instead of the end.

### Space between

Use the `justify-between` utility to justify items along the container's main axis such that there is an equal amount of space between each item:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex justify-between space-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-cyan-500">01</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-cyan-500">02</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-cyan-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-between] -->
<div class="flex justify-between ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Space around

Use the `justify-around` utility to justify items along the container's main axis such that there is an equal amount of space on each side of each item:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex justify-around space-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-purple-500">01</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-purple-500">02</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-purple-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-around] -->
<div class="flex justify-around ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Space evenly

Use the `justify-evenly` utility to justify items along the container's main axis such that there is an equal amount of space around each item, but also accounting for the doubling of space you would normally see between each item when using `justify-around`:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex justify-evenly space-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">01</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">02</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-indigo-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-evenly] -->
<div class="flex justify-evenly ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Stretch

Use the `justify-stretch` utility to allow auto-sized content items to fill the available space along the container's main axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-[4rem_auto_4rem] justify-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-stretch] -->
<div class="grid grid-cols-[4rem_auto_4rem] justify-stretch ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Normal

Use the `justify-normal` utility to pack content items in their default position as if no `justify-content` value was set:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 flex justify-normal space-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">01</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">02</div>
        <div className="flex size-14 shrink-0 items-center justify-center rounded-lg bg-blue-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-normal] -->
<div class="flex justify-normal ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

### Responsive design


---

# justify-items

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/justify-items*

| Clase | Propiedades CSS |
| :--- | :--- |
| `justify-items-start` | `justify-items: start;` |
| `justify-items-end` | `justify-items: end;` |
| `justify-items-end-safe` | `justify-items: safe end;` |
| `justify-items-center` | `justify-items: center;` |
| `justify-items-center-safe` | `justify-items: safe center;` |
| `justify-items-stretch` | `justify-items: stretch;` |
| `justify-items-normal` | `justify-items: normal;` |

## Examples

### Start

Use the `justify-items-start` utility to justify grid items against the start of their inline axis:

  {
    <div className="grid grid-cols-3 gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          01
        </div>
      </div>
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          02
        </div>
      </div>
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          03
        </div>
      </div>
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          04
        </div>
      </div>
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          05
        </div>
      </div>
      <div className="grid rounded-lg">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center justify-self-start rounded-lg bg-sky-500">
          06
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-items-start] -->
<div class="grid justify-items-start ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### End

Use the `justify-items-end` or `justify-items-end-safe` utilities to justify grid items against the end of their inline axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">justify-items-end</p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="grid grid-cols-1 justify-items-end">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-blue-500 p-4">01</div>
          </div>
          <div className="grid grid-cols-1 justify-items-end">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-blue-500 p-4">02</div>
          </div>
          <div className="grid grid-cols-1 justify-items-end">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-blue-500 p-4">03</div>
          </div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-items-end-safe
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="grid grid-cols-1 justify-items-end-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-purple-500 p-4">01</div>
          </div>
          <div className="grid grid-cols-1 justify-items-end-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-purple-500 p-4">02</div>
          </div>
          <div className="grid grid-cols-1 justify-items-end-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-purple-500 p-4">03</div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-items-end] -->
<!-- [!code classes:justify-items-end] -->
<div class="grid grid-flow-col justify-items-end ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

```html
<!-- [!code filename:justify-items-end-safe] -->
<!-- [!code classes:justify-items-end-safe] -->
<div class="grid grid-flow-col justify-items-end-safe ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

</ CodeExampleStack>

When there is not enough space available, the `justify-items-end-safe` utility will align items to the start of the container instead of the end.

### Center

Use the `justify-items-center` or `justify-items-center-safe` utilities to justify grid items against the end of their inline axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-items-center
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="grid grid-cols-1 justify-items-center">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-indigo-500 p-4">01</div>
          </div>
          <div className="grid grid-cols-1 justify-items-center">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-indigo-500 p-4">02</div>
          </div>
          <div className="grid grid-cols-1 justify-items-center">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-indigo-500 p-4">03</div>
          </div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-items-center-safe
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="grid grid-cols-1 justify-items-center-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-500 p-4">01</div>
          </div>
          <div className="grid grid-cols-1 justify-items-center-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-500 p-4">02</div>
          </div>
          <div className="grid grid-cols-1 justify-items-center-safe">
            
            <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-500 p-4">03</div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-items-center] -->
<!-- [!code classes:justify-items-center] -->
<div class="grid grid-flow-col justify-items-center ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

```html
<!-- [!code filename:justify-items-center-safe] -->
<!-- [!code classes:justify-items-center-safe] -->
<div class="grid grid-flow-col justify-items-center-safe ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

When there is not enough space available, the `justify-items-center-safe` utility will align items to the start of the container instead of the center.

### Stretch

Use the `justify-items-stretch` utility to stretch items along their inline axis:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-3 justify-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">01</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">02</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">03</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">04</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">05</div>
        <div className="flex h-14 items-center justify-center rounded-lg bg-blue-500">06</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-items-stretch] -->
<div class="grid justify-items-stretch ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Responsive design


---

# justify-self

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/justify-self*

| Clase | Propiedades CSS |
| :--- | :--- |
| `justify-self-auto` | `justify-self: auto;` |
| `justify-self-start` | `justify-self: start;` |
| `justify-self-center` | `justify-self: center;` |
| `justify-self-center-safe` | `justify-self: safe center;` |
| `justify-self-end` | `justify-self: end;` |
| `justify-self-end-safe` | `justify-self: safe end;` |
| `justify-self-stretch` | `justify-self: stretch;` |

## Examples

### Auto

Use the `justify-self-auto` utility to align an item based on the value of the grid's `justify-items` property:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-4 text-center font-mono text-sm leading-6 font-bold text-white">
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">01</div>
        <div className="justify-self-auto rounded-lg bg-purple-500 p-4">02</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">03</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">04</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">05</div>
        <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-400">06</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-self-auto] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-auto ...">02</div>
  <!-- ... -->
</div>
```

### Start

Use the `justify-self-start` utility to align a grid item to the start of its inline axis:

  {
    <div className="grid auto-rows-fr grid-cols-3 justify-items-stretch gap-4 text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">01</div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 justify-self-start rounded-lg bg-pink-500 p-4">02</div>
      </div>
      <div className="rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">03</div>
      <div className="rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">04</div>
      <div className="rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">05</div>
      <div className="rounded-lg bg-pink-300 p-4 dark:bg-pink-800 dark:text-pink-400">06</div>
    </div>
  }

```html
<!-- [!code classes:justify-self-start] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-start ...">02</div>
  <!-- ... -->
</div>
```

### Center

Use the `justify-self-center` or `justify-self-center-safe` utilities to align a grid item along the center of its inline axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-self-center
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-500">01</div>
          <div className="grid grid-cols-1">
            
            <div className="col-start-1 row-start-1 size-14 justify-self-center rounded-lg bg-indigo-500 p-4">02</div>
          </div>
          <div className="rounded-lg bg-indigo-300 p-4 dark:bg-indigo-800 dark:text-indigo-500">03</div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-self-center-safe
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-500">01</div>
          <div className="grid grid-cols-1">
            
            <div className="col-start-1 row-start-1 size-14 justify-self-center-safe rounded-lg bg-sky-500 p-4">02</div>
          </div>
          <div className="rounded-lg bg-sky-300 p-4 dark:bg-sky-800 dark:text-sky-500">03</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-self-center] -->
<!-- [!code classes:justify-self-center] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-center ...">02</div>
  <!-- ... -->
</div>
```

```html
<!-- [!code filename:justify-self-center-safe] -->
<!-- [!code classes:justify-self-center-safe] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-center-safe ...">02</div>
  <!-- ... -->
</div>
```

When there is not enough space available, the `justify-self-center-safe` utility will align the item to the start of the container instead of the end.

### End

Use the `justify-self-end` or `justify-self-end-safe` utilities to align a grid item to the end of its inline axis:

  {
    <div className="grid grid-cols-1 gap-8">
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">justify-self-end</p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="rounded-lg bg-blue-300 p-4 dark:bg-blue-800 dark:text-blue-500">01</div>
          <div className="grid grid-cols-1">
            
            <div className="col-start-1 row-start-1 size-14 justify-self-end rounded-lg bg-blue-500 p-4">02</div>
          </div>
          <div className="rounded-lg bg-blue-300 p-4 dark:bg-blue-800 dark:text-blue-500">03</div>
        </div>
      </div>
      <div>
        <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          justify-self-end-safe
        </p>
        <div className="mt-4 grid auto-rows-fr grid-cols-3 justify-items-stretch gap-10 text-center font-mono text-sm leading-6 font-bold text-white">
          <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-500">01</div>
          <div className="grid grid-cols-1">
            
            <div className="col-start-1 row-start-1 size-14 justify-self-end-safe rounded-lg bg-purple-500 p-4">02</div>
          </div>
          <div className="rounded-lg bg-purple-300 p-4 dark:bg-purple-800 dark:text-purple-500">03</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code filename:justify-self-end] -->
<!-- [!code classes:justify-self-end] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-end ...">02</div>
  <!-- ... -->
</div>
```

```html
<!-- [!code filename:justify-self-end-safe] -->
<!-- [!code classes:justify-self-end-safe] -->
<div class="grid justify-items-stretch ...">
  <!-- ... -->
  <div class="justify-self-end-safe ...">02</div>
  <!-- ... -->
</div>
```

When there is not enough space available, the `justify-self-end-safe` utility will align the item to the start of the container instead of the end.

### Stretch

Use the `justify-self-stretch` utility to stretch a grid item to fill the grid area on its inline axis:

  {
    <div className="grid auto-rows-fr grid-cols-3 justify-items-stretch gap-4 text-center font-mono text-sm leading-6 font-bold text-white">
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          01
        </div>
      </div>
      <div className="bg-stripes-fuchsia grid w-full justify-self-stretch rounded-lg">
        <div className="justify-self-stretch rounded-lg bg-fuchsia-500 p-4">02</div>
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          03
        </div>
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          04
        </div>
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          05
        </div>
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 size-14 rounded-lg bg-fuchsia-300 p-4 dark:bg-fuchsia-800 dark:text-fuchsia-400">
          06
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:justify-self-stretch] -->
<div class="grid justify-items-start ...">
  <!-- ... -->
  <div class="justify-self-stretch ...">02</div>
  <!-- ... -->
</div>
```

### Responsive design


---

# letter-spacing

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/letter-spacing*

| Clase | Propiedades CSS |
| :--- | :--- |
| `tracking-tighter` | `letter-spacing: var(--tracking-tighter); /* -0.05em */` |
| `tracking-tight` | `letter-spacing: var(--tracking-tight); /* -0.025em */` |
| `tracking-normal` | `letter-spacing: var(--tracking-normal); /* 0em */` |
| `tracking-wide` | `letter-spacing: var(--tracking-wide); /* 0.025em */` |
| `tracking-wider` | `letter-spacing: var(--tracking-wider); /* 0.05em */` |
| `tracking-widest` | `letter-spacing: var(--tracking-widest); /* 0.1em */` |
| `tracking-(<custom-property>)` | `letter-spacing: var(<custom-property>);` |
| `tracking-[<value>]` | `letter-spacing: <value>;` |

## Examples

### Basic example

Use utilities like `tracking-tight` and `tracking-wide` to set the letter spacing of an element:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">tracking-tight</span>
        <p className="text-lg font-medium tracking-tight text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">tracking-normal</span>
        <p className="text-lg font-medium tracking-normal text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">tracking-wide</span>
        <p className="text-lg font-medium tracking-wide text-gray-900 dark:text-gray-200">
          The quick brown fox jumps over the lazy dog.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:tracking-tight,tracking-normal,tracking-wide] -->
<p class="tracking-tight ...">The quick brown fox ...</p>
<p class="tracking-normal ...">The quick brown fox ...</p>
<p class="tracking-wide ...">The quick brown fox ...</p>
```

### Using negative values

Using negative values doesn't make a ton of sense with the named letter spacing scale Tailwind includes out of the box, but if you've customized your scale to use numbers it can be useful:

```css
@theme {
  --tracking-1: 0em;
  --tracking-2: 0.025em;
  --tracking-3: 0.05em;
  --tracking-4: 0.1em;
}
```

To use a negative letter spacing value, prefix the class name with a dash to convert it to a negative value:

```html
<!-- [!code classes:-tracking-2] -->
<p class="-tracking-2">The quick brown fox ...</p>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# line-clamp

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/line-clamp*

| Clase | Propiedades CSS |
| :--- | :--- |
| `line-clamp-<number>` | `overflow: hidden;\ndisplay: -webkit-box;\n-webkit-box-orient: vertical;\n-webkit-line-clamp: <number>;` |
| `line-clamp-none` | `overflow: visible;\ndisplay: block;\n-webkit-box-orient: horizontal;\n-webkit-line-clamp: unset;` |
| `line-clamp-(<custom-property>)` | `overflow: hidden;\ndisplay: -webkit-box;\n-webkit-box-orient: vertical;\n-webkit-line-clamp: var(<custom-property>);` |
| `line-clamp-[<value>]` | `overflow: hidden;\ndisplay: -webkit-box;\n-webkit-box-orient: vertical;\n-webkit-line-clamp: <value>;` |

## Examples

### Basic example

Use `line-clamp-<number>` utilities like `line-clamp-2` and `line-clamp-3` to truncate multi-line text after a specific number of lines:

  {
    <div className="px-4 sm:px-0">
      <article className="mx-auto max-w-sm p-8 text-gray-700 dark:text-gray-400">
        <time dateTime="2020-03-16" className="block text-sm leading-6 text-gray-500 dark:text-gray-400">
          Mar 10, 2020
        </time>
        <div className="mt-2 text-lg font-semibold text-gray-900 dark:text-gray-200">Boost your conversion rate</div>
        <p className="mt-4 line-clamp-3 text-sm leading-6 text-gray-500 dark:text-gray-400">
          Nulla dolor velit adipisicing duis excepteur esse in duis nostrud occaecat mollit incididunt deserunt sunt. Ut
          ut sunt laborum ex occaecat eu tempor labore enim adipisicing minim ad. Est in quis eu dolore occaecat
          excepteur fugiat dolore nisi aliqua fugiat enim ut cillum. Labore enim duis nostrud eu. Est ut eiusmod
          consequat irure quis deserunt ex. Enim laboris dolor magna pariatur. Dolor et ad sint voluptate sunt elit
          mollit officia ad enim sit consectetur enim.
        </p>
        <div className="mt-4 flex gap-x-2.5 text-sm leading-6 font-semibold text-gray-900 dark:text-gray-200">
          <img
            className="h-6 w-6 flex-none rounded-full bg-gray-50 dark:bg-gray-900"
            src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
            alt=""
          />
          Lindsay Walton
        </div>
      </article>
    </div>
  }

```html
<!-- [!code classes:line-clamp-3] -->
<article>
  <time>Mar 10, 2020</time>
  <h2>Boost your conversion rate</h2>
  <p class="line-clamp-3">
    Nulla dolor velit adipisicing duis excepteur esse in duis nostrud occaecat mollit incididunt deserunt sunt. Ut ut
    sunt laborum ex occaecat eu tempor labore enim adipisicing minim ad. Est in quis eu dolore occaecat excepteur fugiat
    dolore nisi aliqua fugiat enim ut cillum. Labore enim duis nostrud eu. Est ut eiusmod consequat irure quis deserunt
    ex. Enim laboris dolor magna pariatur. Dolor et ad sint voluptate sunt elit mollit officia ad enim sit consectetur
    enim.
  </p>
  <div>
    <img src="/img/lindsay.jpg" />
    Lindsay Walton
  </div>
</article>
```

### Undoing line clamping

Use `line-clamp-none` to undo a previously applied line clamp utility:

```html
<!-- [!code classes:lg:line-clamp-none] -->
<p class="line-clamp-3 lg:line-clamp-none">
  <!-- ... -->
</p>
```

### Using a custom value

### Responsive design


---

# line-height

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/line-height*

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-<size>/<number>` | `font-size: <size>;\nline-height: calc(var(--spacing) * <number>);` |
| `text-<size>/(<custom-property>)` | `font-size: <size>;\nline-height: var(<custom-property>);` |
| `text-<size>/[<value>]` | `font-size: <size>;\nline-height: <value>;` |
| `leading-none` | `line-height: 1;` |
| `leading-<number>` | `line-height: calc(var(--spacing) * <number>);` |
| `leading-(<custom-property>)` | `line-height: var(<custom-property>);` |
| `leading-[<value>]` | `line-height: <value>;` |

## Examples

### Basic example

Use font size utilities like `text-sm/6` and `text-lg/7` to set the font size and line-height of an element at the same time:

{
  <div className="flex flex-col gap-8">
    <div>
      <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/6</span>
      <p className="text-sm/6 text-gray-900 dark:text-gray-200">
        So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
        my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship
        of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
      </p>
    </div>
    <div>
      <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/7</span>
      <p className="text-sm/7 text-gray-900 dark:text-gray-200">
        So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
        my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship
        of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
      </p>
    </div>
    <div>
      <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">text-sm/8</span>
      <p className="text-sm/8 text-gray-900 dark:text-gray-200">
        So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
        my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship
        of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
      </p>
    </div>

  </div>
}

```html
<!-- [!code classes:text-base/6,text-base/7,text-base/8] -->
<p class="text-base/6 ...">So I started to walk into the water...</p>
<p class="text-base/7 ...">So I started to walk into the water...</p>
<p class="text-base/8 ...">So I started to walk into the water...</p>
```

Each font size utility also sets a default line height when one isn't provided. You can learn more about these values and how to customize them in the [font-size documentation](/docs/font-size).

### Setting independently

Use `leading-<number>` utilities like `leading-6` and `leading-7` to set the line height of an element independent of the font-size:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">leading-6</span>
        <p className="leading-6 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">leading-7</span>
        <p className="leading-7 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">leading-8</span>
        <p className="leading-8 text-gray-900 dark:text-gray-200">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:leading-6,leading-7,leading-8] -->
<p class="text-sm leading-6">So I started to walk into the water...</p>
<p class="text-sm leading-7">So I started to walk into the water...</p>
<p class="text-sm leading-8">So I started to walk into the water...</p>
```

### Removing the leading

Use the `leading-none` utility to set the line height of an element equal to its font size:

  {
    <p className="mx-auto max-w-2xs text-2xl leading-none text-gray-900 dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:leading-none] -->
<p class="text-2xl leading-none ...">The quick brown fox...</p>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# list-style-image

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/list-style-image*

| Clase | Propiedades CSS |
| :--- | :--- |
| `list-image-[<value>]` | `list-style-image: <value>;` |
| `list-image-(<custom-property>)` | `list-style-image: var(<custom-property>);` |
| `list-image-none` | `list-style-image: none;` |

## Examples

### Basic example

Use the `list-image-[<value>]` syntax to control the marker image for list items:

  {
    <div className="px-4 sm:px-0">
      <div className="mx-auto max-w-sm p-8 text-gray-700 sm:text-base sm:leading-7 dark:text-gray-400">
        <ul className="list-image-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxNCAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzhiZGY4Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy42ODUuMTUzYS43NTIuNzUyIDAgMCAxIC4xNDMgMS4wNTJsLTggMTAuNWEuNzUuNzUgMCAwIDEtMS4xMjcuMDc1bC00LjUtNC41YS43NS43NSAwIDAgMSAxLjA2LTEuMDZsMy44OTQgMy44OTMgNy40OC05LjgxN2EuNzUuNzUgMCAwIDEgMS4wNS0uMTQzWiIgLz48L3N2Zz4=')] pl-4 text-gray-900 dark:text-gray-200">
          <li className="pl-2">5 cups chopped Porcini mushrooms</li>
          <li className="pl-2">1/2 cup of olive oil</li>
          <li className="pl-2">3lb of celery</li>
        </ul>
      </div>
    </div>
  }

```html
<!-- [!code classes:list-image-[url(/img/checkmark.png)]] -->
<ul class="list-image-[url(/img/checkmark.png)]">
  <li>5 cups chopped Porcini mushrooms</li>
  <!-- ... -->
</ul>
```

### Using a CSS variable

Use the <code>list-image-{'(<custom-property>)'}</code> syntax to control the marker image for list items using a CSS variable:

```html
<!-- [!code classes:list-image-(--my-list-image)] -->
<ul class="list-image-(--my-list-image)">
  <!-- ... -->
</ul>
```

This is just a shorthand for <code>list-image-{'[var(<custom-property>)]'}</code> that adds the `var()` function for you automatically.

### Removing a marker image

Use the `list-image-none` utility to remove an existing marker image from list items:

```html
<!-- [!code classes:list-image-none] -->
<ul class="list-image-none">
  <!-- ... -->
</ul>
```

### Responsive design


---

# list-style-position

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/list-style-position*

| Clase | Propiedades CSS |
| :--- | :--- |
| `list-inside` | `list-style-position: inside;` |
| `list-outside` | `list-style-position: outside;` |

## Examples

### Basic example

Use utilities like `list-inside` and `list-outside` to control the position of the markers and text indentation in a list:

  {
    <div className="flex flex-col gap-8 sm:flex-row">
      <div className="relative">
        <div className="absolute -top-8 -bottom-8 left-8 w-px bg-pink-400/40 dark:bg-pink-400/30"></div>
        <p className="mb-3 ml-8 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">list-inside</p>
        <ul className="list-inside list-disc rounded-xl p-4 pl-8 text-gray-900 dark:text-gray-200">
          <li>5 cups chopped Porcini mushrooms</li>
          <li>1/2 cup of olive oil</li>
          <li>3lb of celery</li>
        </ul>
      </div>
      <div className="relative">
        <div className="absolute top-0 -bottom-8 left-8 w-px bg-pink-400/40 sm:-top-8 dark:bg-pink-400/30"></div>
        <p className="mb-3 ml-8 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">list-outside</p>
        <ul className="list-outside list-disc rounded-xl p-4 pl-8 text-gray-900 dark:text-gray-200">
          <li>5 cups chopped Porcini mushrooms</li>
          <li>1/2 cup of olive oil</li>
          <li>3lb of celery</li>
        </ul>
      </div>
    </div>
  }

```html
<!-- [!code classes:list-inside] -->
<ul class="list-inside">
  <li>5 cups chopped Porcini mushrooms</li>
  <!-- ... -->
</ul>

<!-- [!code classes:list-outside] -->
<ul class="list-outside">
  <li>5 cups chopped Porcini mushrooms</li>
  <!-- ... -->
</ul>
```

### Responsive design


---

# list-style-type

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/list-style-type*

| Clase | Propiedades CSS |
| :--- | :--- |
| `list-disc` | `list-style-type: disc;` |
| `list-decimal` | `list-style-type: decimal;` |
| `list-none` | `list-style-type: none;` |
| `list-(<custom-property>)` | `list-style-type: var(<custom-property>);` |
| `list-[<value>]` | `list-style-type: <value>;` |

## Examples

### Basic example

Use utilities like `list-disc` and `list-decimal` to control the style of the markers in a list:

  {
    <div className="flex flex-col gap-8">
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">list-disc</span>
        <ul className="list-inside list-disc text-gray-900 dark:text-gray-200">
          <li>Now this is a story all about how, my life got flipped-turned upside down</li>
          <li>And I'd like to take a minute just sit right there</li>
          <li>I'll tell you how I became the prince of a town called Bel-Air</li>
        </ul>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">list-decimal</span>
        <ul className="list-inside list-decimal text-gray-900 dark:text-gray-200">
          <li>Now this is a story all about how, my life got flipped-turned upside down</li>
          <li>And I'd like to take a minute just sit right there</li>
          <li>I'll tell you how I became the prince of a town called Bel-Air</li>
        </ul>
      </div>
      <div>
        <span className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">list-none</span>
        <ul className="list-inside list-none text-gray-900 dark:text-gray-200">
          <li>Now this is a story all about how, my life got flipped-turned upside down</li>
          <li>And I'd like to take a minute just sit right there</li>
          <li>I'll tell you how I became the prince of a town called Bel-Air</li>
        </ul>
      </div>
    </div>
  }

```html
<!-- [!code classes:list-disc] -->
<ul class="list-disc">
  <li>Now this is a story all about how, my life got flipped-turned upside down</li>
  <!-- ... -->
</ul>

<!-- [!code classes:list-decimal] -->
<ol class="list-decimal">
  <li>Now this is a story all about how, my life got flipped-turned upside down</li>
  <!-- ... -->
</ol>

<!-- [!code classes:list-none] -->
<ul class="list-none">
  <li>Now this is a story all about how, my life got flipped-turned upside down</li>
  <!-- ... -->
</ul>
```

### Using a custom value

### Responsive design


---

# margin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/margin*

| Clase | Propiedades CSS |
| :--- | :--- |
| `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>;` |
| `mbs-<number>` | `margin-block-start: calc(var(--spacing) * <number>);` |
| `-mbs-<number>` | `margin-block-start: calc(var(--spacing) * -<number>);` |
| `mbs-auto` | `margin-block-start: auto;` |
| `mbs-px` | `margin-block-start: 1px;` |
| `-mbs-px` | `margin-block-start: -1px;` |
| `mbs-(<custom-property>)` | `margin-block-start: var(<custom-property>);` |
| `mbs-[<value>]` | `margin-block-start: <value>;` |
| `mbe-<number>` | `margin-block-end: calc(var(--spacing) * <number>);` |
| `-mbe-<number>` | `margin-block-end: calc(var(--spacing) * -<number>);` |
| `mbe-auto` | `margin-block-end: auto;` |
| `mbe-px` | `margin-block-end: 1px;` |
| `-mbe-px` | `margin-block-end: -1px;` |
| `mbe-(<custom-property>)` | `margin-block-end: var(<custom-property>);` |
| `mbe-[<value>]` | `margin-block-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-reverse` | `& > :not(:last-child)) {         --tw-space-x-reverse: 1;       }` |
| `space-y-reverse` | `& > :not(:last-child)) {         --tw-space-y-reverse: 1;       }` |

## Examples

### Basic example

Use `m-<number>` utilities like `m-4` and `m-8` to control the margin on all sides of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="relative flow-root rounded-lg">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative m-8 rounded-lg bg-blue-500 p-4">m-8</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:m-8] -->
<div class="m-8 ...">m-8</div>
```

### Adding margin to a single side

Use `mt-<number>`, `mr-<number>`, `mb-<number>`, and `ml-<number>` utilities like `ml-2` and `mt-6` to control the margin on one side of an element:

  {
    <div className="relative h-56 font-mono text-sm leading-6 font-bold text-white">
      <div className="absolute top-0 left-1/2 -translate-x-1/2 md:-ml-24">
        <div className="relative pt-6">
          
          <div className="relative rounded-lg bg-purple-500 p-4">mt-6</div>
        </div>
      </div>
      <div className="absolute top-1/2 right-0 -translate-y-1/2">
        <div className="relative pr-4">
          
          <div className="relative rounded-lg bg-purple-500 p-4">mr-4</div>
        </div>
      </div>
      <div className="absolute bottom-0 left-1/2 -translate-x-1/2 md:ml-24">
        <div className="relative pb-8">
          
          <div className="relative rounded-lg bg-purple-500 p-4">mb-8</div>
        </div>
      </div>
      <div className="absolute top-1/2 left-0 -translate-y-1/2">
        <div className="relative pl-2">
          
          <div className="relative rounded-lg bg-purple-500 p-4">ml-2</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:mt-6,mr-4,mb-8,ml-2] -->
<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>
```

### Adding horizontal margin

Use `mx-<number>` utilities like `mx-4` and `mx-8` to control the horizontal margin of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="relative rounded-lg">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative mx-8 rounded-lg bg-indigo-500 p-4">mx-8</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:mx-8] -->
<div class="mx-8 ...">mx-8</div>
```

### Adding vertical margin

Use `my-<number>` utilities like `my-4` and `my-8` to control the vertical margin of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="relative flow-root rounded-lg">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative my-8 rounded-lg bg-pink-500 p-4">my-8</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:my-8] -->
<div class="my-8 ...">my-8</div>
```

### Using negative values

To use a negative margin value, prefix the class name with a dash to convert it to a negative value:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="flex flex-col items-center">
        <div className="relative h-16 w-36 overflow-hidden rounded-md border border-sky-700/10 bg-sky-400/20"></div>
        <div className="relative -mt-8 flex items-center justify-center rounded-md bg-sky-500 p-4">-mt-8</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-mt-8] -->
<div class="h-16 w-36 bg-sky-400 opacity-20 ..."></div>
<div class="-mt-8 bg-sky-300 ...">-mt-8</div>
```

### Using logical properties

Use `ms-<number>` or `me-<number>` utilities like `ms-4` and `me-8` to set the `margin-inline-start` and `margin-inline-end` logical properties:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4" dir="ltr">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="relative flex rounded-lg font-mono text-sm leading-6 font-bold text-white">
          
          <div className="relative ms-8 rounded-lg bg-indigo-500 p-4">ms-8</div>
        </div>
        <div className="relative mt-4 flex rounded-lg font-mono text-sm leading-6 font-bold text-white">
          
          <div className="relative me-8 rounded-lg bg-indigo-500 p-4">me-8</div>
        </div>
      </div>
      <div className="flex flex-col items-start gap-y-4" dir="rtl">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="relative flex rounded-lg font-mono text-sm leading-6 font-bold text-white">
          
          <div className="relative ms-8 rounded-lg bg-indigo-500 p-4">ms-8</div>
        </div>
        <div className="relative mt-4 flex rounded-lg font-mono text-sm leading-6 font-bold text-white">
          
          <div className="relative me-8 rounded-lg bg-indigo-500 p-4">me-8</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:ms-8,me-8] -->
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<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>
```

Use the `mbs-<number>` and `mbe-<number>` utilities to set the `margin-block-start` and `margin-block-end` logical properties, which map to either the top or bottom side based on the writing mode:

```html
<!-- [!code classes:mbs-8] -->
<div class="mbs-8 ...">mbs-8</div>
```

### Adding space between children

Use `space-x-<number>` or `space-y-<number>` utilities like `space-x-4` and `space-y-8` to control the space between elements:

  {
    <div className="flex justify-start font-mono text-sm leading-6 font-bold text-white">
      <div className="relative flex space-x-4 rounded-lg">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:space-x-4] -->
<div class="flex space-x-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

#### Reversing children order

If your elements are in reverse order (using say `flex-row-reverse` or `flex-col-reverse`), use the `space-x-reverse` or `space-y-reverse` utilities to ensure the space is added to the correct side of each element:

  {
    <div className="flex justify-end font-mono text-sm leading-6 font-bold text-white">
      <div className="relative flex flex-row-reverse space-x-4 space-x-reverse rounded-lg">
        <div className="absolute inset-0">
          
        </div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500">01</div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500">02</div>
        <div className="relative flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:flex-row-reverse,space-x-4,space-x-reverse] -->
<div class="flex flex-row-reverse space-x-4 space-x-reverse ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>
```

#### Limitations

The space utilities are really just a shortcut for adding margin to all-but-the-last-item in a group, and aren't designed to handle complex cases like grids, layouts that wrap, or situations where the children are rendered in a complex custom order rather than their natural DOM order.

For those situations, it's better to use the [gap utilities](/docs/gap) when possible, or add margin to every element with a matching negative margin on the parent.

Additionally, the space utilities are not designed to work together with the [divide utilities](/docs/border-width#between-children). For those situations, consider adding margin/padding utilities to the children instead.

### Using a custom value

### Responsive design

## Customizing your theme


---

# mask-clip

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-clip*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-clip-border` | `mask-clip: border-box;` |
| `mask-clip-padding` | `mask-clip: padding-box;` |
| `mask-clip-content` | `mask-clip: content-box;` |
| `mask-clip-fill` | `mask-clip: fill-box;` |
| `mask-clip-stroke` | `mask-clip: stroke-box;` |
| `mask-clip-view` | `mask-clip: view-box;` |
| `mask-no-clip` | `mask-clip: no-clip;` |

## Examples

### Basic example

Use utilities like `mask-clip-border`, `mask-clip-padding`, and `mask-clip-content` to control the bounding box of an element's mask:

  {
    <div className="flex flex-col items-center justify-center gap-y-10 text-center font-mono text-xs font-medium text-gray-500 sm:flex-row sm:space-y-0 sm:space-x-10 dark:text-gray-400">
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-clip-border</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-clip-border p-1.5"></div>
        </div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-clip-padding</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] rounded-lg border-3 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-clip-padding p-1.5"></div>
        </div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-clip-content</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] rounded-lg border-3 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-clip-content p-1.5"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-clip-border,mask-clip-padding,mask-clip-content] -->
<div class="mask-clip-border border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-clip-padding border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-clip-content border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Responsive design


---

# mask-composite

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-composite*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-add` | `mask-composite: add;` |
| `mask-subtract` | `mask-composite: subtract;` |
| `mask-intersect` | `mask-composite: intersect;` |
| `mask-exclude` | `mask-composite: exclude;` |

## Examples

### Basic example

Use utilities like `mask-add` and `mask-intersect` to control how an element's masks are combined together:

  {
    <div className="grid grid-cols-2 items-center justify-center justify-items-center gap-y-8 py-4 text-center font-mono text-xs font-medium text-gray-500 max-sm:grid-cols-1 dark:text-gray-400">
      <div className="relative grid justify-center">
        <div className="absolute right-[calc(5%-2px)] bottom-[-2px] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <div className="absolute bottom-[-2px] left-[calc(5%-2px)] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <p className="mb-3">mask-add</p>
        <div className="h-24 w-48 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-[radial-gradient(ellipse_25%_50%_at_30%_50%,white_100%,transparent_100%),radial-gradient(ellipse_25%_50%_at_70%_50%,white_100%,transparent_100%)] bg-cover bg-center mask-add"></div>
      </div>
      <div className="relative grid justify-center">
        <div className="absolute right-[calc(5%-2px)] bottom-[-2px] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <div className="absolute bottom-[-2px] left-[calc(5%-2px)] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <p className="mb-3 text-center">mask-subtract</p>
        <div className="h-24 w-48 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-[radial-gradient(ellipse_25%_50%_at_30%_50%,white_100%,transparent_100%),radial-gradient(ellipse_25%_50%_at_70%_50%,white_100%,transparent_100%)] bg-cover bg-center mask-subtract"></div>
      </div>
      <div className="relative grid justify-center">
        <div className="absolute right-[calc(5%-2px)] bottom-[-2px] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <div className="absolute bottom-[-2px] left-[calc(5%-2px)] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <p className="mb-3 text-center">mask-intersect</p>
        <div className="h-24 w-48 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-[radial-gradient(ellipse_25%_50%_at_30%_50%,white_100%,transparent_100%),radial-gradient(ellipse_25%_50%_at_70%_50%,white_100%,transparent_100%)] bg-cover bg-center mask-intersect"></div>
      </div>
      <div className="relative grid justify-center">
        <div className="absolute right-[calc(5%-2px)] bottom-[-2px] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <div className="absolute bottom-[-2px] left-[calc(5%-2px)] box-content size-24 rounded-full border-2 border-dashed border-black/10 dark:border-white/20" />
        <p className="mb-3 text-center">mask-exclude</p>
        <div className="h-24 w-48 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-[radial-gradient(ellipse_25%_50%_at_30%_50%,white_100%,transparent_100%),radial-gradient(ellipse_25%_50%_at_70%_50%,white_100%,transparent_100%)] bg-cover bg-center mask-exclude"></div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-add,mask-subtract,mask-intersect,mask-exclude] -->
<div class="mask-add mask-[url(/img/circle.png),url(/img/circle.png)] mask-position-[30%_50%,70%_50%] bg-[url(/img/mountains.jpg)]"></div>
<div class="mask-subtract mask-[url(/img/circle.png),url(/img/circle.png)] mask-position-[30%_50%,70%_50%] bg-[url(/img/mountains.jpg)]"></div>
<div class="mask-intersect mask-[url(/img/circle.png),url(/img/circle.png)] mask-position-[30%_50%,70%_50%] bg-[url(/img/mountains.jpg)]"></div>
<div class="mask-exclude mask-[url(/img/circle.png),url(/img/circle.png)] mask-position-[30%_50%,70%_50%] bg-[url(/img/mountains.jpg)]"></div>
```

### Responsive design


---

# mask-image

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-image*

<svg className="sr-only">
  <defs>
    <pattern id="checkerboard" x="0.5" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
      <rect x="0" y="0" width="5" height="5" fill="#fff" />
      <rect x="5" y="0" width="5" height="5" fill="#808080" />
      <rect x="0" y="5" width="5" height="5" fill="#808080" />
      <rect x="5" y="5" width="5" height="5" fill="#fff" />
    </pattern>
  </defs>
</svg>

<svg className="hidden">
  <symbol id="gradient-color-stop" viewBox="0 0 32 34">
    <path
      fill="url(#checkerboard)"
      stroke="#000"
      strokeOpacity=".05"
      d="M5 .5h22A3.5 3.5 0 0 1 30.5 4v19.6a3.5 3.5 0 0 1-1.853 3.088L16 33.433 3.353 26.688A3.5 3.5 0 0 1 1.5 23.6V4A3.5 3.5 0 0 1 5 .5Z"
    />
    <path
      fill="currentColor"
      d="M1 4a4 4 0 0 1 4-4h22a4 4 0 0 1 4 4v19.6a4 4 0 0 1-2.118 3.53L16 34 3.118 27.13A4 4 0 0 1 1 23.6V4Z"
    />
  </symbol>
</svg>

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-[<value>]` | `mask-image: <value>;` |
| `mask-(<custom-property>)` | `mask-image: var(<custom-property>);` |
| `mask-none` | `mask-image: none;` |
| `mask-linear-<number>` | `mask-image: linear-gradient(<number>deg, black var(--tw-mask-linear-from)), transparent var(--tw-mask-linear-to));` |
| `-mask-linear-<number>` | `mask-image: linear-gradient(calc(<number>deg * -1), black var(--tw-mask-linear-from)), transparent var(--tw-mask-linear-to));` |
| `mask-linear-from-<number>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black calc(var(--spacing) * <number>), transparent var(--tw-mask-linear-to));` |
| `mask-linear-from-<percentage>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black <percentage>, transparent var(--tw-mask-linear-to));` |
| `mask-linear-from-<color>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), <color> var(--tw-mask-linear-from), transparent var(--tw-mask-linear-to));` |
| `mask-linear-from-(<custom-property>)` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black <custom-property>, transparent var(--tw-mask-linear-to));` |
| `mask-linear-from-[<value>]` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black <value>, transparent var(--tw-mask-linear-to));` |
| `mask-linear-to-<number>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black var(--tw-mask-linear-from), transparent calc(var(--spacing) * <number>));` |
| `mask-linear-to-<percentage>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black var(--tw-mask-linear-from), transparent <percentage>);` |
| `mask-linear-to-<color>` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black var(--tw-mask-linear-from), <color> var(--tw-mask-linear-to));` |
| `mask-linear-to-(<custom-property>)` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black var(--tw-mask-linear-from), transparent var(<custom-property>));` |
| `mask-linear-to-[<value>]` | `mask-image: linear-gradient(var(--tw-mask-linear-position), black var(--tw-mask-linear-from), transparent <value>);` |
| `mask-t-from-<number>` | `mask-image: linear-gradient(to top, black calc(var(--spacing) * <number>), transparent var(--tw-mask-top-to));` |
| `mask-t-from-<percentage>` | `mask-image: linear-gradient(to top, black <percentage>, transparent var(--tw-mask-top-to));` |
| `mask-t-from-<color>` | `mask-image: linear-gradient(to top, <color> var(--tw-mask-top-from), transparent var(--tw-mask-top-to));` |
| `mask-t-from-(<custom-property>)` | `mask-image: linear-gradient(to top, black var(<custom-property>), transparent var(--tw-mask-top-to));` |
| `mask-t-from-[<value>]` | `mask-image: linear-gradient(to top, black <value>, transparent var(--tw-mask-top-to));` |
| `mask-t-to-<number>` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent calc(var(--spacing) * <number>));` |
| `mask-t-to-<percentage>` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent <percentage>);` |
| `mask-t-to-<color>` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), <color> var(--tw-mask-top-to));` |
| `mask-t-to-(<custom-property>)` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent var(<custom-property>));` |
| `mask-t-to-[<value>]` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent <value>);` |
| `mask-r-from-<number>` | `mask-image: linear-gradient(to right, black calc(var(--spacing) * <number>), transparent var(--tw-mask-right-to));` |
| `mask-r-from-<percentage>` | `mask-image: linear-gradient(to right, black <percentage>, transparent var(--tw-mask-right-to));` |
| `mask-r-from-<color>` | `mask-image: linear-gradient(to right, <color> var(--tw-mask-right-from), transparent var(--tw-mask-right-to));` |
| `mask-r-from-(<custom-property>)` | `mask-image: linear-gradient(to right, black var(<custom-property>), transparent var(--tw-mask-right-to));` |
| `mask-r-from-[<value>]` | `mask-image: linear-gradient(to right, black <value>, transparent var(--tw-mask-right-to));` |
| `mask-r-to-<number>` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent calc(var(--spacing) * <number>));` |
| `mask-r-to-<percentage>` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent <percentage>);` |
| `mask-r-to-<color>` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), <color> var(--tw-mask-right-to));` |
| `mask-r-to-(<custom-property>)` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent var(<custom-property>));` |
| `mask-r-to-[<value>]` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent <value>);` |
| `mask-b-from-<number>` | `mask-image: linear-gradient(to bottom, black calc(var(--spacing) * <number>), transparent var(--tw-mask-bottom-to));` |
| `mask-b-from-<percentage>` | `mask-image: linear-gradient(to bottom, black <percentage>, transparent var(--tw-mask-bottom-to));` |
| `mask-b-from-<color>` | `mask-image: linear-gradient(to bottom, <color> var(--tw-mask-bottom-from), transparent var(--tw-mask-bottom-to));` |
| `mask-b-from-(<custom-property>)` | `mask-image: linear-gradient(to bottom, black var(<custom-property>), transparent var(--tw-mask-bottom-to));` |
| `mask-b-from-[<value>]` | `mask-image: linear-gradient(to bottom, black <value>, transparent var(--tw-mask-bottom-to));` |
| `mask-b-to-<number>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent calc(var(--spacing) * <number>));` |
| `mask-b-to-<percentage>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent <percentage>);` |
| `mask-b-to-<color>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-bottom-from), <color> var(--tw-mask-bottom-to));` |
| `mask-b-to-(<custom-property>)` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent var(<custom-property>));` |
| `mask-b-to-[<value>]` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent <value>);` |
| `mask-l-from-<number>` | `mask-image: linear-gradient(to left, black calc(var(--spacing) * <number>), transparent var(--tw-mask-left-to));` |
| `mask-l-from-<percentage>` | `mask-image: linear-gradient(to left, black <percentage>, transparent var(--tw-mask-left-to));` |
| `mask-l-from-<color>` | `mask-image: linear-gradient(to left, <color> var(--tw-mask-left-from), transparent var(--tw-mask-left-to));` |
| `mask-l-from-(<custom-property>)` | `mask-image: linear-gradient(to left, black var(<custom-property>), transparent var(--tw-mask-left-to));` |
| `mask-l-from-[<value>]` | `mask-image: linear-gradient(to left, black <value>, transparent var(--tw-mask-left-to));` |
| `mask-l-to-<number>` | `mask-image: linear-gradient(to left, black var(--tw-mask-left-from), transparent calc(var(--spacing) * <number>));` |
| `mask-l-to-<percentage>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-left-from), transparent <percentage>);` |
| `mask-l-to-<color>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-left-from), <color> var(--tw-mask-left-to));` |
| `mask-l-to-(<custom-property>)` | `mask-image: linear-gradient(to left, black var(--tw-mask-left-from), transparent var(<custom-property>));` |
| `mask-l-to-[<value>]` | `mask-image: linear-gradient(to left, black var(--tw-mask-left-from), transparent <value>);` |
| `mask-y-from-<number>` | `mask-image: linear-gradient(to top, black calc(var(--spacing) * <number>), transparent var(--tw-mask-top-to)), linear-gradient(to bottom, black calc(var(--spacing) * <number>), transparent var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-from-<percentage>` | `mask-image: linear-gradient(to top, black <percentage>, transparent var(--tw-mask-top-to)), linear-gradient(to bottom, black <percentage>, transparent var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-from-<color>` | `mask-image: linear-gradient(to top, <color> var(--tw-mask-top-from), transparent var(--tw-mask-top-to)), linear-gradient(to bottom, <color> var(--tw-mask-bottom-from), transparent var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-from-(<custom-property>)` | `mask-image: linear-gradient(to top, black var(<custom-property>), transparent var(--tw-mask-top-to)), linear-gradient(to bottom, black var(<custom-property>), transparent var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-from-[<value>]` | `mask-image: linear-gradient(to top, black <value>, transparent var(--tw-mask-top-to)), linear-gradient(to bottom, black <value>, transparent var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-to-<number>` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent calc(var(--spacing) * <number>)), linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent calc(var(--spacing) * <number>));         mask-composite: intersect;` |
| `mask-y-to-<percentage>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-top-from), transparent <percentage>), linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent <percentage>);         mask-composite: intersect;` |
| `mask-y-to-<color>` | `mask-image: linear-gradient(to bottom, black var(--tw-mask-top-from), <color> var(--tw-mask-top-to)), linear-gradient(to bottom, black var(--tw-mask-bottom-from), <color> var(--tw-mask-bottom-to));         mask-composite: intersect;` |
| `mask-y-to-(<custom-property>)` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent var(<custom-property>)),linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent var(<custom-property>));       mask-composite: intersect;` |
| `mask-y-to-[<value>]` | `mask-image: linear-gradient(to top, black var(--tw-mask-top-from), transparent <value>),linear-gradient(to bottom, black var(--tw-mask-bottom-from), transparent <value>);       mask-composite: intersect;` |
| `mask-x-from-<number>` | `mask-image: linear-gradient(to right, black calc(var(--spacing) * <number>), transparent var(--tw-mask-right-to)), linear-gradient(to left, black calc(var(--spacing) * <number>), transparent var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-from-<percentage>` | `mask-image: linear-gradient(to right, black <percentage>, transparent var(--tw-mask-right-to)), linear-gradient(to left, black <percentage>, transparent var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-from-<color>` | `mask-image: linear-gradient(to right, <color> var(--tw-mask-right-from), transparent var(--tw-mask-right-to)), linear-gradient(to left, <color>  var(--tw-mask-left-from), transparent var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-from-(<custom-property>)` | `mask-image: linear-gradient(to right, black var(<custom-property>), transparent var(--tw-mask-right-to)), linear-gradient(to left, black var(<custom-property>), transparent var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-from-[<value>]` | `mask-image: linear-gradient(to right, black <value>, transparent var(--tw-mask-right-to)), linear-gradient(to left, black <value>, transparent var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-to-<number>` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent calc(var(--spacing) * <number>)), linear-gradient(to left, black var(--tw-mask-left-from), transparent calc(var(--spacing) * <number>));         mask-composite: intersect;` |
| `mask-x-to-<percentage>` | `mask-image: linear-gradient(to left, black var(--tw-mask-right-from), transparent <percentage>), linear-gradient(to left, black var(--tw-mask-left-from), transparent <percentage>);         mask-composite: intersect;` |
| `mask-x-to-<color>` | `mask-image: linear-gradient(to left, black var(--tw-mask-right-from), <color> var(--tw-mask-right-to)), linear-gradient(to left, black var(--tw-mask-left-from), <color> var(--tw-mask-left-to));         mask-composite: intersect;` |
| `mask-x-to-(<custom-property>)` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent var(<custom-property>)),linear-gradient(to left, black var(--tw-mask-left-from), transparent var(<custom-property>));         mask-composite: intersect;` |
| `mask-x-to-[<value>]` | `mask-image: linear-gradient(to right, black var(--tw-mask-right-from), transparent <value>),linear-gradient(to left, black var(--tw-mask-left-from), transparent <value>);         mask-composite: intersect;` |
| `mask-radial-[<value>]` | `mask-image: radial-gradient(<value>);` |
| `mask-radial-[<size>]` | `--tw-mask-radial-size: <size>;` |
| `mask-radial-[<size>_<size>]` | `--tw-mask-radial-size: <size> <size>;` |
| `mask-radial-from-<number>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black calc(var(--spacing) * <number>), transparent var(--tw-mask-radial-to));` |
| `mask-radial-from-<percentage>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black <percentage>, transparent var(--tw-mask-radial-to));` |
| `mask-radial-from-<color>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), <color> var(--tw-mask-radial-from), transparent var(--tw-mask-radial-to));` |
| `mask-radial-from-(<custom-property>)` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(<custom-property>), transparent var(--tw-mask-radial-to));` |
| `mask-radial-from-[<value>]` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black <value>, transparent var(--tw-mask-radial-to));` |
| `mask-radial-to-<number>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(--tw-mask-radial-from), transparent calc(var(--spacing) * <number>));` |
| `mask-radial-to-<percentage>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(--tw-mask-radial-from), transparent <percentage>);` |
| `mask-radial-to-<color>` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(--tw-mask-radial-from), <color> var(--tw-mask-radial-to));` |
| `mask-radial-to-(<custom-property>)` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(--tw-mask-radial-from), transparent var(<custom-property>));` |
| `mask-radial-to-[<value>]` | `mask-image: radial-gradient(var(--tw-mask-radial-shape) var(--tw-mask-radial-size) at var(--tw-mask-radial-position), black var(--tw-mask-radial-from), transparent <value>);` |
| `mask-circle` | `--tw-mask-radial-shape: circle;` |
| `mask-ellipse` | `--tw-mask-radial-shape: ellipse;` |
| `mask-radial-closest-corner` | `--tw-mask-radial-size: closest-corner;` |
| `mask-radial-closest-side` | `--tw-mask-radial-size: closest-side;` |
| `mask-radial-farthest-corner` | `--tw-mask-radial-size: farthest-corner;` |
| `mask-radial-farthest-side` | `--tw-mask-radial-size: farthest-side;` |
| `mask-radial-at-top-left` | `--tw-mask-radial-position: top left;` |
| `mask-radial-at-top` | `--tw-mask-radial-position: top;` |
| `mask-radial-at-top-right` | `--tw-mask-radial-position: top right;` |
| `mask-radial-at-left` | `--tw-mask-radial-position: left;` |
| `mask-radial-at-center` | `--tw-mask-radial-position: center;` |
| `mask-radial-at-right` | `--tw-mask-radial-position: right;` |
| `mask-radial-at-bottom-left` | `--tw-mask-radial-position: bottom left;` |
| `mask-radial-at-bottom` | `--tw-mask-radial-position: bottom;` |
| `mask-radial-at-bottom-right` | `--tw-mask-radial-position: bottom right;` |
| `mask-conic-<number>` | `mask-image: conic-gradient(from <number>deg, black var(--tw-mask-conic-from), transparent var(--tw-mask-conic-to));` |
| `-mask-conic-<number>` | `mask-image: conic-gradient(from calc(<number>deg * -1), black var(--tw-mask-conic-from), transparent var(--tw-mask-conic-to));` |
| `mask-conic-from-<number>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black calc(var(--spacing) * <number>), transparent var(--tw-mask-conic-to));` |
| `mask-conic-from-<percentage>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black <percentage>, transparent var(--tw-mask-conic-to));` |
| `mask-conic-from-<color>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), <color> var(--tw-mask-conic-from), transparent var(--tw-mask-conic-to));` |
| `mask-conic-from-(<custom-property>)` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(<custom-property>), transparent var(--tw-mask-conic-to));` |
| `mask-conic-from-[<value>]` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black <value>, transparent var(--tw-mask-conic-to));` |
| `mask-conic-to-<number>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(--tw-mask-conic-from), transparent calc(var(--spacing) * <number>));` |
| `mask-conic-to-<percentage>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(--tw-mask-conic-from), transparent <percentage>);` |
| `mask-conic-to-<color>` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(--tw-mask-conic-from), <color> var(--tw-mask-conic-to);` |
| `mask-conic-to-(<custom-property>)` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(--tw-mask-conic-from), transparent var(<custom-property>);` |
| `mask-conic-to-[<value>]` | `mask-image: conic-gradient(from var(--tw-mask-conic-position), black var(--tw-mask-conic-from), transparent <value>);` |

## Examples

### Using an image mask

Use the `mask-[<value>]` syntax to set the mask image of an element:

  {
    
      <div
        className="h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat mask-size-[110%_90%] mask-center mask-no-repeat"
        style={{ maskImage: `url(${maskImg.src})` }}
      ></div>
    
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-[url(/img/scribble.png)]] -->
<div class="mask-[url(/img/scribble.png)] bg-[url(/img/mountains.jpg)] ...">
  <!-- ... -->
</div>
```

### Masking edges

Use utilities like `mask-b-from-<value>` and `mask-t-to-<value>` to add a linear gradient mask to a single side of an element:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-2 dark:text-gray-400">
      <div className="flex flex-col items-center gap-3">
        <p>mask-t-from-50%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-t-from-50% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-r-from-30%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-r-from-30% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-l-from-50% mask-l-to-90%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-l-from-50% mask-l-to-90% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-b-from-20% mask-b-to-80%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-b-from-20% mask-b-to-80% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-t-from-50%,mask-r-from-30%,mask-l-from-50%,mask-l-to-90%,mask-b-from-20%,mask-b-to-80%] -->
<div class="mask-t-from-50% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-r-from-30% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-l-from-50% mask-l-to-90% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-b-from-20% mask-b-to-80% bg-[url(/img/mountains.jpg)] ..."></div>
```

Additionally, use utilities like `mask-x-from-70%` and `mask-y-to-90%` to apply a mask to two sides of an element at the same time:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-2 dark:text-gray-400">
      <div className="flex flex-col items-center gap-3">
        <p>mask-x-from-70% mask-x-to-90%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-x-from-70% mask-x-to-90% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-y-from-70% mask-y-to-90%</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-y-from-70% mask-y-to-90% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-x-from-70%,mask-x-to-90%,mask-y-from-70%,mask-y-to-90%] -->
<div class="mask-x-from-70% mask-x-to-90% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-y-from-70% mask-y-to-90% bg-[url(/img/mountains.jpg)] ..."></div>
```

By default, linear gradient masks transition from black to transparent, but you can customize the gradient colors using the `mask-<side>-from-<color>` and `mask-<side>-to-<color>` utilities.

### Adding an angled linear mask

Use utilities like `mask-linear-<angle>`, `mask-linear-from-20`, and `mask-linear-to-40` to add a custom linear gradient mask to an element:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-2 dark:text-gray-400">
      <div className="flex flex-col items-center gap-3">
        <p>mask-linear-50</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-linear-50 mask-linear-from-60% mask-linear-to-80% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>-mask-linear-50</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] -mask-linear-50 mask-linear-from-60% mask-linear-to-80% bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-linear-50,mask-linear-from-60%,mask-linear-to-80%,-mask-linear-50] -->
<div class="mask-linear-50 mask-linear-from-60% mask-linear-to-80% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="-mask-linear-50 mask-linear-from-60% mask-linear-to-80% bg-[url(/img/mountains.jpg)] ..."></div>
```

### Adding a radial mask

Use the `mask-radial-from-<value>` and `mask-radial-to-<value>` utilities to add a radial gradient mask to an element:

  {
    <div className="mx-auto flex items-center p-16 max-sm:p-6">
      <img
        src={KeyboardLight.src}
        className="aspect-square max-h-72 w-full mask-radial-[100%_200%] mask-radial-from-transparent mask-radial-from-15% mask-radial-to-black mask-radial-to-60% mask-radial-at-right object-cover object-top-left dark:hidden"
        alt=""
      />
      <img
        src={KeyboardDark.src}
        className="hidden aspect-square max-h-72 w-full mask-radial-[100%_200%] mask-radial-from-transparent mask-radial-from-15% mask-radial-to-black mask-radial-to-60% mask-radial-at-right object-cover object-top-left dark:block"
        alt=""
      />
      <div className="font-medium max-sm:-mx-3">
        <p className="font-mono text-xs text-blue-500 uppercase dark:text-blue-400">Speed</p>
        <p className="mt-2 text-base whitespace-nowrap text-gray-700 dark:text-gray-300">Built for power users</p>
        <p className="mt-1 text-sm leading-relaxed text-balance text-gray-500">
          Work faster than ever with our keyboard shortcuts
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:mask-radial-from-75%] -->
<div class="flex items-center gap-4">
  <img class="mask-radial-[100%_100%] mask-radial-from-75% mask-radial-at-left ..." src="/img/keyboard.png" />
  <div class="font-medium">
    <p class="font-mono text-xs text-blue-500 uppercase dark:text-blue-400">Speed</p>
    <p class="mt-2 text-base text-gray-700 dark:text-gray-300">Built for power users</p>
    <p class="mt-1 text-sm leading-relaxed text-balance text-gray-500">
      Work faster than ever with customizable keyboard shortcuts
    </p>
  </div>
</div>
```

By default, radial gradient masks transition from black to transparent, but you can customize the gradient colors using the `mask-radial-from-<color>` and `mask-radial-to-<color>` utilities.

#### Setting the radial position

Use utilities like `mask-radial-at-bottom-left` and `mask-radial-at-[35%_35%]` to set the position of the center of the radial gradient mask:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-3 dark:text-gray-400">
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-top-left</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-top-left bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-top</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-top bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-top-right</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-top-right bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-left</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-left bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-center</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-center bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-right</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-right bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-bottom-left</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-bottom-left bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-bottom</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-bottom bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-at-bottom-right</p>
        <div className="grid size-28 grid-cols-1 max-sm:size-24">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[33%_33%] mask-radial-from-100% mask-radial-at-bottom-right bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-radial-at-top-left,mask-radial-at-top,mask-radial-at-top-right,mask-radial-at-left,mask-radial-at-center,mask-radial-at-right,mask-radial-at-bottom,mask-radial-at-bottom-left,mask-radial-at-bottom-right] -->
<div class="mask-radial-at-top-left mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-top mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-top-right mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-left mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-center mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-right mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-bottom-left mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-bottom mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-at-bottom-right mask-radial-from-100% bg-[url(/img/mountains.jpg)] ..."></div>
```

This is different from [`mask-position`](/docs/mask-position) which sets the position of the mask image itself, not the radial gradient.

#### Setting the radial size

Use utilities like `mask-radial-closest-corner` and `mask-radial-farthest-side` to set the size of the radial gradient mask:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-2 dark:text-gray-400">
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-closest-side</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side mask-radial-at-[30%_30%] bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-closest-corner</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-corner mask-radial-at-[30%_30%] bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-farthest-side</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-farthest-side mask-radial-at-[30%_30%] bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center gap-3">
        <p>mask-radial-farthest-corner</p>
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-farthest-corner mask-radial-at-[30%_30%] bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-radial-farthest-corner,mask-radial-farthest-side,mask-radial-closest-corner,mask-radial-closest-side] -->
<div class="mask-radial-closest-side mask-radial-from-100% mask-radial-at-[30%_30%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-closest-corner mask-radial-from-100% mask-radial-at-[30%_30%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-farthest-side mask-radial-from-100% mask-radial-at-[30%_30%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-radial-farthest-corner mask-radial-from-100% mask-radial-at-[30%_30%] bg-[url(/img/mountains.jpg)] ..."></div>
```

When setting a custom radial gradient size, the units you can use depend on the `<ending-shape>` of the gradient which is set to `ellipse` by default.

With `mask-circle`, you can only use a single fixed length, like `mask-radial-[5rem]`. Whereas with `mask-ellipse`, you can specify each axis as a fixed length or percentage, like `mask-radial-[40%_80%]`.

### Adding a conic mask

Use the `mask-conic-from-<value>`, `mask-conic-to-<value>` and `mask-conic-<angle>` utilities to add a conic gradient mask to an element:

  {
    <div className="mx-auto flex w-full max-w-sm items-center gap-5 rounded-xl bg-white p-4 shadow-lg ring-1 ring-black/5 dark:bg-gray-800">
      <div className="grid grid-cols-1 grid-rows-1">
        <div className="col-start-1 row-start-1 size-12 rounded-full border-4 border-gray-100 dark:border-gray-700" />
        <div className="col-start-1 row-start-1 size-12 rounded-full border-4 border-amber-500 mask-conic-from-75% mask-conic-to-75% dark:border-amber-400" />
      </div>
      <div className="w-0 flex-1 text-sm text-gray-950 dark:text-white">
        <p className="font-medium">Storage used: 75%</p>
        <p className="mt-1 text-gray-500 dark:text-gray-400">
          <span className="font-medium">0.48 GB</span> out of 2 GB remaining
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:mask-conic-from-75%,mask-conic-to-75%] -->
<div class="flex items-center gap-5 rounded-xl bg-white p-4 shadow-lg ring-1 ring-black/5 dark:bg-gray-800">
  <div class="grid grid-cols-1 grid-rows-1">
    <div class="border-4 border-gray-100 dark:border-gray-700 ..."></div>
    <div class="border-4 border-amber-500 mask-conic-from-75% mask-conic-to-75% dark:border-amber-400 ..."></div>
  </div>
  <div class="w-0 flex-1 text-sm text-gray-950 dark:text-white">
    <p class="font-medium">Storage used: 75%</p>
    <p class="mt-1 text-gray-500 dark:text-gray-400"><span class="font-medium">0.48 GB</span> out of 2 GB remaining</p>
  </div>
</div>
```

By default, conic gradient masks transition from black to transparent, but you can customize the gradient colors using the `mask-conic-from-<color>` and `mask-conic-to-<color>` utilities.

### Combining masks

Gradient mask utilities, like `mask-radial-from-<value>`, `mask-conic-to-<value>`, and `mask-l-from-<value>` can be combined to create more complex gradient masks:

  {
    <div className="grid grid-cols-1 items-end gap-x-2 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:justify-between max-sm:px-2 sm:grid-cols-2 dark:text-gray-400">
      <div className="flex flex-col items-center">
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-b-from-50% mask-radial-[50%_90%] mask-radial-from-80% mask-radial-at-bottom bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
      <div className="flex flex-col items-center">
        <div className="grid aspect-3/2 w-48 grid-cols-1">
          
          <div className="col-start-1 row-start-1 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-r-from-80% mask-b-from-80% mask-radial-from-70% mask-radial-to-85% mask-circle mask-radial-at-top-left bg-cover bg-center mask-no-repeat"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-b-from-50%,mask-radial-[50%_90%],mask-radial-from-80%,mask-r-from-80%,mask-b-from-80%,mask-radial-from-70%,mask-radial-to-85%] -->
<div class="mask-b-from-50% mask-radial-[50%_90%] mask-radial-from-80% bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-r-from-80% mask-b-from-80% mask-radial-from-70% mask-radial-to-85% bg-[url(/img/mountains.jpg)] ..."></div>
```

This behavior relies on the fact that Tailwind sets the [`mask-composite` property](/docs/mask-composite) to `intersect` by default. Changing this property will affect how the gradient masks are combined.

### Removing mask images

Use the `mask-none` utility to remove an existing mask image from an element:

```html
<!-- [!code classes:mask-none] -->
<div class="mask-none">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# mask-mode

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-mode*

<svg className="sr-only">
  <defs>
    <pattern id="checkerboard" x="0.5" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
      <rect x="0" y="0" width="5" height="5" fill="#fff" />
      <rect x="5" y="0" width="5" height="5" fill="#808080" />
      <rect x="0" y="5" width="5" height="5" fill="#808080" />
      <rect x="5" y="5" width="5" height="5" fill="#fff" />
    </pattern>
  </defs>
</svg>

<svg className="hidden">
  <symbol id="gradient-color-stop" viewBox="0 0 32 34">
    <path
      fill="url(#checkerboard)"
      stroke="#000"
      strokeOpacity=".05"
      d="M5 .5h22A3.5 3.5 0 0 1 30.5 4v19.6a3.5 3.5 0 0 1-1.853 3.088L16 33.433 3.353 26.688A3.5 3.5 0 0 1 1.5 23.6V4A3.5 3.5 0 0 1 5 .5Z"
    />
    <path
      fill="currentColor"
      d="M1 4a4 4 0 0 1 4-4h22a4 4 0 0 1 4 4v19.6a4 4 0 0 1-2.118 3.53L16 34 3.118 27.13A4 4 0 0 1 1 23.6V4Z"
    />
  </symbol>
</svg>

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-alpha` | `mask-mode: alpha;` |
| `mask-luminance` | `mask-mode: luminance;` |
| `mask-match` | `mask-mode: match-source;` |

## Examples

### Basic example

Use the `mask-alpha`, `mask-luminance` and `mask-match` utilities to control the mode of an element's mask:

  {
    <div className="mx-5 grid gap-10 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
      <div>
        <div className="relative h-14.5">
          <div className="absolute top-0 left-[50%] -ml-3 flex h-12 flex-col items-center">
            <svg viewBox="0 0 32 34" className="w-7 flex-none text-black drop-shadow-sm dark:stroke-white/10">
              <use href="#gradient-color-stop" />
            </svg>
            <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          </div>
          <div className="absolute top-0 right-px -mr-3 flex h-12 flex-col items-center">
            <svg viewBox="0 0 32 34" className="w-7 flex-none text-transparent drop-shadow-sm dark:stroke-white/10">
              <use href="#gradient-color-stop" />
            </svg>
            <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          </div>
        </div>
        <div className="relative">
          <div className="relative z-10 h-24 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-r-from-black mask-r-from-50% mask-r-to-transparent bg-cover bg-center mask-alpha"></div>
          
        </div>
        <p className="mt-3">mask-alpha</p>
      </div>
      <div>
        <div className="relative h-14.5">
          <div className="absolute top-0 left-[50%] -ml-3 flex h-12 flex-col items-center">
            <svg viewBox="0 0 32 34" className="w-7 flex-none text-white drop-shadow-sm dark:stroke-white/10">
              <use href="#gradient-color-stop" />
            </svg>
            <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          </div>
          <div className="absolute top-0 right-px -mr-3 flex h-12 flex-col items-center">
            <svg viewBox="0 0 32 34" className="w-7 flex-none text-black drop-shadow-sm dark:stroke-white/10">
              <use href="#gradient-color-stop" />
            </svg>
            <div className="mt-2 h-2 w-0.5 bg-gray-900/30 dark:bg-white/30"></div>
          </div>
        </div>
        <div className="relative">
          <div className="relative z-10 h-24 rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-r-from-white mask-r-from-50% mask-r-to-black bg-cover bg-center mask-luminance"></div>
          
        </div>
        <p className="mt-3">mask-luminance</p>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-alpha,mask-luminance] -->
<div class="mask-alpha mask-r-from-black mask-r-from-50% mask-r-to-transparent bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-luminance mask-r-from-white mask-r-from-50% mask-r-to-black bg-[url(/img/mountains.jpg)] ..."></div>
```

When using `mask-luminance` the luminance value of the mask determines visibility, so sticking with grayscale colors will produce the most predictable results. With `mask-alpha`, the opacity of the mask determines the visibility of the masked element.

### Responsive design


---

# mask-origin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-origin*

"Utilities for controlling how an element's mask image is positioned relative to borders, padding, and content.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-origin-border` | `mask-origin: border-box;` |
| `mask-origin-padding` | `mask-origin: padding-box;` |
| `mask-origin-content` | `mask-origin: content-box;` |
| `mask-origin-fill` | `mask-origin: fill-box;` |
| `mask-origin-stroke` | `mask-origin: stroke-box;` |
| `mask-origin-view` | `mask-origin: view-box;` |

## Examples

### Basic example

Use utilities like `mask-origin-border`, `mask-origin-padding`, and `mask-origin-content` to control where an element's mask is rendered:

  {
    <div className="flex flex-col gap-y-10 text-center font-mono text-xs font-medium text-gray-500 sm:flex-row sm:justify-between dark:text-gray-400">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3">mask-origin-border</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-no-repeat mask-origin-border p-1.5"></div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3">mask-origin-padding</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] rounded-lg border-3 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-no-repeat mask-origin-padding p-1.5"></div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3">mask-origin-content</p>
        <div className="relative size-24 rounded-lg border-3 border-dashed border-indigo-500/50 dark:border-indigo-400/75">
          <div className="absolute inset-[-3px] rounded-lg border-3 bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-[50%_50%] mask-radial-from-100% bg-cover bg-center mask-no-repeat mask-origin-content p-1.5"></div>
        </div>
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-origin-border,mask-origin-padding,mask-origin-content] -->
<div class="mask-origin-border border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-origin-padding border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-origin-content border-3 p-1.5 mask-[url(/img/circle.png)] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Responsive design


---

# mask-position

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-position*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-top-left` | `mask-position: top left;` |
| `mask-top` | `mask-position: top;` |
| `mask-top-right` | `mask-position: top right;` |
| `mask-left` | `mask-position: left;` |
| `mask-center` | `mask-position: center;` |
| `mask-right` | `mask-position: right;` |
| `mask-bottom-left` | `mask-position: bottom left;` |
| `mask-bottom` | `mask-position: bottom;` |
| `mask-bottom-right` | `mask-position: bottom right;` |
| `mask-position-(<custom-property>)` | `mask-position: var(<custom-property>);` |
| `mask-position-[<value>]` | `mask-position: <value>;` |

## Examples

### Basic example

Use utilities like `mask-center`, `mask-right`, and `mask-left-top` to control the position of an element's mask image:

  {
    <div className="grid grid-cols-3 gap-y-8 p-8 text-center font-mono text-xs font-medium text-gray-500 max-sm:items-end max-sm:justify-between max-sm:px-2 dark:text-gray-400">
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-top-left</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-top-left mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-top</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-top mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-top-right</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-top-right mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-left</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-left mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-center</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-center mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-right</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-right mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-bottom-left</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-bottom-left mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-bottom</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-bottom mask-no-repeat"></div>
        
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3">mask-bottom-right</p>
        
          <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-70% mask-radial-to-70% bg-cover bg-center mask-size-[50%_66%] mask-bottom-right mask-no-repeat"></div>
        
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-top-left,mask-top,mask-top-right,mask-left,mask-center,mask-right,mask-bottom-left,mask-bottom,mask-bottom-right] -->
<div class="mask-top-left mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-top mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-top-right mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-left mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-center mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-right mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-bottom-left mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-bottom mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
<div class="mask-bottom-right mask-[url(/img/circle.png)] mask-size-[50%] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Using a custom value

### Responsive design


---

# mask-repeat

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-repeat*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-repeat` | `mask-repeat: repeat;` |
| `mask-no-repeat` | `mask-repeat: no-repeat;` |
| `mask-repeat-x` | `mask-repeat: repeat-x;` |
| `mask-repeat-y` | `mask-repeat: repeat-y;` |
| `mask-repeat-space` | `mask-repeat: space;` |
| `mask-repeat-round` | `mask-repeat: round;` |

## Examples

### Basic example

Use the `mask-repeat` utility to repeat the mask image both vertically and horizontally:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-center mask-repeat"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-repeat] -->
<div class="mask-repeat mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Repeating horizontally

Use the `mask-repeat-x` utility to only repeat the mask image horizontally:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-center mask-repeat-x"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-repeat-x] -->
<div class="mask-repeat-x mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)]..."></div>
```

### Repeating vertically

Use the `mask-repeat-y` utility to only repeat the mask image vertically:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-center mask-repeat-y"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-repeat-y] -->
<div class="mask-repeat-y mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)]..."></div>
```

### Preventing clipping

Use the `mask-repeat-space` utility to repeat the mask image without clipping:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-repeat-space"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-repeat-space] -->
<div class="mask-repeat-space mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Preventing clipping and gaps

Use the `mask-repeat-round` utility to repeat the mask image without clipping, stretching if needed to avoid gaps:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-repeat-round"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-repeat-round] -->
<div class="mask-repeat-round mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Disabling repeating

Use the `mask-no-repeat` utility to prevent a mask image from repeating:

  {
    <div className="flex flex-col py-8">
      
        <div className="h-full rounded-lg bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] mask-radial-from-100% mask-radial-closest-side bg-cover bg-center mask-size-[50px_50px] mask-center mask-no-repeat"></div>
      
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-no-repeat] -->
<div class="mask-no-repeat mask-[url(/img/circle.png)] mask-size-[50px_50px] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Responsive design


---

# mask-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-auto` | `mask-size: auto;` |
| `mask-cover` | `mask-size: cover;` |
| `mask-contain` | `mask-size: contain;` |
| `mask-size-(<custom-property>)` | `mask-size: var(<custom-property>);` |
| `mask-size-[<value>]` | `mask-size: <value>;` |

## Examples

### Filling the container

Use the `mask-cover` utility to scale the mask image until it fills the mask layer, cropping the image if needed:

  {
    
      <div
        className="h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat mask-cover mask-center"
        style={{ maskImage: `url(${maskImg.src})` }}
      ></div>
    
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-cover] -->
<div class="mask-cover mask-[url(/img/scribble.png)] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Filling without cropping

Use the `mask-contain` utility to scale the mask image to the outer edges without cropping or stretching:

  {
    
      <div
        className="h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat mask-contain mask-center mask-no-repeat"
        style={{ maskImage: `url(${maskImg.src})` }}
      ></div>
    
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-contain] -->
<div class="mask-contain mask-[url(/img/scribble.png)] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Using the default size

Use the `mask-auto` utility to display the mask image at its default size:

  {
    
      <div
        className="h-full w-full bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80)] bg-cover bg-center bg-no-repeat mask-auto mask-center mask-no-repeat"
        style={{ maskImage: `url(${maskImg.src})` }}
      ></div>
    
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:mask-auto] -->
<div class="mask-auto mask-[url(/img/scribble.png)] bg-[url(/img/mountains.jpg)] ..."></div>
```

### Using a custom value

### Responsive design


---

# mask-type

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mask-type*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mask-type-alpha` | `mask-type: alpha;` |
| `mask-type-luminance` | `mask-type: luminance;` |

## Examples

### Basic example

Use the `mask-type-alpha` and `mask-type-luminance` utilities to control the type of an SVG mask:

  {
    <div>
      
        <svg viewBox="0 0 384 192">
          <mask id="blob1" className="mask-type-alpha fill-gray-700/70">
            <path d="M138.25 45.9161c34.504 -4.0384 45.586 -8.2996 69.504 -26.7274c35.516 -27.35568 88.5 -27.47958 103.651 24.8472c11.65 40.2452 0.417 90.1771 -25.438 113.0701c-43.537 38.552 -124.113 45.445 -174.128 15.703c-43.1183 -25.637 -56.9741 -74.9589 -30.0882 -107.1019c9.1187 -10.902 23.4522 -15.924 56.4992 -19.791z" />
          </mask>
          <image
            href="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80"
            height="100%"
            width="100%"
            preserveAspectRatio="xMaxYMid slice"
            mask="url(#blob1)"
          />
        </svg>
      
      <p className="mt-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">mask-type-alpha</p>
      
        <svg viewBox="0 0 384 192">
          <mask id="blob2" className="mask-type-luminance fill-gray-700/70">
            <path d="M138.25 45.9161c34.504 -4.0384 45.586 -8.2996 69.504 -26.7274c35.516 -27.35568 88.5 -27.47958 103.651 24.8472c11.65 40.2452 0.417 90.1771 -25.438 113.0701c-43.537 38.552 -124.113 45.445 -174.128 15.703c-43.1183 -25.637 -56.9741 -74.9589 -30.0882 -107.1019c9.1187 -10.902 23.4522 -15.924 56.4992 -19.791z" />
          </mask>
          <image
            href="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=80"
            height="100%"
            width="100%"
            preserveAspectRatio="xMaxYMid slice"
            mask="url(#blob2)"
          />
        </svg>
      
      <p className="mt-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
        mask-type-luminance
      </p>
    </div>
  }

```html
<!-- [!code classes:mask-type-alpha,mask-type-luminance] -->
<svg>
  <mask id="blob1" class="mask-type-alpha fill-gray-700/70">
    <path d="..."></path>
  </mask>
  <image href="/img/mountains.jpg" height="100%" width="100%" mask="url(#blob1)" />
</svg>

<svg>
  <mask id="blob2" class="mask-type-luminance fill-gray-700/70">
    <path d="..."></path>
  </mask>
  <image href="/img/mountains.jpg" height="100%" width="100%" mask="url(#blob2)" />
</svg>
```

When using `mask-type-luminance` the luminance value of the SVG mask determines visibility, so sticking with grayscale colors will produce the most predictable results. With `mask-alpha`, the opacity of the SVG mask determines the visibility of the masked element.

### Responsive design


---

# max-block-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/max-block-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `max-block-<number>` | `max-block-size: calc(var(--spacing) * <number>);` |
| `max-block-<fraction>` | `max-block-size: calc(<fraction> * 100%);` |
| `max-block-none` | `max-block-size: none;` |
| `max-block-px` | `max-block-size: 1px;` |
| `max-block-full` | `max-block-size: 100%;` |
| `max-block-screen` | `max-block-size: 100vh;` |
| `max-block-dvh` | `max-block-size: 100dvh;` |
| `max-block-dvw` | `max-block-size: 100dvw;` |
| `max-block-lvh` | `max-block-size: 100lvh;` |
| `max-block-lvw` | `max-block-size: 100lvw;` |
| `max-block-svh` | `max-block-size: 100svh;` |
| `max-block-svw` | `max-block-size: 100svw;` |
| `max-block-min` | `max-block-size: min-content;` |
| `max-block-max` | `max-block-size: max-content;` |
| `max-block-fit` | `max-block-size: fit-content;` |
| `max-block-lh` | `max-block-size: 1lh;` |
| `max-block-(<custom-property>)` | `max-block-size: var(<custom-property>);` |
| `max-block-[<value>]` | `max-block-size: <value>;` |

## Examples

### Basic example

Use `max-block-<number>` utilities like `max-block-24` and `max-block-64` to set an element to a fixed maximum block size based on the spacing scale:

  {
    <div className="flex block-96 items-end justify-center space-x-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid block-full w-8 items-end rounded-lg">
        
        <div className="relative block-full max-block-80 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-80</div>
        </div>
      </div>
      <div className="relative grid block-full w-8 items-end rounded-lg">
        
        <div className="relative block-full max-block-64 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-64</div>
        </div>
      </div>
      <div className="relative grid block-full w-8 items-end rounded-lg">
        
        <div className="relative block-full max-block-48 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-48</div>
        </div>
      </div>
      <div className="relative grid block-full w-8 items-end rounded-lg">
        
        <div className="relative block-full max-block-40 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-40</div>
        </div>
      </div>
      <div className="relative grid block-full w-8 items-end rounded-lg">
        
        <div className="relative block-full max-block-32 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-32</div>
        </div>
      </div>

    </div>

}

```html
<!-- [!code classes:max-block-80,max-block-64,max-block-48,max-block-40,max-block-32,max-block-24] -->
<div class="block-96 ...">
  <div class="block-full max-block-80 ...">max-block-80</div>
  <div class="block-full max-block-64 ...">max-block-64</div>
  <div class="block-full max-block-48 ...">max-block-48</div>
  <div class="block-full max-block-40 ...">max-block-40</div>
  <div class="block-full max-block-32 ...">max-block-32</div>
</div>
```

### Using a percentage

Use `max-block-full` or `max-block-<fraction>` utilities like `max-block-1/2` and `max-block-2/5` to give an element a percentage-based maximum block size:

  {
    <div className="flex items-end justify-center space-x-4 text-center font-mono text-xs font-bold text-white block-96">
      <div className="relative grid w-8 items-end rounded-lg block-full">
        
        <div className="relative w-full rounded-lg bg-blue-500 block-full max-block-9/10">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-9/10</div>
        </div>
      </div>
      <div className="relative grid w-8 items-end rounded-lg block-full">
        
        <div className="relative w-full rounded-lg bg-blue-500 block-full max-block-3/4">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-3/4</div>
        </div>
      </div>
      <div className="relative grid w-8 items-end rounded-lg block-full">
        
        <div className="relative w-full rounded-lg bg-blue-500 block-full max-block-1/2">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-1/2</div>
        </div>
      </div>
      <div className="relative grid w-8 items-end rounded-lg block-full">
        
        <div className="relative w-full rounded-lg bg-blue-500 block-full max-block-full">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-block-full</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-block-9/10,max-block-3/4,max-block-1/2,max-block-1/4,max-block-full] -->
<div class="block-96 ...">
  <div class="block-full max-block-9/10 ...">max-block-9/10</div>
  <div class="block-full max-block-3/4 ...">max-block-3/4</div>
  <div class="block-full max-block-1/2 ...">max-block-1/2</div>
  <div class="block-full max-block-full ...">max-block-full</div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# max-height

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/max-height*

| Clase | Propiedades CSS |
| :--- | :--- |
| `max-h-<number>` | `max-height: calc(var(--spacing) * <number>);` |
| `max-h-<fraction>` | `max-height: calc(<fraction> * 100%);` |
| `max-h-none` | `max-height: none;` |
| `max-h-px` | `max-height: 1px;` |
| `max-h-full` | `max-height: 100%;` |
| `max-h-screen` | `max-height: 100vh;` |
| `max-h-dvh` | `max-height: 100dvh;` |
| `max-h-dvw` | `max-height: 100dvw;` |
| `max-h-lvh` | `max-height: 100lvh;` |
| `max-h-lvw` | `max-height: 100lvw;` |
| `max-h-svh` | `max-height: 100svh;` |
| `max-h-svw` | `max-height: 100svw;` |
| `max-h-min` | `max-height: min-content;` |
| `max-h-max` | `max-height: max-content;` |
| `max-h-fit` | `max-height: fit-content;` |
| `max-h-lh` | `max-height: 1lh;` |
| `max-h-(<custom-property>)` | `max-height: var(<custom-property>);` |
| `max-h-[<value>]` | `max-height: <value>;` |

## Examples

### Basic example

Use `max-h-<number>` utilities like `max-h-24` and `max-h-64` to set an element to a fixed maximum height based on the spacing scale:

  {
    <div className="flex h-96 items-end justify-center space-x-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-80 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-80</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-64 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-64</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-48 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-48</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-40 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-40</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-32 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-32</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-24 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-24</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-h-80,max-h-64,max-h-48,max-h-40,max-h-32,max-h-24,max-h-full] -->
<div class="h-96 ...">
  <div class="h-full max-h-80 ...">max-h-80</div>
  <div class="h-full max-h-64 ...">max-h-64</div>
  <div class="h-full max-h-48 ...">max-h-48</div>
  <div class="h-full max-h-40 ...">max-h-40</div>
  <div class="h-full max-h-32 ...">max-h-32</div>
  <div class="h-full max-h-24 ...">max-h-24</div>
</div>
```

### Using a percentage

Use `max-h-full` or `max-h-<fraction>` utilities like `max-h-1/2` and `max-h-2/5` to give an element a percentage-based maximum height:

  {
    <div className="flex h-96 items-end justify-center space-x-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-9/10 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-9/10</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-3/4 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-3/4</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-1/2 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-1/2</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-1/4 w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-1/4</div>
        </div>
      </div>
      <div className="relative grid h-full w-8 items-end rounded-lg">
        
        <div className="relative h-full max-h-full w-full rounded-lg bg-blue-500">
          <div className="absolute bottom-6 w-8 -rotate-90 text-nowrap">max-h-full</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-h-9/10,max-h-3/4,max-h-1/2,max-h-1/4,max-h-full] -->
<div class="h-96 ...">
  <div class="h-full max-h-9/10 ...">max-h-9/10</div>
  <div class="h-full max-h-3/4 ...">max-h-3/4</div>
  <div class="h-full max-h-1/2 ...">max-h-1/2</div>
  <div class="h-full max-h-1/4 ...">max-h-1/4</div>
  <div class="h-full max-h-full ...">max-h-full</div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# max-inline-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/max-inline-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `max-inline-<number>` | `max-inline-size: calc(var(--spacing) * <number>);` |
| `max-inline-<fraction>` | `max-inline-size: calc(<fraction> * 100%);` |
| `max-inline-3xs` | `max-inline-size: var(--container-3xs); /* 16rem (256px) */` |
| `max-inline-2xs` | `max-inline-size: var(--container-2xs); /* 18rem (288px) */` |
| `max-inline-xs` | `max-inline-size: var(--container-xs); /* 20rem (320px) */` |
| `max-inline-sm` | `max-inline-size: var(--container-sm); /* 24rem (384px) */` |
| `max-inline-md` | `max-inline-size: var(--container-md); /* 28rem (448px) */` |
| `max-inline-lg` | `max-inline-size: var(--container-lg); /* 32rem (512px) */` |
| `max-inline-xl` | `max-inline-size: var(--container-xl); /* 36rem (576px) */` |
| `max-inline-2xl` | `max-inline-size: var(--container-2xl); /* 42rem (672px) */` |
| `max-inline-3xl` | `max-inline-size: var(--container-3xl); /* 48rem (768px) */` |
| `max-inline-4xl` | `max-inline-size: var(--container-4xl); /* 56rem (896px) */` |
| `max-inline-5xl` | `max-inline-size: var(--container-5xl); /* 64rem (1024px) */` |
| `max-inline-6xl` | `max-inline-size: var(--container-6xl); /* 72rem (1152px) */` |
| `max-inline-7xl` | `max-inline-size: var(--container-7xl); /* 80rem (1280px) */` |
| `max-inline-none` | `max-inline-size: none;` |
| `max-inline-px` | `max-inline-size: 1px;` |
| `max-inline-full` | `max-inline-size: 100%;` |
| `max-inline-dvw` | `max-inline-size: 100dvw;` |
| `max-inline-dvh` | `max-inline-size: 100dvh;` |
| `max-inline-lvw` | `max-inline-size: 100lvw;` |
| `max-inline-lvh` | `max-inline-size: 100lvh;` |
| `max-inline-svw` | `max-inline-size: 100svw;` |
| `max-inline-svh` | `max-inline-size: 100svh;` |
| `max-inline-screen` | `max-inline-size: 100vw;` |
| `max-inline-min` | `max-inline-size: min-content;` |
| `max-inline-max` | `max-inline-size: max-content;` |
| `max-inline-fit` | `max-inline-size: fit-content;` |
| `max-inline-(<custom-property>)` | `max-inline-size: var(<custom-property>);` |
| `max-inline-[<value>]` | `max-inline-size: <value>;` |

## Examples

### Basic example

Use `max-inline-<number>` utilities like `max-inline-24` and `max-inline-64` to set an element to a fixed maximum inline size based on the spacing scale:

  {
    <div className="align-start grid gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-96">max-inline-96</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-80">max-inline-80</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-64">max-inline-64</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-48">max-inline-48</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-40">max-inline-40</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative rounded-lg bg-blue-500 px-4 py-2 max-inline-32">max-inline-32</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-inline-96,max-inline-80,max-inline-64,max-inline-48,max-inline-40,max-inline-32,max-inline-24] -->
<div class="inline-full max-inline-96 ...">max-inline-96</div>
<div class="inline-full max-inline-80 ...">max-inline-80</div>
<div class="inline-full max-inline-64 ...">max-inline-64</div>
<div class="inline-full max-inline-48 ...">max-inline-48</div>
<div class="inline-full max-inline-40 ...">max-inline-40</div>
<div class="inline-full max-inline-32 ...">max-inline-32</div>
```

### Using a percentage

Use `max-inline-full` or `max-inline-<fraction>` utilities like `max-inline-1/2` and `max-inline-2/5` to give an element a percentage-based maximum inline size:

  {
    <div className="align-start grid gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap max-inline-9/10">
          max-inline-9/10
        </div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap max-inline-3/4">
          max-inline-3/4
        </div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap max-inline-1/2">
          max-inline-1/2
        </div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap max-inline-1/3">
          max-inline-1/3
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-inline-3/4,max-inline-9/10,max-inline-1/2,max-inline-1/3] -->
<div class="inline-full max-inline-9/10 ...">max-inline-9/10</div>
<div class="inline-full max-inline-3/4 ...">max-inline-3/4</div>
<div class="inline-full max-inline-1/2 ...">max-inline-1/2</div>
<div class="inline-full max-inline-1/3 ...">max-inline-1/3</div>
```

### Using the container scale

Use utilities like `max-inline-sm` and `max-inline-xl` to set an element to a fixed maximum inline size based on the container scale:

  {
    <div className="dark:highlight-white/5 relative mx-auto flex items-center gap-6 overflow-hidden rounded-xl bg-white shadow-lg ring-1 ring-black/5 max-inline-md dark:bg-gray-800">
      <img
        className="absolute -left-6 h-28 w-28 rounded-full"
        src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
      />
      <div className="min-w-0 py-5 pr-5 pl-28">
        <div className="truncate text-sm font-medium text-gray-900 sm:text-base dark:text-gray-200">Andrew Alfred</div>
        <div className="truncate text-sm leading-tight text-gray-500 sm:text-base dark:text-gray-400">
          Assistant to the Traveling Secretary
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-inline-md] -->
<div class="max-inline-md ...">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# max-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/max-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `max-w-<number>` | `max-width: calc(var(--spacing) * <number>);` |
| `max-w-<fraction>` | `max-width: calc(<fraction> * 100%);` |
| `max-w-3xs` | `max-width: var(--container-3xs); /* 16rem (256px) */` |
| `max-w-2xs` | `max-width: var(--container-2xs); /* 18rem (288px) */` |
| `max-w-xs` | `max-width: var(--container-xs); /* 20rem (320px) */` |
| `max-w-sm` | `max-width: var(--container-sm); /* 24rem (384px) */` |
| `max-w-md` | `max-width: var(--container-md); /* 28rem (448px) */` |
| `max-w-lg` | `max-width: var(--container-lg); /* 32rem (512px) */` |
| `max-w-xl` | `max-width: var(--container-xl); /* 36rem (576px) */` |
| `max-w-2xl` | `max-width: var(--container-2xl); /* 42rem (672px) */` |
| `max-w-3xl` | `max-width: var(--container-3xl); /* 48rem (768px) */` |
| `max-w-4xl` | `max-width: var(--container-4xl); /* 56rem (896px) */` |
| `max-w-5xl` | `max-width: var(--container-5xl); /* 64rem (1024px) */` |
| `max-w-6xl` | `max-width: var(--container-6xl); /* 72rem (1152px) */` |
| `max-w-7xl` | `max-width: var(--container-7xl); /* 80rem (1280px) */` |
| `max-w-none` | `max-width: none;` |
| `max-w-px` | `max-width: 1px;` |
| `max-w-full` | `max-width: 100%;` |
| `max-w-dvw` | `max-width: 100dvw;` |
| `max-w-dvh` | `max-width: 100dvh;` |
| `max-w-lvw` | `max-width: 100lvw;` |
| `max-w-lvh` | `max-width: 100lvh;` |
| `max-w-svw` | `max-width: 100svw;` |
| `max-w-svh` | `max-width: 100svh;` |
| `max-w-screen` | `max-width: 100vw;` |
| `max-w-min` | `max-width: min-content;` |
| `max-w-max` | `max-width: max-content;` |
| `max-w-fit` | `max-width: fit-content;` |
| `container` | `width: 100%;         @media (width >= 40rem) { max-width: 40rem; }         @media (width >= 48rem) { max-width: 48rem; }         @media (width >= 64rem) { max-width: 64rem; }         @media (width >= 80rem) { max-width: 80rem; }         @media (width >= 96rem) { max-width: 96rem; }` |
| `max-w-(<custom-property>)` | `max-width: var(<custom-property>);` |
| `max-w-[<value>]` | `max-width: <value>;` |

## Examples

### Basic example

Use `max-w-<number>` utilities like `max-w-24` and `max-w-64` to set an element to a fixed maximum width based on the spacing scale:

  {
    <div className="align-start grid gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-96 rounded-lg bg-blue-500 px-4 py-2">max-w-96</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-80 rounded-lg bg-blue-500 px-4 py-2">max-w-80</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-64 rounded-lg bg-blue-500 px-4 py-2">max-w-64</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-48 rounded-lg bg-blue-500 px-4 py-2">max-w-48</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-40 rounded-lg bg-blue-500 px-4 py-2">max-w-40</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-32 rounded-lg bg-blue-500 px-4 py-2">max-w-32</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-24 rounded-lg bg-blue-500 px-4 py-2">max-w-24</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-w-96,max-w-80,max-w-64,max-w-48,max-w-40,max-w-32,max-w-24] -->
<div class="w-full max-w-96 ...">max-w-96</div>
<div class="w-full max-w-80 ...">max-w-80</div>
<div class="w-full max-w-64 ...">max-w-64</div>
<div class="w-full max-w-48 ...">max-w-48</div>
<div class="w-full max-w-40 ...">max-w-40</div>
<div class="w-full max-w-32 ...">max-w-32</div>
<div class="w-full max-w-24 ...">max-w-24</div>
```

### Using a percentage

Use `max-w-full` or `max-w-<fraction>` utilities like `max-w-1/2` and `max-w-2/5` to give an element a percentage-based maximum width:

  {
    <div className="align-start grid gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-9/10 truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap">max-w-9/10</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-3/4 truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap">max-w-3/4</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-1/2 truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap">max-w-1/2</div>
      </div>
      <div className="relative grid w-full rounded-lg">
        
        <div className="relative max-w-1/3 truncate rounded-lg bg-indigo-500 px-4 py-2 text-nowrap">max-w-1/3</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-w-3/4,max-w-9/10,max-w-1/2,max-w-1/3] -->
<div class="w-full max-w-9/10 ...">max-w-9/10</div>
<div class="w-full max-w-3/4 ...">max-w-3/4</div>
<div class="w-full max-w-1/2 ...">max-w-1/2</div>
<div class="w-full max-w-1/3 ...">max-w-1/3</div>
```

### Using the container scale

Use utilities like `max-w-sm` and `max-w-xl` to set an element to a fixed maximum width based on the container scale:

  {
    <div className="dark:highlight-white/5 relative mx-auto flex max-w-md items-center gap-6 overflow-hidden rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:bg-gray-800">
      <img
        className="absolute -left-6 h-28 w-28 rounded-full"
        src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
      />
      <div className="min-w-0 py-5 pr-5 pl-28">
        <div className="truncate text-sm font-medium text-gray-900 sm:text-base dark:text-gray-200">Andrew Alfred</div>
        <div className="truncate text-sm leading-tight text-gray-500 sm:text-base dark:text-gray-400">
          Assistant to the Traveling Secretary
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:max-w-md] -->
<div class="max-w-md ...">
  <!-- ... -->
</div>
```

### Using breakpoints container

Use the `container` utility to set the maximum width of an element to match the `min-width` of the current breakpoint. This is useful if you'd prefer to design for a fixed set of screen sizes instead of trying to accommodate a fully fluid viewport:

```html
<!-- [!code classes:container] -->
<div class="container">
  <!-- ... -->
</div>
```

Note that unlike containers you might have used in other frameworks, Tailwind's container does not center itself automatically and does not have any built-in horizontal padding. Use `mx-auto` and the `px-<number>` utilities to add these:

```html
<!-- [!code classes:mx-auto,px-4] -->
<div class="container mx-auto px-4">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# min-block-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/min-block-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `min-block-<number>` | `min-block-size: calc(var(--spacing) * <number>);` |
| `min-block-<fraction>` | `min-block-size: calc(<fraction> * 100%);` |
| `min-block-px` | `min-block-size: 1px;` |
| `min-block-full` | `min-block-size: 100%;` |
| `min-block-screen` | `min-block-size: 100vh;` |
| `min-block-dvh` | `min-block-size: 100dvh;` |
| `min-block-dvw` | `min-block-size: 100dvw;` |
| `min-block-lvh` | `min-block-size: 100lvh;` |
| `min-block-lvw` | `min-block-size: 100lvw;` |
| `min-block-svw` | `min-block-size: 100svw;` |
| `min-block-svh` | `min-block-size: 100svh;` |
| `min-block-auto` | `min-block-size: auto;` |
| `min-block-min` | `min-block-size: min-content;` |
| `min-block-max` | `min-block-size: max-content;` |
| `min-block-fit` | `min-block-size: fit-content;` |
| `min-block-lh` | `min-block-size: 1lh;` |
| `min-block-(<custom-property>)` | `min-block-size: var(<custom-property>);` |
| `min-block-[<value>]` | `min-block-size: <value>;` |

## Examples

### Basic example

Use `min-block-<number>` utilities like `min-block-24` and `min-block-64` to set an element to a fixed minimum block size based on the spacing scale:

  {
    <div className="mx-auto flex justify-center">
      <div className="relative flex items-end space-x-4 font-mono text-xs font-bold text-white">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-96">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-96</div>
        </div>
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-80">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-80</div>
        </div>
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-64">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-64</div>
        </div>
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-48">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-48</div>
        </div>
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-40">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-40</div>
        </div>
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-blue-500 block-32">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-32</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:min-block-80,min-block-64,min-block-48,min-block-40,min-block-32,min-block-24] -->
<div class="block-20 ...">
  <div class="min-block-80 ...">min-block-80</div>
  <div class="min-block-64 ...">min-block-64</div>
  <div class="min-block-48 ...">min-block-48</div>
  <div class="min-block-40 ...">min-block-40</div>
  <div class="min-block-32 ...">min-block-32</div>
</div>
```

### Using a percentage

Use `min-block-full` or `min-block-<fraction>` utilities like `min-block-1/2`, and `min-block-2/5` to give an element a percentage-based minimum block size:

  {
    <div className="flex items-end justify-center space-x-4 font-mono text-xs font-bold text-white block-96">
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 min-block-full">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-full</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 min-block-9/10">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-9/10</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 min-block-3/4">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-3/4</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 min-block-1/2">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-1/2</div>
        </div>
      </div>
      <div className="relative flex items-end block-full">
        
        <div className="relative flex w-8 items-end justify-center rounded-lg bg-sky-500 min-block-1/3">
          <div className="mb-1 transform-[rotate(-90deg)_translate(50%)] text-left text-nowrap">min-block-1/3</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:min-block-9/10,min-block-3/4,min-block-1/2,min-block-1/3,min-block-full] -->
<div class="min-block-full ...">min-block-full</div>
<div class="min-block-9/10 ...">min-block-9/10</div>
<div class="min-block-3/4 ...">min-block-3/4</div>
<div class="min-block-1/2 ...">min-block-1/2</div>
<div class="min-block-1/3 ...">min-block-1/3</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# min-height

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/min-height*

| Clase | Propiedades CSS |
| :--- | :--- |
| `min-h-<number>` | `min-height: calc(var(--spacing) * <number>);` |
| `min-h-<fraction>` | `min-height: calc(<fraction> * 100%);` |
| `min-h-px` | `min-height: 1px;` |
| `min-h-full` | `min-height: 100%;` |
| `min-h-screen` | `min-height: 100vh;` |
| `min-h-dvh` | `min-height: 100dvh;` |
| `min-h-dvw` | `min-height: 100dvw;` |
| `min-h-lvh` | `min-height: 100lvh;` |
| `min-h-lvw` | `min-height: 100lvw;` |
| `min-h-svw` | `min-height: 100svw;` |
| `min-h-svh` | `min-height: 100svh;` |
| `min-h-auto` | `min-height: auto;` |
| `min-h-min` | `min-height: min-content;` |
| `min-h-max` | `min-height: max-content;` |
| `min-h-fit` | `min-height: fit-content;` |
| `min-h-lh` | `min-height: 1lh;` |
| `min-h-(<custom-property>)` | `min-height: var(<custom-property>);` |
| `min-h-[<value>]` | `min-height: <value>;` |

## Examples

### Basic example

Use `min-h-<number>` utilities like `min-h-24` and `min-h-64` to set an element to a fixed minimum height based on the spacing scale:

  {
    <div className="mx-auto flex justify-center">
      <div className="relative flex items-end space-x-4 font-mono text-xs font-bold text-white">
        
        <div className="relative flex h-96 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-96</div>
        </div>
        <div className="relative flex h-80 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-80</div>
        </div>
        <div className="relative flex h-64 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-64</div>
        </div>
        <div className="relative flex h-48 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-48</div>
        </div>
        <div className="relative flex h-40 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-40</div>
        </div>
        <div className="relative flex h-32 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-32</div>
        </div>
        <div className="relative flex h-24 w-8 items-end justify-center rounded-lg bg-blue-500">
          <div className="mb-8 -rotate-90 text-left text-nowrap">min-h-24</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:min-h-80,min-h-64,min-h-48,min-h-40,min-h-32,min-h-24,min-h-full] -->
<div class="h-20 ...">
  <div class="min-h-80 ...">min-h-80</div>
  <div class="min-h-64 ...">min-h-64</div>
  <div class="min-h-48 ...">min-h-48</div>
  <div class="min-h-40 ...">min-h-40</div>
  <div class="min-h-32 ...">min-h-32</div>
  <div class="min-h-24 ...">min-h-24</div>
</div>
```

### Using a percentage

Use `min-h-full` or `min-h-<fraction>` utilities like `min-h-1/2`, and `min-h-2/5` to give an element a percentage-based minimum height:

  {
    <div className="flex h-96 items-end justify-center space-x-4 font-mono text-xs font-bold text-white">
      <div className="relative flex h-full items-end">
        
        <div className="relative flex min-h-full w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-10 -rotate-90 text-left text-nowrap">min-h-full</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex min-h-9/10 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-10 -rotate-90 text-left text-nowrap">min-h-9/10</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex min-h-3/4 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-10 -rotate-90 text-left text-nowrap">min-h-3/4</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex min-h-1/2 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-10 -rotate-90 text-left text-nowrap">min-h-1/2</div>
        </div>
      </div>
      <div className="relative flex h-full items-end">
        
        <div className="relative flex min-h-1/3 w-8 items-end justify-center rounded-lg bg-sky-500">
          <div className="mb-10 -rotate-90 text-left text-nowrap">min-h-1/3</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:min-h-9/10,min-h-3/4,min-h-1/2,min-h-1/3,min-h-full] -->
<div class="min-h-full ...">min-h-full</div>
<div class="min-h-9/10 ...">min-h-9/10</div>
<div class="min-h-3/4 ...">min-h-3/4</div>
<div class="min-h-1/2 ...">min-h-1/2</div>
<div class="min-h-1/3 ...">min-h-1/3</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# min-inline-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/min-inline-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `min-inline-<number>` | `min-inline-size: calc(var(--spacing) * <number>);` |
| `min-inline-<fraction>` | `min-inline-size: calc(<fraction> * 100%);` |
| `min-inline-3xs` | `min-inline-size: var(--container-3xs); /* 16rem (256px) */` |
| `min-inline-2xs` | `min-inline-size: var(--container-2xs); /* 18rem (288px) */` |
| `min-inline-xs` | `min-inline-size: var(--container-xs); /* 20rem (320px) */` |
| `min-inline-sm` | `min-inline-size: var(--container-sm); /* 24rem (384px) */` |
| `min-inline-md` | `min-inline-size: var(--container-md); /* 28rem (448px) */` |
| `min-inline-lg` | `min-inline-size: var(--container-lg); /* 32rem (512px) */` |
| `min-inline-xl` | `min-inline-size: var(--container-xl); /* 36rem (576px) */` |
| `min-inline-2xl` | `min-inline-size: var(--container-2xl); /* 42rem (672px) */` |
| `min-inline-3xl` | `min-inline-size: var(--container-3xl); /* 48rem (768px) */` |
| `min-inline-4xl` | `min-inline-size: var(--container-4xl); /* 56rem (896px) */` |
| `min-inline-5xl` | `min-inline-size: var(--container-5xl); /* 64rem (1024px) */` |
| `min-inline-6xl` | `min-inline-size: var(--container-6xl); /* 72rem (1152px) */` |
| `min-inline-7xl` | `min-inline-size: var(--container-7xl); /* 80rem (1280px) */` |
| `min-inline-auto` | `min-inline-size: auto;` |
| `min-inline-px` | `min-inline-size: 1px;` |
| `min-inline-full` | `min-inline-size: 100%;` |
| `min-inline-screen` | `min-inline-size: 100vw;` |
| `min-inline-dvw` | `min-inline-size: 100dvw;` |
| `min-inline-dvh` | `min-inline-size: 100dvh;` |
| `min-inline-lvw` | `min-inline-size: 100lvw;` |
| `min-inline-lvh` | `min-inline-size: 100lvh;` |
| `min-inline-svw` | `min-inline-size: 100svw;` |
| `min-inline-svh` | `min-inline-size: 100svh;` |
| `min-inline-min` | `min-inline-size: min-content;` |
| `min-inline-max` | `min-inline-size: max-content;` |
| `min-inline-fit` | `min-inline-size: fit-content;` |
| `min-inline-(<custom-property>)` | `min-inline-size: var(<custom-property>);` |
| `min-inline-[<value>]` | `min-inline-size: <value>;` |

## Examples

### Basic example

Use `min-inline-<number>` utilities like `min-inline-24` and `min-inline-64` to set an element to a fixed minimum inline size based on the spacing scale:

  {
    <div className="relative mx-auto grid w-60 justify-items-start gap-y-4 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-80">min-inline-80</div>
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-64">min-inline-64</div>
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-48">min-inline-48</div>
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-40">min-inline-40</div>
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-32">min-inline-32</div>
      <div className="relative rounded-lg bg-sky-500 px-4 py-2 min-inline-24">min-inline-24</div>
    </div>
  }

```html
<!-- [!code classes:min-inline-80,min-inline-64,min-inline-48,min-inline-40,min-inline-32,min-inline-24] -->
<div class="inline-20 ...">
  <div class="min-inline-80 ...">min-inline-80</div>
  <div class="min-inline-64 ...">min-inline-64</div>
  <div class="min-inline-48 ...">min-inline-48</div>
  <div class="min-inline-40 ...">min-inline-40</div>
  <div class="min-inline-32 ...">min-inline-32</div>
  <div class="min-inline-24 ...">min-inline-24</div>
</div>
```

### Using a percentage

Use `min-inline-full` or `min-inline-<fraction>` utilities like `min-inline-1/2` and `min-inline-2/5` to give an element a percentage-based minimum inline size:

  {
    <div className="relative mx-auto my-6 flex w-full justify-items-start gap-3 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative rounded-lg bg-indigo-500 px-4 py-2 min-inline-2/3">min-inline-3/4</div>
      <div className="relative rounded-lg bg-indigo-300 px-4 py-2 inline-full dark:bg-indigo-800 dark:text-indigo-400">
        inline-full
      </div>
    </div>
  }

```html
<!-- [!code classes:min-inline-3/4] -->
<div class="flex ...">
  <div class="min-inline-3/4 ...">min-inline-3/4</div>
  <div class="inline-full ...">inline-full</div>
</div>
```

### Using the container scale

Use utilities like `min-inline-sm` and `min-inline-xl` to set an element to a fixed minimum inline size based on the container scale:

  {
    <div className="relative grid justify-items-start gap-y-4 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative hidden rounded-lg bg-blue-500 px-4 py-2 min-inline-lg sm:block">min-inline-lg</div>
      <div className="relative hidden rounded-lg bg-blue-500 px-4 py-2 min-inline-md sm:block">min-inline-md</div>
      <div className="relative hidden rounded-lg bg-blue-500 px-4 py-2 min-inline-sm sm:block">min-inline-sm</div>
      <div className="relative rounded-lg bg-blue-500 px-4 py-2 min-inline-xs">min-inline-xs</div>
      <div className="relative rounded-lg bg-blue-500 px-4 py-2 min-inline-2xs">min-inline-2xs</div>
      <div className="relative rounded-lg bg-blue-500 px-4 py-2 min-inline-3xs">min-inline-3xs</div>
    </div>
  }

```html
<!-- [!code classes:min-inline-lg,min-inline-md,min-inline-sm,min-inline-xs,min-inline-2xs,min-inline-3xs] -->
<div class="inline-40 ...">
  <div class="min-inline-lg ...">min-inline-lg</div>
  <div class="min-inline-md ...">min-inline-md</div>
  <div class="min-inline-sm ...">min-inline-sm</div>
  <div class="min-inline-xs ...">min-inline-xs</div>
  <div class="min-inline-2xs ...">min-inline-2xs</div>
  <div class="min-inline-3xs ...">min-inline-3xs</div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# min-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/min-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `min-w-<number>` | `min-width: calc(var(--spacing) * <number>);` |
| `min-w-<fraction>` | `min-width: calc(<fraction> * 100%);` |
| `min-w-3xs` | `min-width: var(--container-3xs); /* 16rem (256px) */` |
| `min-w-2xs` | `min-width: var(--container-2xs); /* 18rem (288px) */` |
| `min-w-xs` | `min-width: var(--container-xs); /* 20rem (320px) */` |
| `min-w-sm` | `min-width: var(--container-sm); /* 24rem (384px) */` |
| `min-w-md` | `min-width: var(--container-md); /* 28rem (448px) */` |
| `min-w-lg` | `min-width: var(--container-lg); /* 32rem (512px) */` |
| `min-w-xl` | `min-width: var(--container-xl); /* 36rem (576px) */` |
| `min-w-2xl` | `min-width: var(--container-2xl); /* 42rem (672px) */` |
| `min-w-3xl` | `min-width: var(--container-3xl); /* 48rem (768px) */` |
| `min-w-4xl` | `min-width: var(--container-4xl); /* 56rem (896px) */` |
| `min-w-5xl` | `min-width: var(--container-5xl); /* 64rem (1024px) */` |
| `min-w-6xl` | `min-width: var(--container-6xl); /* 72rem (1152px) */` |
| `min-w-7xl` | `min-width: var(--container-7xl); /* 80rem (1280px) */` |
| `min-w-auto` | `min-width: auto;` |
| `min-w-px` | `min-width: 1px;` |
| `min-w-full` | `min-width: 100%;` |
| `min-w-screen` | `min-width: 100vw;` |
| `min-w-dvw` | `min-width: 100dvw;` |
| `min-w-dvh` | `min-width: 100dvh;` |
| `min-w-lvw` | `min-width: 100lvw;` |
| `min-w-lvh` | `min-width: 100lvh;` |
| `min-w-svw` | `min-width: 100svw;` |
| `min-w-svh` | `min-width: 100svh;` |
| `min-w-min` | `min-width: min-content;` |
| `min-w-max` | `min-width: max-content;` |
| `min-w-fit` | `min-width: fit-content;` |
| `min-w-(<custom-property>)` | `min-width: var(<custom-property>);` |
| `min-w-[<value>]` | `min-width: <value>;` |

## Examples

### Basic example

Use `min-w-<number>` utilities like `min-w-24` and `min-w-64` to set an element to a fixed minimum width based on the spacing scale:

  {
    <div className="relative mx-auto grid w-60 justify-items-start gap-y-4 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative min-w-80 rounded-lg bg-sky-500 px-4 py-2">min-w-80</div>
      <div className="relative min-w-64 rounded-lg bg-sky-500 px-4 py-2">min-w-64</div>
      <div className="relative min-w-48 rounded-lg bg-sky-500 px-4 py-2">min-w-48</div>
      <div className="relative min-w-40 rounded-lg bg-sky-500 px-4 py-2">min-w-40</div>
      <div className="relative min-w-32 rounded-lg bg-sky-500 px-4 py-2">min-w-32</div>
      <div className="relative min-w-24 rounded-lg bg-sky-500 px-4 py-2">min-w-24</div>
    </div>
  }

```html
<!-- [!code classes:min-w-96,min-w-80,min-w-64,min-w-48,min-w-40,min-w-32,min-w-24,min-w-full] -->
<div class="w-20 ...">
  <div class="min-w-80 ...">min-w-80</div>
  <div class="min-w-64 ...">min-w-64</div>
  <div class="min-w-48 ...">min-w-48</div>
  <div class="min-w-40 ...">min-w-40</div>
  <div class="min-w-32 ...">min-w-32</div>
  <div class="min-w-24 ...">min-w-24</div>
</div>
```

### Using a percentage

Use `min-w-full` or `min-w-<fraction>` utilities like `min-w-1/2` and `min-w-2/5` to give an element a percentage-based minimum width:

  {
    <div className="relative mx-auto my-6 flex w-full justify-items-start gap-3 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative min-w-2/3 rounded-lg bg-indigo-500 px-4 py-2">min-w-3/4</div>
      <div className="relative w-full rounded-lg bg-indigo-300 px-4 py-2 dark:bg-indigo-800 dark:text-indigo-400">
        w-full
      </div>
    </div>
  }

```html
<!-- [!code classes:min-w-3/4] -->
<div class="flex ...">
  <div class="min-w-3/4 ...">min-w-3/4</div>
  <div class="w-full ...">w-full</div>
</div>
```

### Using the container scale

Use utilities like `min-w-sm` and `min-w-xl` to set an element to a fixed minimum width based on the container scale:

  {
    <div className="relative grid justify-items-start gap-y-4 text-center font-mono text-xs font-bold text-white">
      
      <div className="relative hidden min-w-lg rounded-lg bg-blue-500 px-4 py-2 sm:block">min-w-lg</div>
      <div className="relative hidden min-w-md rounded-lg bg-blue-500 px-4 py-2 sm:block">min-w-md</div>
      <div className="relative hidden min-w-sm rounded-lg bg-blue-500 px-4 py-2 sm:block">min-w-sm</div>
      <div className="relative min-w-xs rounded-lg bg-blue-500 px-4 py-2">min-w-xs</div>
      <div className="relative min-w-2xs rounded-lg bg-blue-500 px-4 py-2">min-w-2xs</div>
      <div className="relative min-w-3xs rounded-lg bg-blue-500 px-4 py-2">min-w-3xs</div>
    </div>
  }

```html
<!-- [!code classes:min-w-lg,min-w-md,min-w-sm,min-w-xs,min-w-2xs,min-w-3xs] -->
<div class="w-40 ...">
  <div class="min-w-lg ...">min-w-lg</div>
  <div class="min-w-md ...">min-w-md</div>
  <div class="min-w-sm ...">min-w-sm</div>
  <div class="min-w-xs ...">min-w-xs</div>
  <div class="min-w-2xs ...">min-w-2xs</div>
  <div class="min-w-3xs ...">min-w-3xs</div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# mix-blend-mode

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/mix-blend-mode*

| Clase | Propiedades CSS |
| :--- | :--- |
| `mix-blend-normal` | `mix-blend-mode: normal;` |
| `mix-blend-multiply` | `mix-blend-mode: multiply;` |
| `mix-blend-screen` | `mix-blend-mode: screen;` |
| `mix-blend-overlay` | `mix-blend-mode: overlay;` |
| `mix-blend-darken` | `mix-blend-mode: darken;` |
| `mix-blend-lighten` | `mix-blend-mode: lighten;` |
| `mix-blend-color-dodge` | `mix-blend-mode: color-dodge;` |
| `mix-blend-color-burn` | `mix-blend-mode: color-burn;` |
| `mix-blend-hard-light` | `mix-blend-mode: hard-light;` |
| `mix-blend-soft-light` | `mix-blend-mode: soft-light;` |
| `mix-blend-difference` | `mix-blend-mode: difference;` |
| `mix-blend-exclusion` | `mix-blend-mode: exclusion;` |
| `mix-blend-hue` | `mix-blend-mode: hue;` |
| `mix-blend-saturation` | `mix-blend-mode: saturation;` |
| `mix-blend-color` | `mix-blend-mode: color;` |
| `mix-blend-luminosity` | `mix-blend-mode: luminosity;` |
| `mix-blend-plus-darker` | `mix-blend-mode: plus-darker;` |
| `mix-blend-plus-lighter` | `mix-blend-mode: plus-lighter;` |

## Examples

### Basic example

Use utilities like `mix-blend-overlay` and `mix-blend-soft-light` to control how an element's content and background is blended with other content in the same stacking context:

  {
    <div className="grid grid-cols-1 py-4">
      <div className="col-start-1 row-start-1 flex justify-center -space-x-14">
        <div className="size-32 rounded-full bg-blue-500 mix-blend-multiply"></div>
        <div className="size-32 rounded-full bg-pink-500 mix-blend-multiply"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:mix-blend-multiply] -->
<div class="flex justify-center -space-x-14">
  <div class="bg-blue-500 mix-blend-multiply ..."></div>
  <div class="bg-pink-500 mix-blend-multiply ..."></div>
</div>
```

### Isolating blending

Use the `isolate` utility on the parent element to create a new stacking context and prevent blending with content behind it:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-2 px-0 py-12 sm:px-16">
        <div className="isolate flex justify-center -space-x-14">
          <div className="size-24 rounded-full bg-yellow-500 mix-blend-multiply"></div>
          <div className="size-24 rounded-full bg-green-500 mix-blend-multiply"></div>
        </div>
        <div className="flex justify-center -space-x-14">
          <div className="size-24 rounded-full bg-yellow-500 mix-blend-multiply"></div>
          <div className="size-24 rounded-full bg-green-500 mix-blend-multiply"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:mix-blend-multiply,isolate] -->
<div class="isolate flex justify-center -space-x-14">
  <div class="bg-yellow-500 mix-blend-multiply ..."></div>
  <div class="bg-green-500 mix-blend-multiply ..."></div>
</div>

<div class="flex justify-center -space-x-14">
  <div class="bg-yellow-500 mix-blend-multiply ..."></div>
  <div class="bg-green-500 mix-blend-multiply ..."></div>
</div>
```

### Responsive design


---

# object-fit

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/object-fit*

| Clase | Propiedades CSS |
| :--- | :--- |
| `object-contain` | `object-fit: contain;` |
| `object-cover` | `object-fit: cover;` |
| `object-fill` | `object-fit: fill;` |
| `object-none` | `object-fit: none;` |
| `object-scale-down` | `object-fit: scale-down;` |

## Examples

### Resizing to cover

Use the `object-cover` utility to resize an element's content to cover its container:

  {
    <img
      className="mx-auto h-48 w-96 rounded-lg object-cover"
      src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
    />
  }

```html
<!-- [!code classes:object-cover] -->
<img class="h-48 w-96 object-cover ..." src="/img/mountains.jpg" />
```

### Containing within

Use the `object-contain` utility to resize an element's content to stay contained within its container:

  {
    <div className="relative mx-auto w-96">
      
      <img
        className="relative h-48 w-full object-contain"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
      />
    </div>
  }

```html
<!-- [!code classes:object-contain] -->
<img class="h-48 w-96 object-contain ..." src="/img/mountains.jpg" />
```

### Stretching to fit

Use the `object-fill` utility to stretch an element's content to fit its container:

  {
    <img
      className="mx-auto h-48 w-96 rounded-lg object-fill"
      src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
    />
  }

```html
<!-- [!code classes:object-fill] -->
<img class="h-48 w-96 object-fill ..." src="/img/mountains.jpg" />
```

### Scaling down

Use the `object-scale-down` utility to display an element's content at its original size but scale it down to fit its container if necessary:

  {
    <div className="relative mx-auto w-96 rounded-lg">
      
      <img
        className="relative h-48 w-full object-scale-down"
        src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=128&h=160&q=80"
      />
    </div>
  }

```html
<!-- [!code classes:object-scale-down] -->
<img class="h-48 w-96 object-scale-down ..." src="/img/mountains.jpg" />
```

### Using the original size

Use the `object-none` utility to display an element's content at its original size ignoring the container size:

  {
    <img
      className="mx-auto h-48 w-96 rounded-lg object-none"
      src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
    />
  }

```html
<!-- [!code classes:object-none] -->
<img class="h-48 w-96 object-none ..." src="/img/mountains.jpg" />
```

### Responsive design

```html
<!-- [!code classes:md:object-cover] -->
<img class="object-contain md:object-cover" src="/img/mountains.jpg" />
```


---

# object-position

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/object-position*

"Utilities for controlling how a replaced element's content should be positioned within its container.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `object-top-left` | `object-position: top left;` |
| `object-top` | `object-position: top;` |
| `object-top-right` | `object-position: top right;` |
| `object-left` | `object-position: left;` |
| `object-center` | `object-position: center;` |
| `object-right` | `object-position: right;` |
| `object-bottom-left` | `object-position: bottom left;` |
| `object-bottom` | `object-position: bottom;` |
| `object-bottom-right` | `object-position: bottom right;` |
| `object-(<custom-property>)` | `object-position: var(<custom-property>);` |
| `object-[<value>]` | `object-position: <value>;` |

## Examples

### Basic example

Use utilities like `object-left` and `object-bottom-right` to specify how a replaced element's content should be positioned within its container:

  {
    <div className="flex snap-x scroll-p-4 items-end overflow-x-scroll overflow-y-hidden p-8 pt-16 sm:grid sm:grid-cols-3 sm:gap-16">
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-top-left
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top-left ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute top-0 left-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-top
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute top-0 -left-6 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-top-right
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-top-right ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute top-0 right-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-left
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-left ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-6 left-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-center
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-center ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-6 -left-6 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-right
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-right ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-6 right-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-bottom-left
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom-left ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-12 left-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative w-40 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-bottom
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-12 -left-6 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
      <div className="relative -mx-8 w-56 shrink-0 snap-start snap-always sm:w-auto">
        <p className="absolute inset-x-0 top-0 mb-3 -translate-y-8 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          object-bottom-right
        </p>
        <div className="group relative mx-auto size-20 rounded-lg">
          <div className="relative z-10 h-full w-full rounded-md bg-[url(https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90)] bg-size-[8rem] bg-bottom-right ring-1 ring-black/10 ring-inset"></div>
          <img
            className="absolute -top-12 right-0 size-32 max-w-none overflow-hidden rounded-md opacity-0 transition duration-100 sm:group-hover:opacity-25"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:object-top-left,object-top-right,object-center,object-bottom-left,object-bottom-right,object-bottom,object-left,object-right,object-top] -->
<img class="size-24 object-top-left ..." src="/img/mountains.jpg" />
<img class="size-24 object-top ..." src="/img/mountains.jpg" />
<img class="size-24 object-top-right ..." src="/img/mountains.jpg" />
<img class="size-24 object-left ..." src="/img/mountains.jpg" />
<img class="size-24 object-center ..." src="/img/mountains.jpg" />
<img class="size-24 object-right ..." src="/img/mountains.jpg" />
<img class="size-24 object-bottom-left ..." src="/img/mountains.jpg" />
<img class="size-24 object-bottom ..." src="/img/mountains.jpg" />
<img class="size-24 object-bottom-right ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# opacity

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/opacity*

| Clase | Propiedades CSS |
| :--- | :--- |
| `opacity-<number>` | `opacity: <number>%;` |
| `opacity-(<custom-property>)` | `opacity: var(<custom-property>);` |
| `opacity-[<value>]` | `opacity: <value>;` |

## Examples

### Basic example

Use `opacity-<number>` utilities like `opacity-25` and `opacity-100` to set the opacity of an element:

  {
    <div className="flex flex-col items-center justify-center gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-16">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">opacity-100</p>
        <button className="rounded-md bg-indigo-500 px-4 py-2 text-sm font-semibold text-white opacity-100">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">opacity-75</p>
        <button className="rounded-md bg-indigo-500 px-4 py-2 text-sm font-semibold text-white opacity-75">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">opacity-50</p>
        <button className="rounded-md bg-indigo-500 px-4 py-2 text-sm font-semibold text-white opacity-50">
          Button C
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">opacity-25</p>
        <button className="rounded-md bg-indigo-500 px-4 py-2 text-sm font-semibold text-white opacity-25">
          Button D
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:opacity-100,opacity-75,opacity-50,opacity-25] -->
<button class="bg-indigo-500 opacity-100 ..."></button>
<button class="bg-indigo-500 opacity-75 ..."></button>
<button class="bg-indigo-500 opacity-50 ..."></button>
<button class="bg-indigo-500 opacity-25 ..."></button>
```

### Applying conditionally

### Using a custom value

### Responsive design


---

# order

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/order*

| Clase | Propiedades CSS |
| :--- | :--- |
| `order-<number>` | `order: <number>;` |
| `-order-<number>` | `order: calc(<number> * -1);` |
| `order-first` | `order: -9999;` |
| `order-last` | `order: 9999;` |
| `order-(<custom-property>)` | `order: var(<custom-property>);` |
| `order-[<value>]` | `order: <value>;` |

## Examples

### Explicitly setting a sort order

Use `order-<number>` utilities like `order-1` and `order-3` to render flex and grid items in a different order than they appear in the document:

  {
    <div className="flex justify-between font-mono text-sm leading-6 font-bold text-white">
      <div className="order-3 flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500">01</div>
      <div className="order-1 flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500">02</div>
      <div className="order-2 flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500">03</div>
    </div>
  }

```html
<!-- [!code classes:order-1,order-2,order-3] -->
<div class="flex justify-between ...">
  <div class="order-3 ...">01</div>
  <div class="order-1 ...">02</div>
  <div class="order-2 ...">03</div>
</div>
```

### Ordering items first or last

Use the `order-first` and `order-last` utilities to render flex and grid items first or last:

  {
    <div className="flex justify-between font-mono text-sm leading-6 font-bold text-white">
      <div className="order-last flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">01</div>
      <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">02</div>
      <div className="order-first flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500">03</div>
    </div>
  }

```html
<!-- [!code classes:order-first,order-last] -->
<div class="flex justify-between ...">
  <div class="order-last ...">01</div>
  <div class="...">02</div>
  <div class="order-first ...">03</div>
</div>
```

### Using negative values

To use a negative order value, prefix the class name with a dash to convert it to a negative value:

```html
<!-- [!code classes:-order-1] -->
<div class="-order-1">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design


---

# outline-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/outline-color*

| Clase | Propiedades CSS |
| :--- | :--- |
| `outline-inherit` | `outline-color: inherit;` |
| `outline-current` | `outline-color: currentColor;` |
| `outline-transparent` | `outline-color: transparent;` |
| `outline-(<custom-property>)` | `outline-color: var(<custom-property>);` |
| `outline-[<value>]` | `outline-color: <value>;` |

## Examples

### Basic example

Use utilities like `outline-rose-500` and `outline-lime-100` to control the color of an element's outline:

  {
    <div className="flex flex-col items-center justify-center gap-8 text-center text-sm font-bold text-white sm:flex-row sm:gap-16">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-blue-500
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-blue-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-cyan-500
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-cyan-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-pink-500
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-pink-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:outline-blue-500,outline-cyan-500,outline-pink-500] -->
<button class="outline-2 outline-offset-2 outline-blue-500 ...">Button A</button>
<button class="outline-2 outline-offset-2 outline-cyan-500 ...">Button B</button>
<button class="outline-2 outline-offset-2 outline-pink-500 ...">Button C</button>
```

### Changing the opacity

Use the color opacity modifier to control the opacity of an element's outline color:

  {
    <div className="flex flex-col items-center justify-center gap-8 text-center text-sm font-bold text-white sm:flex-row sm:gap-16">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-blue-500/100
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-blue-500/100 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-blue-500/75
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-blue-500/75 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-blue-500/50
        </p>
        <button className="rounded-md border border-gray-300 px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-blue-500/50 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code word:/100] -->
<!-- [!code word:/75] -->
<!-- [!code word:/50] -->
<button class="outline-2 outline-blue-500/100 ...">Button A</button>
<button class="outline-2 outline-blue-500/75 ...">Button B</button>
<button class="outline-2 outline-blue-500/50 ...">Button C</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# outline-offset

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/outline-offset*

| Clase | Propiedades CSS |
| :--- | :--- |
| `outline-offset-<number>` | `outline-offset: <number>px;` |
| `-outline-offset-<number>` | `outline-offset: calc(<number>px * -1);` |
| `outline-offset-(<custom-property>)` | `outline-offset: var(<custom-property>);` |
| `outline-offset-[<value>]` | `outline-offset: <value>;` |

## Examples

### Basic example

Use utilities like `outline-offset-2` and `outline-offset-4` to change the offset of an element's outline:

  {
    <div className="grid grid-cols-1 gap-8 text-center text-sm font-bold text-white sm:grid-cols-3 sm:gap-4">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-offset-0
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-0 outline-sky-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-offset-2
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-sky-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-offset-4
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-4 outline-sky-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:outline-offset-0,outline-offset-2,outline-offset-4] -->
<button class="outline-2 outline-offset-0 ...">Button A</button>
<button class="outline-2 outline-offset-2 ...">Button B</button>
<button class="outline-2 outline-offset-4 ...">Button C</button>
```

### Using a custom value

### Responsive design


---

# outline-style

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/outline-style*

| Clase | Propiedades CSS |
| :--- | :--- |
| `outline-solid` | `outline-style: solid;` |
| `outline-dashed` | `outline-style: dashed;` |
| `outline-dotted` | `outline-style: dotted;` |
| `outline-double` | `outline-style: double;` |
| `outline-none` | `outline-style: none;` |
| `outline-hidden` | `outline: 2px solid transparent;\noutline-offset: 2px;` |

## Examples

### Basic example

Use utilities like `outline-solid` and `outline-dashed` to set the style of an element's outline:

  {
    <div className="grid grid-cols-2 gap-x-4 gap-y-8 text-center text-sm font-semibold text-white">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">outline-solid</p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-indigo-500 outline-solid dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-dashed
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-indigo-500 outline-dashed dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-dotted
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-indigo-500 outline-dotted dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button C
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          outline-double
        </p>
        <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-3 outline-offset-2 outline-indigo-500 outline-double dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button D
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:outline-solid,outline-dashed,outline-dotted,outline-double] -->
<button class="outline-2 outline-offset-2 outline-solid ...">Button A</button>
<button class="outline-2 outline-offset-2 outline-dashed ...">Button B</button>
<button class="outline-2 outline-offset-2 outline-dotted ...">Button C</button>
<button class="outline-3 outline-offset-2 outline-double ...">Button D</button>
```

### Hiding an outline

Use the `outline-hidden` utility to hide the default browser outline on focused elements, while still preserving the outline in forced colors mode:

  {
    <input
      type="text"
      placeholder="Your full name"
      className="mx-auto block w-full max-w-xs border-b-2 border-gray-300 bg-gray-50 px-2 py-2 text-sm text-gray-800 focus:border-indigo-600 focus:outline-hidden dark:border-white/15 dark:bg-white/5 dark:text-white dark:focus:border-indigo-500"
    />
  }

```html
<!-- [!code classes:focus:outline-hidden] -->
<input class="focus:border-indigo-600 focus:outline-hidden ..." type="text" />
```

It is highly recommended to apply your own focus styling for accessibility when using this utility.

### Removing outlines

Use the `outline-none` utility to completely remove the default browser outline on focused elements:

  {
    <div className="mx-auto flex max-w-md flex-col rounded-lg outline-1 outline-gray-300 focus-within:outline-2 focus-within:outline-indigo-600 dark:bg-white/5 dark:outline-transparent dark:focus-within:outline-indigo-500">
      <textarea className="w-full resize-none p-2 outline-none" placeholder="Leave a comment..." />
      <button
        className="mr-2 mb-2 inline-flex items-center self-end rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold text-white shadow-xs hover:bg-indigo-500 focus:outline-2 focus:outline-offset-2 focus:outline-indigo-600"
        type="button"
      >
        Post
      </button>
    </div>
  }

```html
<!-- [!code classes:outline-none] -->
<div class="focus-within:outline-2 focus-within:outline-indigo-600 ...">
  <textarea class="outline-none ..." placeholder="Leave a comment..." />
  <button class="..." type="button">Post</button>
</div>
```

It is highly recommended to apply your own focus styling for accessibility when using this utility.

### Responsive design


---

# outline-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/outline-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `outline` | `outline-width: 1px;` |
| `outline-<number>` | `outline-width: <number>px;` |
| `outline-(length:<custom-property>)` | `outline-width: var(<custom-property>);` |
| `outline-[<value>]` | `outline-width: <value>;` |

## Examples

### Basic example

Use `outline` or `outline-<number>` utilities like `outline-2` and `outline-4` to set the width of an element's outline:

  {
    <div className="flex flex-col items-center justify-center gap-8 text-center text-sm font-bold text-white sm:flex-row sm:gap-16">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">outline</p>
        <button className="dark:border-gray rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline outline-offset-2 outline-blue-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">outline-2</p>
        <button className="dark:border-gray rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-2 outline-offset-2 outline-blue-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">outline-4</p>
        <button className="dark:border-gray rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-4 outline-offset-2 outline-blue-500 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:outline,outline-2,outline-4] -->
<button class="outline outline-offset-2 ...">Button A</button>
<button class="outline-2 outline-offset-2 ...">Button B</button>
<button class="outline-4 outline-offset-2 ...">Button C</button>
```

### Applying on focus

  {
    <div className="mx-auto flex max-w-md justify-center gap-4 text-center text-sm leading-6 font-bold text-white">
      <button className="rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 outline-offset-2 outline-sky-500 focus:outline-2 dark:border-transparent dark:bg-gray-700 dark:text-gray-200">
        Save Changes
      </button>
    </div>
  }

```html
<!-- [!code classes:focus:outline-2] -->
<button class="outline-offset-2 outline-sky-500 focus:outline-2 ...">Save Changes</button>
```

### Using a custom value

### Responsive design


---

# overflow-wrap

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/overflow-wrap*

| Clase | Propiedades CSS |
| :--- | :--- |
| `wrap-break-word` | `overflow-wrap: break-word;` |
| `wrap-anywhere` | `overflow-wrap: anywhere;` |
| `wrap-normal` | `overflow-wrap: normal;` |

## Examples

### Wrapping mid-word

Use the `wrap-break-word` utility to allow line breaks between letters in a word if needed:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 wrap-break-word text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:wrap-break-word] -->
<p class="wrap-break-word">The longest word in any of the major...</p>
```

### Wrapping anywhere

The `wrap-anywhere` utility behaves similarly to `wrap-break-word`, except that the browser factors in mid-word line breaks when calculating the intrinsic size of the element:

  {
    <div>
      <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">wrap-break-word</p>
      <div className="mx-auto flex max-w-sm items-center gap-4 rounded-xl bg-white p-3 shadow-sm ring ring-black/2.5 dark:bg-black/10 dark:ring-white/10">
        <img
          className="size-16 rounded-full outline -outline-offset-1 outline-black/10 dark:outline-white/10"
          src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <div className="wrap-break-word">
          <p className="text-sm font-medium text-gray-900 dark:text-white">Jay Riemenschneider</p>
          <p className="text-sm text-gray-500 dark:text-gray-400">jason.riemenschneider@vandelayindustries.com</p>
        </div>
      </div>
      <p className="mt-8 mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
        wrap-anywhere
      </p>
      <div className="mx-auto flex max-w-sm items-center gap-4 rounded-xl bg-white p-3 shadow-sm ring ring-black/2.5 dark:bg-black/10 dark:ring-white/10">
        <img
          className="size-16 rounded-full outline -outline-offset-1 outline-black/10 dark:outline-white/10"
          src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <div className="wrap-anywhere">
          <p className="text-sm font-medium text-gray-900 dark:text-white">Jay Riemenschneider</p>
          <p className="text-sm text-gray-500 dark:text-gray-400">jason.riemenschneider@vandelayindustries.com</p>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:wrap-anywhere,wrap-break-word] -->
<div class="flex max-w-sm">
  <img class="size-16 rounded-full" src="/img/profile.jpg" />
  <div class="wrap-break-word">
    <p class="font-medium">Jay Riemenschneider</p>
    <p>jason.riemenschneider@vandelayindustries.com</p>
  </div>
</div>
<div class="flex max-w-sm">
  <img class="size-16 rounded-full" src="/img/profile.jpg" />
  <div class="wrap-anywhere">
    <p class="font-medium">Jay Riemenschneider</p>
    <p>jason.riemenschneider@vandelayindustries.com</p>
  </div>
</div>
```

This is useful for wrapping text inside of `flex` containers, where you would usually need to set `min-width: 0` on the child element to allow it to shrink below its content size.

### Wrapping normally

Use the `wrap-normal` utility to only allow line breaks at natural wrapping points, like spaces, hyphens, and punctuation:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 wrap-normal text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:wrap-normal] -->
<p class="wrap-normal">The longest word in any of the major...</p>
```

### Responsive design


---

# overflow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/overflow*

"Utilities for controlling how an element handles content that is too large for the container.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `overflow-auto` | `overflow: auto;` |
| `overflow-hidden` | `overflow: hidden;` |
| `overflow-clip` | `overflow: clip;` |
| `overflow-visible` | `overflow: visible;` |
| `overflow-scroll` | `overflow: scroll;` |
| `overflow-x-auto` | `overflow-x: auto;` |
| `overflow-y-auto` | `overflow-y: auto;` |
| `overflow-x-hidden` | `overflow-x: hidden;` |
| `overflow-y-hidden` | `overflow-y: hidden;` |
| `overflow-x-clip` | `overflow-x: clip;` |
| `overflow-y-clip` | `overflow-y: clip;` |
| `overflow-x-visible` | `overflow-x: visible;` |
| `overflow-y-visible` | `overflow-y: visible;` |
| `overflow-x-scroll` | `overflow-x: scroll;` |
| `overflow-y-scroll` | `overflow-y: scroll;` |

## Examples

### Showing content that overflows

Use the `overflow-visible` utility to prevent content within an element from being clipped:

  {
    <div className="relative mx-auto flex max-w-sm items-center gap-6 overflow-visible rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:bg-gray-800">
      <img
        className="absolute -left-6 h-24 w-24 rounded-full shadow-lg"
        src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
      />
      <div className="flex flex-col py-5 pl-24">
        <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
        <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-visible] -->
<div class="overflow-visible ...">
  <!-- ... -->
</div>
```

Note that any content that overflows the bounds of the element will then be visible.

### Hiding content that overflows

Use the `overflow-hidden` utility to clip any content within an element that overflows the bounds of that element:

  {
    <div className="relative mx-auto flex max-w-sm items-center gap-6 overflow-hidden rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:bg-gray-800">
      <img
        className="absolute -left-6 h-24 w-24 rounded-full shadow-lg"
        src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
      />
      <div className="flex flex-col py-5 pl-24">
        <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
        <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-hidden] -->
<div class="overflow-hidden ...">
  <!-- ... -->
</div>
```

### Scrolling if needed

Use the `overflow-auto` utility to add scrollbars to an element in the event that its content overflows the bounds of that element:

  {
    <div className="relative mx-auto flex h-72 max-w-sm flex-col divide-y divide-gray-200 overflow-auto rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:divide-gray-200/5 dark:bg-gray-800">
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Debra Houston</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Analyst</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Jane White</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Director, Marketing</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Ray Flint</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical Advisor</span>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-auto] -->
<div class="overflow-auto ...">
  <!-- ... -->
</div>
```

Unlike `overflow-scroll`, which always shows scrollbars, this utility will only show them if scrolling is necessary.

### Scrolling horizontally if needed

Use the `overflow-x-auto` utility to allow horizontal scrolling if needed:

  {
    <div className="mx-auto max-w-md min-w-0 bg-white shadow-xl dark:bg-gray-800">
      <div className="flex overflow-x-auto">
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Andrew</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Emily</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1502685104226-ee32379fefbe?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Whitney</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1519345182560-3f2917c472ef?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">David</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Kristin</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1605405748313-a416a1b84491?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Sarah</strong>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-x-auto] -->
<div class="overflow-x-auto ...">
  <!-- ... -->
</div>
```

### Scrolling vertically if needed

Use the `overflow-y-auto` utility to allow vertical scrolling if needed:

  {
    <div className="relative mx-auto flex h-72 max-w-sm flex-col divide-y divide-gray-200 overflow-y-auto rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:divide-gray-200/5 dark:bg-gray-800">
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Debra Houston</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Analyst</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Jane White</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Director, Marketing</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Ray Flint</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical Advisor</span>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-y-auto] -->
<div class="h-32 overflow-y-auto ...">
  <!-- ... -->
</div>
```

### Scrolling horizontally always

Use the `overflow-x-scroll` utility to allow horizontal scrolling and always show scrollbars unless always-visible scrollbars are disabled by the operating system:

  {
    <div className="mx-auto max-w-md min-w-0 bg-white shadow-xl dark:bg-gray-800">
      <div className="flex overflow-x-scroll">
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Andrew</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Emily</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1502685104226-ee32379fefbe?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Whitney</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1519345182560-3f2917c472ef?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">David</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Kristin</strong>
          </div>
        </div>
        <div className="flex-none px-3 py-6 first:pl-6 last:pr-6">
          <div className="flex flex-col items-center justify-center gap-3">
            <img
              className="h-18 w-18 rounded-full"
              src="https://images.unsplash.com/photo-1605405748313-a416a1b84491?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-xs font-medium text-gray-900 dark:text-gray-200">Sarah</strong>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-x-scroll] -->
<div class="overflow-x-scroll ...">
  <!-- ... -->
</div>
```

### Scrolling vertically always

Use the `overflow-y-scroll` utility to allow vertical scrolling and always show scrollbars unless always-visible scrollbars are disabled by the operating system:

  {
    <div className="relative mx-auto flex h-72 max-w-sm flex-col divide-y divide-gray-200 overflow-y-scroll rounded-xl bg-white shadow-lg ring-1 ring-black/5 dark:divide-gray-200/5 dark:bg-gray-800">
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical advisor</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Debra Houston</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Analyst</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Jane White</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Director, Marketing</span>
        </div>
      </div>
      <div className="flex items-center gap-4 p-4">
        <img
          className="h-12 w-12 rounded-full"
          src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
        />
        <div className="flex flex-col">
          <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Ray Flint</strong>
          <span className="text-sm font-medium text-gray-500 dark:text-gray-400">Technical Advisor</span>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-y-scroll] -->
<div class="overflow-y-scroll ...">
  <!-- ... -->
</div>
```

### Scrolling in all directions

Use the `overflow-scroll` utility to add scrollbars to an element:

  {
    <div className="overflow-hidden dark:bg-gray-800">
      <div className="grid max-h-90 grid-cols-[70px_repeat(7,150px)] grid-rows-[auto_repeat(16,50px)] overflow-scroll">
        {/* Calendar frame */}
        <div className="sticky top-0 z-10 col-start-1 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200"></div>
        <div className="sticky top-0 z-10 col-start-2 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Sun
        </div>
        <div className="sticky top-0 z-10 col-start-3 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Mon
        </div>
        <div className="sticky top-0 z-10 col-start-4 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Tue
        </div>
        <div className="sticky top-0 z-10 col-start-5 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Wed
        </div>
        <div className="sticky top-0 z-10 col-start-6 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Thu
        </div>
        <div className="sticky top-0 z-10 col-start-7 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Fri
        </div>
        <div className="sticky top-0 z-10 col-start-8 row-start-1 border-b border-gray-100 bg-white bg-clip-padding py-2 text-center text-sm font-medium text-gray-900 dark:border-black/10 dark:bg-linear-to-b dark:from-gray-600 dark:to-gray-700 dark:text-gray-200">
          Sat
        </div>
        <div className="sticky left-0 col-start-1 row-start-2 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          5 AM
        </div>
        <div className="col-start-2 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-2 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-2 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-3 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          6 AM
        </div>
        <div className="col-start-2 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-3 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-3 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-4 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          7 AM
        </div>
        <div className="col-start-2 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-4 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-4 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-5 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          8 AM
        </div>
        <div className="col-start-2 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-5 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-5 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-6 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          9 AM
        </div>
        <div className="col-start-2 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-6 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-6 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-7 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          10 AM
        </div>
        <div className="col-start-2 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-7 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-7 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-8 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          11 AM
        </div>
        <div className="col-start-2 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-8 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-8 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-9 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          12 PM
        </div>
        <div className="col-start-2 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-9 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-9 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-10 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          1 PM
        </div>
        <div className="col-start-2 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-10 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-10 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-11 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          2 PM
        </div>
        <div className="col-start-2 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-11 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-11 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-12 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          3 PM
        </div>
        <div className="col-start-2 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-12 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-12 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-13 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          4 PM
        </div>
        <div className="col-start-2 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-13 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-13 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-14 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          5 PM
        </div>
        <div className="col-start-2 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-14 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-14 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-15 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          6 PM
        </div>
        <div className="col-start-2 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-15 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-15 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-16 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          7 PM
        </div>
        <div className="col-start-2 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-16 border-r border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-16 border-b border-gray-100 dark:border-gray-200/5"></div>
        <div className="sticky left-0 col-start-1 row-start-17 border-r border-gray-100 bg-white p-1.5 text-right text-xs font-medium text-gray-400 uppercase dark:border-gray-200/5 dark:bg-gray-800">
          8 PM
        </div>
        <div className="col-start-2 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-3 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-4 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-5 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-6 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-7 row-start-17 border-r border-gray-100 dark:border-gray-200/5"></div>
        <div className="col-start-8 row-start-17"></div>
        {/* Calendar contents */}
        <div className="col-start-3 row-span-4 row-start-2 m-1 flex flex-col rounded-lg border border-blue-700/10 bg-blue-400/20 p-1 dark:border-sky-500 dark:bg-sky-600/50">
          <span className="text-xs text-blue-600 dark:text-sky-100">5 AM</span>
          <span className="text-xs font-medium text-blue-600 dark:text-sky-100">Flight to Vancouver</span>
          <span className="text-xs text-blue-600 dark:text-sky-100">Toronto YYZ</span>
        </div>
        <div className="col-start-4 row-span-4 row-start-3 m-1 flex flex-col rounded-lg border border-purple-700/10 bg-purple-400/20 p-1 dark:border-fuchsia-500 dark:bg-fuchsia-600/50">
          <span className="text-xs text-purple-600 dark:text-fuchsia-100">6 AM</span>
          <span className="text-xs font-medium text-purple-600 dark:text-fuchsia-100">Breakfast</span>
          <span className="text-xs text-purple-600 dark:text-fuchsia-100">Mel's Diner</span>
        </div>
        <div className="col-start-7 row-span-3 row-start-14 m-1 flex flex-col rounded-lg border border-pink-700/10 bg-pink-400/20 p-1 dark:border-indigo-500 dark:bg-indigo-600/50">
          <span className="text-xs text-pink-600 dark:text-indigo-100">5 PM</span>
          <span className="text-xs font-medium text-pink-600 dark:text-indigo-100">🎉 Party party 🎉</span>
          <span className="text-xs text-pink-600 dark:text-indigo-100">We like to party!</span>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-scroll] -->
<div class="overflow-scroll ...">
  <!-- ... -->
</div>
```

Unlike `overflow-auto`, which only shows scrollbars if they are necessary, this utility always shows them. Note that some operating systems (like macOS) hide unnecessary scrollbars regardless of this setting.

### Responsive design


---

# overscroll-behavior

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/overscroll-behavior*

"Utilities for controlling how the browser behaves when reaching the boundary of a scrolling area.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `overscroll-auto` | `overscroll-behavior: auto;` |
| `overscroll-contain` | `overscroll-behavior: contain;` |
| `overscroll-none` | `overscroll-behavior: none;` |
| `overscroll-x-auto` | `overscroll-behavior-x: auto;` |
| `overscroll-x-contain` | `overscroll-behavior-x: contain;` |
| `overscroll-x-none` | `overscroll-behavior-x: none;` |
| `overscroll-y-auto` | `overscroll-behavior-y: auto;` |
| `overscroll-y-contain` | `overscroll-behavior-y: contain;` |
| `overscroll-y-none` | `overscroll-behavior-y: none;` |

## Examples

### Preventing parent overscrolling

Use the `overscroll-contain` utility to prevent scrolling in the target area from triggering scrolling in the parent element, but preserve "bounce" effects when scrolling past the end of the container in operating systems that support it:

  {
    <div className="h-48 space-y-4 overflow-auto overscroll-contain p-8 text-gray-600 dark:bg-gray-800 dark:text-gray-400">
      <p
        children={`
      Well, let me tell you something, funny boy. Y'know that little stamp, the
      one that says "New York Public Library"? Well that may not mean anything
      to you, but that means a lot to me. One whole hell of a lot.`}
      />
      <p
        children={`
      Sure, go ahead, laugh if you want to. I've seen your type before: Flashy,
      making the scene, flaunting convention. Yeah, I know what you're thinking.
      What's this guy making such a big stink about old library books? Well, let
      me give you a hint, junior.`}
      />
      <p
        children={`
      Maybe we can live without libraries, people like you and me. Maybe. Sure,
      we're too old to change the world, but what about that kid, sitting down,
      opening a book, right now, in a branch at the local library and finding
      drawings of pee-pees and wee-wees on the Cat in the Hat and the Five
      Chinese Brothers? Doesn't HE deserve better?`}
      />
    </div>
  }

```html
<!-- [!code classes:overscroll-contain] -->
<div class="overscroll-contain ...">Well, let me tell you something, ...</div>
```

### Preventing overscroll bouncing

Use the `overscroll-none` utility to prevent scrolling in the target area from triggering scrolling in the parent element, and also prevent "bounce" effects when scrolling past the end of the container:

  {
    <div className="h-48 space-y-4 overflow-auto overscroll-none p-8 text-gray-600 dark:bg-gray-800 dark:text-gray-400">
      <p
        children={`
      Well, let me tell you something, funny boy. Y'know that little stamp, the
      one that says "New York Public Library"? Well that may not mean anything
      to you, but that means a lot to me. One whole hell of a lot.`}
      />
      <p
        children={`
      Sure, go ahead, laugh if you want to. I've seen your type before: Flashy,
      making the scene, flaunting convention. Yeah, I know what you're thinking.
      What's this guy making such a big stink about old library books? Well, let
      me give you a hint, junior.`}
      />
      <p
        children={`
      Maybe we can live without libraries, people like you and me. Maybe. Sure,
      we're too old to change the world, but what about that kid, sitting down,
      opening a book, right now, in a branch at the local library and finding
      drawings of pee-pees and wee-wees on the Cat in the Hat and the Five
      Chinese Brothers? Doesn't HE deserve better?`}
      />
    </div>
  }

```html
<!-- [!code classes:overscroll-none] -->
<div class="overscroll-none ...">Well, let me tell you something, ...</div>
```

### Using the default overscroll behavior

Use the `overscroll-auto` utility to make it possible for the user to continue scrolling a parent scroll area when they reach the boundary of the primary scroll area:

  {
    <div className="h-48 space-y-4 overflow-auto overscroll-auto p-8 text-gray-600 dark:bg-gray-800 dark:text-gray-400">
      <p
        children={`
      Well, let me tell you something, funny boy. Y'know that little stamp, the
      one that says "New York Public Library"? Well that may not mean anything
      to you, but that means a lot to me. One whole hell of a lot.`}
      />
      <p
        children={`
      Sure, go ahead, laugh if you want to. I've seen your type before: Flashy,
      making the scene, flaunting convention. Yeah, I know what you're thinking.
      What's this guy making such a big stink about old library books? Well, let
      me give you a hint, junior.`}
      />
      <p
        children={`
      Maybe we can live without libraries, people like you and me. Maybe. Sure,
      we're too old to change the world, but what about that kid, sitting down,
      opening a book, right now, in a branch at the local library and finding
      drawings of pee-pees and wee-wees on the Cat in the Hat and the Five
      Chinese Brothers? Doesn't HE deserve better?`}
      />
    </div>
  }

```html
<!-- [!code classes:overscroll-auto] -->
<div class="overscroll-auto ...">Well, let me tell you something, ...</div>
```

### Responsive design


---

# padding

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/padding*

| Clase | Propiedades CSS |
| :--- | :--- |
| `p-<number>` | `padding: calc(var(--spacing) * <number>);` |
| `p-px` | `padding: 1px;` |
| `p-(<custom-property>)` | `padding: var(<custom-property>);` |
| `p-[<value>]` | `padding: <value>;` |
| `px-<number>` | `padding-inline: calc(var(--spacing) * <number>);` |
| `px-px` | `padding-inline: 1px;` |
| `px-(<custom-property>)` | `padding-inline: var(<custom-property>);` |
| `px-[<value>]` | `padding-inline: <value>;` |
| `py-<number>` | `padding-block: calc(var(--spacing) * <number>);` |
| `py-px` | `padding-block: 1px;` |
| `py-(<custom-property>)` | `padding-block: var(<custom-property>);` |
| `py-[<value>]` | `padding-block: <value>;` |
| `ps-<number>` | `padding-inline-start: calc(var(--spacing) * <number>);` |
| `ps-px` | `padding-inline-start: 1px;` |
| `ps-(<custom-property>)` | `padding-inline-start: var(<custom-property>);` |
| `ps-[<value>]` | `padding-inline-start: <value>;` |
| `pe-<number>` | `padding-inline-end: calc(var(--spacing) * <number>);` |
| `pe-px` | `padding-inline-end: 1px;` |
| `pe-(<custom-property>)` | `padding-inline-end: var(<custom-property>);` |
| `pe-[<value>]` | `padding-inline-end: <value>;` |
| `pbs-<number>` | `padding-block-start: calc(var(--spacing) * <number>);` |
| `pbs-px` | `padding-block-start: 1px;` |
| `pbs-(<custom-property>)` | `padding-block-start: var(<custom-property>);` |
| `pbs-[<value>]` | `padding-block-start: <value>;` |
| `pbe-<number>` | `padding-block-end: calc(var(--spacing) * <number>);` |
| `pbe-px` | `padding-block-end: 1px;` |
| `pbe-(<custom-property>)` | `padding-block-end: var(<custom-property>);` |
| `pbe-[<value>]` | `padding-block-end: <value>;` |
| `pt-<number>` | `padding-top: calc(var(--spacing) * <number>);` |
| `pt-px` | `padding-top: 1px;` |
| `pt-(<custom-property>)` | `padding-top: var(<custom-property>);` |
| `pt-[<value>]` | `padding-top: <value>;` |
| `pr-<number>` | `padding-right: calc(var(--spacing) * <number>);` |
| `pr-px` | `padding-right: 1px;` |
| `pr-(<custom-property>)` | `padding-right: var(<custom-property>);` |
| `pr-[<value>]` | `padding-right: <value>;` |
| `pb-<number>` | `padding-bottom: calc(var(--spacing) * <number>);` |
| `pb-px` | `padding-bottom: 1px;` |
| `pb-(<custom-property>)` | `padding-bottom: var(<custom-property>);` |
| `pb-[<value>]` | `padding-bottom: <value>;` |
| `pl-<number>` | `padding-left: calc(var(--spacing) * <number>);` |
| `pl-px` | `padding-left: 1px;` |
| `pl-(<custom-property>)` | `padding-left: var(<custom-property>);` |
| `pl-[<value>]` | `padding-left: <value>;` |

## Examples

### Basic example

Use `p-<number>` utilities like `p-4` and `p-8` to control the padding on all sides of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="relative rounded-lg bg-violet-500 p-8">
        
        <div className="relative bg-violet-500 p-4">p-8</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:p-8] -->
<div class="p-8 ...">p-8</div>
```

### Adding padding to one side

Use `pt-<number>`, `pr-<number>`, `pb-<number>`, and `pl-<number>` utilities like `pt-6` and `pr-4` to control the padding on one side of an element:

  {
    <div className="-mx-5 flex flex-wrap items-start justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-start">
        <div className="flex-none px-5">
          <div className="overflow-hidden rounded-lg bg-purple-500">
            
            <div className="p-4">pt-6</div>
          </div>
        </div>
        <div className="flex-none px-5 pt-6">
          <div className="flex overflow-hidden rounded-lg bg-purple-500">
            <div className="flex-none p-4">pr-4</div>
            
          </div>
        </div>
      </div>
      <div className="flex items-start">
        <div className="flex-none px-5 pt-6">
          <div className="overflow-hidden rounded-lg bg-purple-500">
            <div className="p-4">pb-8</div>
            
          </div>
        </div>
        <div className="flex-none px-5 pt-6">
          <div className="flex overflow-hidden rounded-lg bg-purple-500">
            
            <div className="flex-none p-4">pl-2</div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:pt-6,pr-4,pb-8,pl-2] -->
<div class="pt-6 ...">pt-6</div>
<div class="pr-4 ...">pr-4</div>
<div class="pb-8 ...">pb-8</div>
<div class="pl-2 ...">pl-2</div>
```

### Adding horizontal padding

Use `px-<number>` utilities like `px-4` and `px-8` to control the horizontal padding of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="flex overflow-hidden rounded-lg bg-indigo-500">
        
        <div className="p-4">px-8</div>
        
      </div>
    </div>
  }

```html
<!-- [!code classes:px-8] -->
<div class="px-8 ...">px-8</div>
```

### Adding vertical padding

Use `py-<number>` utilities like `py-4` and `py-8` to control the vertical padding of an element:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="overflow-hidden rounded-lg bg-pink-500">
        
        <div className="p-4">py-8</div>
        
      </div>
    </div>
  }

```html
<!-- [!code classes:py-8] -->
<div class="py-8 ...">py-8</div>
```

### Using logical properties

Use `ps-<number>` or `pe-<number>` utilities like `ps-4` and `pe-8` to set the `padding-inline-start` and `padding-inline-end` logical properties, which map to either the left or right side based on the text direction:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="flex overflow-hidden rounded-lg bg-indigo-500 font-mono text-sm leading-6 font-bold text-white">
          
          <div className="p-4">ps-8</div>
        </div>
        <div className="mt-4 flex overflow-hidden rounded-lg bg-indigo-500 font-mono text-sm leading-6 font-bold text-white">
          <div className="p-4">pe-8</div>
          
        </div>
      </div>
      <div className="flex flex-col items-end gap-y-4">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="flex overflow-hidden rounded-lg bg-indigo-500 font-mono text-sm leading-6 font-bold text-white">
          <div className="p-4">ps-8</div>
          
        </div>
        <div className="mt-4 flex overflow-hidden rounded-lg bg-indigo-500 font-mono text-sm leading-6 font-bold text-white">
          
          <div className="p-4">pe-8</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:ps-8,pe-8] -->
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<div>
  <div dir="ltr">
    <div class="ps-8 ...">ps-8</div>
    <div class="pe-8 ...">pe-8</div>
  </div>
  <div dir="rtl">
    <div class="ps-8 ...">ps-8</div>
    <div class="pe-8 ...">pe-8</div>
  </div>
</div>
```

For more control, you can also use the [LTR and RTL modifiers](/docs/hover-focus-and-other-states#rtl-support) to conditionally apply specific styles depending on the current text direction.

Use the `pbs-<number>` and `pbe-<number>` utilities to set the `padding-block-start` and `padding-block-end` logical properties, which map to either the top or bottom side based on the writing mode:

```html
<!-- [!code classes:pbs-8] -->
<div class="pbs-8 ...">pbs-8</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# perspective-origin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/perspective-origin*

| Clase | Propiedades CSS |
| :--- | :--- |
| `perspective-origin-center` | `perspective-origin: center;` |
| `perspective-origin-top` | `perspective-origin: top;` |
| `perspective-origin-top-right` | `perspective-origin: top right;` |
| `perspective-origin-right` | `perspective-origin: right;` |
| `perspective-origin-bottom-right` | `perspective-origin: bottom right;` |
| `perspective-origin-bottom` | `perspective-origin: bottom;` |
| `perspective-origin-bottom-left` | `perspective-origin: bottom left;` |
| `perspective-origin-left` | `perspective-origin: left;` |
| `perspective-origin-top-left` | `perspective-origin: top left;` |
| `perspective-origin-(<custom-property>)` | `perspective-origin: var(<custom-property>);` |
| `perspective-origin-[<value>]` | `perspective-origin: <value>;` |

## Examples

### Basic example

Use utilities like `perspective-origin-top` and `perspective-origin-bottom-left` to control where the vanishing point of a perspective is located:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          perspective-origin-top-left
        </p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] perspective-near perspective-origin-top-left transform-3d *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          perspective-origin-bottom-right
        </p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] perspective-near perspective-origin-bottom-right transform-3d *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:perspective-origin-top-left,perspective-origin-bottom-right] -->
<div class="size-20 perspective-near perspective-origin-top-left ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>

<div class="size-20 perspective-near perspective-origin-bottom-right …">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>
```

### Using a custom value

### Responsive design


---

# perspective

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/perspective*

| Clase | Propiedades CSS |
| :--- | :--- |
| `perspective-dramatic` | `perspective: var(--perspective-dramatic); /* 100px */` |
| `perspective-near` | `perspective: var(--perspective-near); /* 300px */` |
| `perspective-normal` | `perspective: var(--perspective-normal); /* 500px */` |
| `perspective-midrange` | `perspective: var(--perspective-midrange); /* 800px */` |
| `perspective-distant` | `perspective: var(--perspective-distant); /* 1200px */` |
| `perspective-none` | `perspective: none;` |
| `perspective-(<custom-property>)` | `perspective: var(<custom-property>);` |
| `perspective-[<value>]` | `perspective: <value>;` |

## Examples

### Basic example

Use utilities like `perspective-normal` and `perspective-distant` to control how close or how far away the z-plane is from the screen:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          perspective-dramatic
        </p>
        <div className="size-56 p-10 py-24">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] perspective-dramatic transform-3d *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          perspective-normal
        </p>
        <div className="size-56 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] perspective-normal transform-3d *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:perspective-dramatic,perspective-normal] -->
<div class="size-20 perspective-dramatic ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>

<div class="size-20 perspective-normal ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>
```

This is like moving a camera closer to or further away from an object.

### Removing a perspective

Use the `perspective-none` utility to remove a perspective transform from an element:

```html
<!-- [!code classes:perspective-none] -->
<div class="perspective-none ...">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# place-content

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/place-content*

| Clase | Propiedades CSS |
| :--- | :--- |
| `place-content-center` | `place-content: center;` |
| `place-content-center-safe` | `place-content: safe center;` |
| `place-content-start` | `place-content: start;` |
| `place-content-end` | `place-content: end;` |
| `place-content-end-safe` | `place-content: safe end;` |
| `place-content-between` | `place-content: space-between;` |
| `place-content-around` | `place-content: space-around;` |
| `place-content-evenly` | `place-content: space-evenly;` |
| `place-content-baseline` | `place-content: baseline;` |
| `place-content-stretch` | `place-content: stretch;` |

## Examples

### Center

Use `place-content-center` to pack items in the center of the inline and block axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-center gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-sky-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-center] -->
<div class="grid h-48 grid-cols-2 place-content-center gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Start

Use `place-content-start` to pack items against the start of the inline and block axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-start gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-fuchsia-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-start] -->
<div class="grid h-48 grid-cols-2 place-content-start gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### End

Use `place-content-end` to pack items against the end of the inline and block axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-end gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-indigo-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-end] -->
<div class="grid h-48 grid-cols-2 place-content-end gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Space between

Use `place-content-between` to distribute grid items along the inline and block axes so that there is an equal amount of space between each row and column on each axis respectively:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-between gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-purple-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-purple-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-purple-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-purple-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-between] -->
<div class="grid h-48 grid-cols-2 place-content-between gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Space around

Use `place-content-around` to distribute grid items along the inline and block axes so that there is an equal amount of space around each row and column on each axis respectively:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-around gap-x-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-cyan-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-around] -->
<div class="grid h-48 grid-cols-2 place-content-around gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Space evenly

Use `place-content-evenly` to distribute grid items such that they are evenly spaced on the inline and block axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-[repeat(2,56px)] place-content-evenly rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-violet-500 p-4">01</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-violet-500 p-4">02</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-violet-500 p-4">03</div>
        <div className="flex h-14 w-14 items-center justify-center rounded-lg bg-violet-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-evenly] -->
<div class="grid h-48 grid-cols-2 place-content-evenly gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Stretch

Use `place-content-stretch` to stretch grid items along their grid areas on the inline and block axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-2 place-content-stretch gap-4 rounded-lg font-mono text-sm leading-6 font-bold text-white">
        <div className="flex items-center justify-center rounded-lg bg-pink-500 p-4">01</div>
        <div className="flex items-center justify-center rounded-lg bg-pink-500 p-4">02</div>
        <div className="flex items-center justify-center rounded-lg bg-pink-500 p-4">03</div>
        <div className="flex items-center justify-center rounded-lg bg-pink-500 p-4">04</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-content-stretch] -->
<div class="grid h-48 grid-cols-2 place-content-stretch gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
</div>
```

### Responsive design


---

# place-items

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/place-items*

| Clase | Propiedades CSS |
| :--- | :--- |
| `place-items-start` | `place-items: start;` |
| `place-items-end` | `place-items: end;` |
| `place-items-end-safe` | `place-items: safe end;` |
| `place-items-center` | `place-items: center;` |
| `place-items-center-safe` | `place-items: safe center;` |
| `place-items-baseline` | `place-items: baseline;` |
| `place-items-stretch` | `place-items: stretch;` |

## Examples

### Start

Use `place-items-start` to place grid items on the start of their grid areas on both axes:

  {
    <div className="font-mono text-sm leading-6 font-bold text-white">
      <div className="grid h-56 grid-cols-3 gap-4">
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            01
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            02
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            03
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            04
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            05
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-cyan-500 p-4">
            06
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-items-start] -->
<div class="grid grid-cols-3 place-items-start gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### End

Use `place-items-end` to place grid items on the end of their grid areas on both axes:

  {
    <div className="font-mono text-sm leading-6 font-bold text-white">
      <div className="grid h-56 grid-cols-3 gap-4">
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            01
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            02
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            03
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            04
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            05
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-violet-500 p-4">
            06
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-items-end] -->
<div class="grid h-56 grid-cols-3 place-items-end gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Center

Use `place-items-center` to place grid items on the center of their grid areas on both axes:

  {
    <div className="font-mono text-sm leading-6 font-bold text-white">
      <div className="grid h-56 grid-cols-3 gap-4">
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            01
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            02
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            03
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            04
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            05
          </div>
        </div>
        <div className="grid grid-cols-1">
          
          <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-pink-500 p-4">
            06
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-items-center] -->
<div class="grid h-56 grid-cols-3 place-items-center gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Stretch

Use `place-items-stretch` to stretch items along their grid areas on both axes:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid h-56 grid-cols-3 gap-4 font-mono text-sm leading-6 font-bold text-white">
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">01</div>
        </div>
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">02</div>
        </div>
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">03</div>
        </div>
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">04</div>
        </div>
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">05</div>
        </div>
        <div className="grid place-items-stretch">
          <div className="flex items-center justify-center rounded-lg bg-blue-500 p-4">06</div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:place-items-stretch] -->
<div class="grid h-56 grid-cols-3 place-items-stretch gap-4 ...">
  <div>01</div>
  <div>02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

## Responsive design


---

# place-self

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/place-self*

"Utilities for controlling how an individual item is justified and aligned at the same time.";

| Clase | Propiedades CSS |
| :--- | :--- |
| `place-self-auto` | `place-self: auto;` |
| `place-self-start` | `place-self: start;` |
| `place-self-end` | `place-self: end;` |
| `place-self-end-safe` | `place-self: safe end;` |
| `place-self-center` | `place-self: center;` |
| `place-self-center-safe` | `place-self: safe center;` |
| `place-self-stretch` | `place-self: stretch;` |

## Examples

### Auto

Use `place-self-auto` to align an item based on the value of the container's `place-items` property:

  {
    <div className="grid grid-cols-3 place-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-8 dark:bg-indigo-800 dark:text-indigo-400">
        01
      </div>
      <div className="flex items-center justify-center place-self-auto rounded-lg bg-indigo-500 p-8">02</div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-8 dark:bg-indigo-800 dark:text-indigo-400">
        03
      </div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-8 dark:bg-indigo-800 dark:text-indigo-400">
        04
      </div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-8 dark:bg-indigo-800 dark:text-indigo-400">
        05
      </div>
      <div className="flex items-center justify-center rounded-lg bg-indigo-300 p-8 dark:bg-indigo-800 dark:text-indigo-400">
        06
      </div>
    </div>
  }

```html
<!-- [!code classes:place-self-auto] -->
<div class="grid grid-cols-3 gap-4 ...">
  <div>01</div>
  <div class="place-self-auto ...">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Start

Use `place-self-start` to align an item to the start on both axes:

  {
    <div className="grid grid-cols-3 place-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-purple-300 p-8 dark:bg-purple-800 dark:text-purple-400">
        01
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-start rounded-lg bg-purple-500">
          02
        </div>
      </div>
      <div className="flex items-center justify-center rounded-lg bg-purple-300 p-8 dark:bg-purple-800 dark:text-purple-400">
        03
      </div>
      <div className="flex items-center justify-center rounded-lg bg-purple-300 p-8 dark:bg-purple-800 dark:text-purple-400">
        04
      </div>
      <div className="flex items-center justify-center rounded-lg bg-purple-300 p-8 dark:bg-purple-800 dark:text-purple-400">
        05
      </div>
      <div className="flex items-center justify-center rounded-lg bg-purple-300 p-8 dark:bg-purple-800 dark:text-purple-400">
        06
      </div>
    </div>
  }

```html
<!-- [!code classes:place-self-start] -->
<div class="grid grid-cols-3 gap-4 ...">
  <div>01</div>
  <div class="place-self-start ...">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Center

Use `place-self-center` to align an item at the center on both axes:

  {
    <div className="grid grid-cols-3 place-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-sky-300 p-8 dark:bg-sky-800 dark:text-sky-500">
        01
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-center rounded-lg bg-sky-500">
          02
        </div>
      </div>
      <div className="flex items-center justify-center rounded-lg bg-sky-300 p-8 dark:bg-sky-800 dark:text-sky-500">
        03
      </div>
      <div className="flex items-center justify-center rounded-lg bg-sky-300 p-8 dark:bg-sky-800 dark:text-sky-500">
        04
      </div>
      <div className="flex items-center justify-center rounded-lg bg-sky-300 p-8 dark:bg-sky-800 dark:text-sky-500">
        05
      </div>
      <div className="flex items-center justify-center rounded-lg bg-sky-300 p-8 dark:bg-sky-800 dark:text-sky-500">
        06
      </div>
    </div>
  }

```html
<!-- [!code classes:place-self-center] -->
<div class="grid grid-cols-3 gap-4 ...">
  <div>01</div>
  <div class="place-self-center ...">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### End

Use `place-self-end` to align an item to the end on both axes:

  {
    <div className="grid grid-cols-3 place-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-pink-300 p-8 dark:bg-pink-800 dark:text-pink-400">
        01
      </div>
      <div className="grid grid-cols-1">
        
        <div className="col-start-1 row-start-1 flex size-14 items-center justify-center place-self-end rounded-lg bg-pink-500">
          02
        </div>
      </div>
      <div className="flex items-center justify-center rounded-lg bg-pink-300 p-8 dark:bg-pink-800 dark:text-pink-400">
        03
      </div>
      <div className="flex items-center justify-center rounded-lg bg-pink-300 p-8 dark:bg-pink-800 dark:text-pink-400">
        04
      </div>
      <div className="flex items-center justify-center rounded-lg bg-pink-300 p-8 dark:bg-pink-800 dark:text-pink-400">
        05
      </div>
      <div className="flex items-center justify-center rounded-lg bg-pink-300 p-8 dark:bg-pink-800 dark:text-pink-400">
        06
      </div>
    </div>
  }

```html
<!-- [!code classes:place-self-end] -->
<div class="grid grid-cols-3 gap-4 ...">
  <div>01</div>
  <div class="place-self-end ...">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Stretch

Use `place-self-stretch` to stretch an item on both axes:

  {
    <div className="grid grid-cols-3 place-items-stretch gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-300 p-8 dark:bg-fuchsia-800 dark:text-fuchsia-400">
        01
      </div>
      <div className="flex items-center justify-center place-self-stretch rounded-lg bg-fuchsia-500 p-8">02</div>
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-300 p-8 dark:bg-fuchsia-800 dark:text-fuchsia-400">
        03
      </div>
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-300 p-8 dark:bg-fuchsia-800 dark:text-fuchsia-400">
        04
      </div>
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-300 p-8 dark:bg-fuchsia-800 dark:text-fuchsia-400">
        05
      </div>
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-300 p-8 dark:bg-fuchsia-800 dark:text-fuchsia-400">
        06
      </div>
    </div>
  }

```html
<!-- [!code classes:place-self-stretch] -->
<div class="grid grid-cols-3 gap-4 ...">
  <div>01</div>
  <div class="place-self-stretch ...">02</div>
  <div>03</div>
  <div>04</div>
  <div>05</div>
  <div>06</div>
</div>
```

### Responsive design


---

# pointer-events

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/pointer-events*

| Clase | Propiedades CSS |
| :--- | :--- |
| `pointer-events-auto` | `pointer-events: auto;` |
| `pointer-events-none` | `pointer-events: none;` |

## Examples

### Ignoring pointer events

Use the `pointer-events-none` utility to make an element ignore pointer events, like `:hover` and `click` events:

  {
    <div className="grid grid-cols-1 gap-10 px-0 sm:grid-cols-2 sm:px-10">
      <div className="flex flex-col">
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">pointer-events-auto</p>
        <div className="relative w-full rounded-lg shadow-sm">
          <div className="pointer-events-auto absolute inset-y-0 left-0 flex items-center pl-3">
            <svg className="absolute h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor">
              <path
                fillRule="evenodd"
                d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
                clipRule="evenodd"
              />
            </svg>
          </div>
          <input
            type="text"
            placeholder="Search"
            className="dark:highlight-white/5 block w-full rounded-lg px-3 py-2 pl-10 font-sans text-sm text-gray-500 ring-1 ring-gray-900/10 dark:bg-gray-800 dark:text-gray-400 dark:ring-0"
          />
        </div>
      </div>
      <div className="flex flex-col">
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">pointer-events-none</p>
        <div className="relative w-full rounded-lg shadow-sm">
          <div className="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3">
            <svg className="absolute h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor">
              <path
                fillRule="evenodd"
                d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
                clipRule="evenodd"
              />
            </svg>
          </div>
          <input
            type="text"
            placeholder="Search"
            className="dark:highlight-white/5 block w-full rounded-lg px-3 py-2 pl-10 font-sans text-sm text-gray-500 ring-1 ring-gray-900/10 dark:bg-gray-800 dark:text-gray-400 dark:ring-0"
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:pointer-events-none,pointer-events-auto] -->
<div class="relative ...">
  <div class="pointer-events-auto absolute ...">
    <svg class="absolute h-5 w-5 text-gray-400">
      <!-- ... -->
    </svg>
  </div>
  <input type="text" placeholder="Search" class="..." />
</div>

<div class="relative ...">
  <div class="pointer-events-none absolute ...">
    <svg class="absolute h-5 w-5 text-gray-400">
      <!-- ... -->
    </svg>
  </div>
  <input type="text" placeholder="Search" class="..." />
</div>
```

The pointer events will still trigger on child elements and pass-through to elements that are "beneath" the target.

### Restoring pointer events

Use the `pointer-events-auto` utility to revert to the default browser behavior for pointer events:

```html
<div class="pointer-events-none md:pointer-events-auto ...">
  <!-- ... -->
</div>
```


---

# position

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/position*

| Clase | Propiedades CSS |
| :--- | :--- |
| `static` | `position: static;` |
| `fixed` | `position: fixed;` |
| `absolute` | `position: absolute;` |
| `relative` | `position: relative;` |
| `sticky` | `position: sticky;` |

## Examples

### Statically positioning elements

Use the `static` utility to position an element according to the normal flow of the document:

  {
    <div className="relative text-sm leading-6 font-medium">
      <div className="rounded-lg border border-purple-700/10 bg-purple-400/20 p-4 dark:border-0 dark:bg-sky-900/70">
        <div className="static h-32 border border-purple-700/10 bg-purple-400/20 p-4 dark:border-0 dark:bg-sky-400/20">
          <p className="text-purple-700 dark:text-sky-200">Static parent</p>
          <div className="absolute bottom-0 left-0 rounded-lg bg-purple-500 p-4 text-white shadow-lg dark:bg-sky-500">
            <p>Absolute child</p>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:static] -->
<div class="static ...">
  <p>Static parent</p>
  <div class="absolute bottom-0 left-0 ...">
    <p>Absolute child</p>
  </div>
</div>
```

With statically positioned elements, any [offsets](/docs/top-right-bottom-left) will be ignored and the element will not act as a position reference for absolutely positioned children.

### Relatively positioning elements

Use the `relative` utility to position an element according to the normal flow of the document:

  {
    <div className="relative text-sm leading-6 font-medium">
      <div className="rounded-lg border border-sky-700/10 bg-sky-400/20 p-4 dark:border-0 dark:bg-blue-900/70">
        <div className="relative h-32 border border-sky-700/10 bg-sky-400/20 p-4 dark:border-0 dark:bg-blue-400/20">
          <p className="text-sky-700 dark:text-white">Relative parent</p>
          <div className="absolute bottom-0 left-0 rounded-lg bg-sky-500 p-4 text-white shadow-lg dark:bg-blue-500">
            <p>Absolute child</p>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:relative] -->
<div class="relative ...">
  <p>Relative parent</p>
  <div class="absolute bottom-0 left-0 ...">
    <p>Absolute child</p>
  </div>
</div>
```

With relatively position elements, any [offsets](/docs/top-right-bottom-left) are calculated relative to the element's normal position and the element will act as a position reference for absolutely positioned children.

### Absolutely positioning elements

Use the `absolute` utility to position an element _outside_ of the normal flow of the document, causing neighboring elements to act as if the element doesn't exist:

  {
    <div className="space-y-8">
      <div>
        <p className="mb-4 text-sm font-medium text-gray-500">With static positioning</p>
        <div className="relative text-sm leading-6 font-medium">
          <div className="relative rounded-lg border border-indigo-700/10 bg-indigo-400/20 p-4 dark:border-0 dark:bg-indigo-900/80">
            <p className="-mt-2 mb-2 text-indigo-700 dark:text-indigo-200">Relative parent</p>
            <div className="static flex h-32 flex-col justify-between border border-indigo-700/10 bg-indigo-400/20 p-4 dark:border-0">
              <p className="text-indigo-700 dark:text-indigo-200">Static parent</p>
              <div className="flex gap-4">
                <div className="bottom-0 left-0 rounded-lg bg-indigo-500 p-4 text-white shadow-lg">
                  <p>Static child?</p>
                </div>
                <div className="rounded-lg bg-indigo-100 p-4 text-indigo-600 shadow-lg">
                  <p>Static sibling</p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div>
        <p className="mb-4 text-sm font-medium text-gray-500">With absolute positioning</p>
        <div className="relative text-sm leading-6 font-medium">
          <div className="relative rounded-lg border border-indigo-700/10 bg-indigo-400/20 p-4 dark:border-0 dark:bg-indigo-900/80">
            <p className="-mt-2 mb-2 text-indigo-700 dark:text-indigo-200">Relative parent</p>
            <div className="static flex h-32 flex-col justify-between border border-indigo-700/10 bg-indigo-400/20 p-4 dark:border-0">
              <p className="text-indigo-700 dark:text-indigo-200">Static parent</p>
              <div className="flex gap-4">
                <div className="absolute top-0 right-0 rounded-lg bg-indigo-500 p-4 text-white shadow-lg">
                  <p>Absolute child</p>
                </div>
                <div className="rounded-lg bg-indigo-100 p-4 text-indigo-600 shadow-lg">
                  <p>Static sibling</p>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:absolute] -->
<div class="static ...">
  <!-- Static parent -->
  <div class="static ..."><p>Static child</p></div>
  <div class="inline-block ..."><p>Static sibling</p></div>
  <!-- Static parent -->
  <div class="absolute ..."><p>Absolute child</p></div>
  <div class="inline-block ..."><p>Static sibling</p></div>
</div>
```

With absolutely positioned elements, any [offsets](/docs/top-right-bottom-left) are calculated relative to the nearest parent that has a position other than `static`, and the element will act as a position reference for other absolutely positioned children.

### Fixed positioning elements

Use the `fixed` utility to position an element relative to the browser window:

  {
    <div className="px-3">
      <div className="relative mx-auto h-80 max-w-md overflow-hidden bg-white shadow-lg ring-1 ring-gray-900/5 dark:bg-gray-800">
        <div className="absolute top-0 right-0 left-0 flex items-center bg-gray-50/90 px-4 py-3 text-sm font-semibold text-gray-900 ring-1 ring-gray-900/10 backdrop-blur-sm dark:bg-gray-700/90 dark:text-gray-200 dark:ring-black/10">
          Contacts
        </div>
        <div className="flex h-80 flex-col divide-y divide-gray-200 overflow-auto dark:divide-gray-200/5">
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
          </div>
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Debra Houston</strong>
          </div>
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Jane White</strong>
          </div>
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Ray Flint</strong>
          </div>
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1580489944761-15a19d654956?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Mindy Albrect</strong>
          </div>
          <div className="flex items-center gap-4 p-4">
            <img
              className="size-12 rounded-full"
              src="https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
            />
            <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">David Arnold</strong>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:fixed] -->
<div class="relative">
  <div class="fixed top-0 right-0 left-0">Contacts</div>
  <div>
    <div>
      <img src="/img/andrew.jpg" />
      <strong>Andrew Alfred</strong>
    </div>
    <div>
      <img src="/img/debra.jpg" />
      <strong>Debra Houston</strong>
    </div>
    <!-- ... -->
  </div>
</div>
```

With fixed positioned elements, any [offsets](/docs/top-right-bottom-left) are calculated relative to the viewport and the element will act as a position reference for absolutely positioned children:

### Sticky positioning elements

Use the `sticky` utility to position an element as `relative` until it crosses a specified threshold, then treat it as `fixed` until its parent is off screen:

  {
    <div className="px-3">
      <div className="relative mx-auto -my-px h-80 max-w-md overflow-auto bg-white shadow-lg ring-1 ring-gray-900/5 dark:bg-gray-800">
        <div className="relative">
          <div className="sticky top-0 flex items-center bg-gray-50/90 px-4 py-3 text-sm font-semibold text-gray-900 ring-1 ring-gray-900/10 backdrop-blur-sm dark:bg-gray-700/90 dark:text-gray-200 dark:ring-black/10">
            A
          </div>
          <div className="divide-y divide-gray-200 dark:divide-gray-200/5">
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andrew Alfred</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Aisha Houston</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Anna White</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Andy Flint</strong>
            </div>
          </div>
        </div>
        <div className="relative">
          <div className="sticky top-0 flex items-center bg-gray-50/90 px-4 py-3 text-sm font-semibold text-gray-900 ring-1 ring-gray-900/10 backdrop-blur-sm dark:bg-gray-700/90 dark:text-gray-200 dark:ring-black/10">
            B
          </div>
          <div className="divide-y divide-gray-200 dark:divide-gray-200/5">
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Bob Alfred</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Bianca Houston</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Brianna White</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Bert Flint</strong>
            </div>
          </div>
        </div>
        <div className="relative">
          <div className="sticky top-0 flex items-center bg-gray-50/90 px-4 py-3 text-sm font-semibold text-gray-900 ring-1 ring-gray-900/10 backdrop-blur-sm dark:bg-gray-700/90 dark:text-gray-200 dark:ring-black/10">
            C
          </div>
          <div className="divide-y divide-gray-200 dark:divide-gray-200/5">
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1501196354995-cbb51c65aaea?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Colton Alfred</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531123897727-8f129e1688ce?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Cynthia Houston</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Cheyenne White</strong>
            </div>
            <div className="flex items-center gap-4 p-4">
              <img
                className="size-12 rounded-full"
                src="https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=4&w=256&h=256&q=80"
              />
              <strong className="text-sm font-medium text-gray-900 dark:text-gray-200">Charlie Flint</strong>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:sticky,top-0] -->
<div>
  <div>
    <div class="sticky top-0 ...">A</div>
    <div>
      <div>
        <img src="/img/andrew.jpg" />
        <strong>Andrew Alfred</strong>
      </div>
      <div>
        <img src="/img/aisha.jpg" />
        <strong>Aisha Houston</strong>
      </div>
      <!-- ... -->
    </div>
  </div>
  <div>
    <div class="sticky top-0">B</div>
    <div>
      <div>
        <img src="/img/bob.jpg" />
        <strong>Bob Alfred</strong>
      </div>
      <!-- ... -->
    </div>
  </div>
  <!-- ... -->
</div>
```

With sticky positioned elements, any [offsets](/docs/top-right-bottom-left) are calculated relative to the element's normal position and the element will act as a position reference for absolutely positioned children.

### Responsive design


---

# Preflight

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/preflight*

## Overview

Built on top of [modern-normalize](https://github.com/sindresorhus/modern-normalize), Preflight is a set of base styles for Tailwind projects that are designed to smooth over cross-browser inconsistencies and make it easier for you to work within the constraints of your design system.

When you import `tailwindcss` into your project, Preflight is automatically injected into the `base` layer:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme);
/* [!code highlight:2] */
@import "tailwindcss/preflight.css" layer(base);
@import "tailwindcss/utilities.css" layer(utilities);
```

While most of the styles in Preflight are meant to go unnoticed—they simply make things behave more like you'd expect them to—some are more opinionated and can be surprising when you first encounter them.

For a complete reference of all the styles applied by Preflight, [see the stylesheet](https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/preflight.css).

### Margins are removed

Preflight removes all of the default margins from all elements including headings, blockquotes, paragraphs, etc:

```css
/* [!code filename:CSS] */
*,
::after,
::before,
::backdrop,
::file-selector-button {
  margin: 0;
  padding: 0;
}
```

This makes it harder to accidentally rely on margin values applied by the user-agent stylesheet that are not part of your spacing scale.

### Border styles are reset

In order to make it easy to add a border by simply adding the `border` class, Tailwind overrides the default border styles for all elements with the following rules:

```css
/* [!code filename:CSS] */
*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box;
  border: 0 solid;
}
```

Since the `border` class only sets the `border-width` property, this reset ensures that adding that class always adds a solid `1px` border that uses `currentColor`.

This can cause some unexpected results when integrating certain third-party libraries, like [Google maps](https://github.com/tailwindlabs/tailwindcss/issues/484) for example.

When you run into situations like this, you can work around them by overriding the Preflight styles with your own custom CSS:

```css
/* [!code filename:CSS] */
@layer base {
  .google-map * {
    border-style: none;
  }
}
```

### Headings are unstyled

All heading elements are completely unstyled by default, and have the same font size and weight as normal text:

```css
/* [!code filename:CSS] */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
```

The reason for this is two-fold:

- **It helps you avoid accidentally deviating from your type scale**. By default, browsers assign sizes to headings that don't exist in Tailwind's default type scale, and aren't guaranteed to exist in your own type scale.
- **In UI development, headings should often be visually de-emphasized**. Making headings unstyled by default means any styling you apply to headings happens consciously and deliberately.

You can always add default header styles to your project by [adding your own base styles](/docs/adding-custom-styles#adding-base-styles).

### Lists are unstyled

Ordered and unordered lists are unstyled by default, with no bullets or numbers:

```css
/* [!code filename:CSS] */
ol,
ul,
menu {
  list-style: none;
}
```

If you'd like to style a list, you can do so using the [list-style-type](/docs/list-style-type) and [list-style-position](/docs/list-style-position) utilities:

```html
<!-- [!code filename:HTML] -->
<ul class="list-inside list-disc">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>
```

You can always add default list styles to your project by [adding your own base styles](/docs/adding-custom-styles#adding-base-styles).

#### Accessibility considerations

Unstyled lists are [not announced as lists by VoiceOver](https://unfetteredthoughts.net/2017/09/26/voiceover-and-list-style-type-none/). If your content is truly a list but you would like to keep it unstyled, [add a "list" role](https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html) to the element:

```html
<!-- [!code filename:HTML] -->
<ul role="list">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>
```

### Images are block-level

Images and other replaced elements (like `svg`, `video`, `canvas`, and others) are `display: block` by default:

```css
/* [!code filename:CSS] */
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}
```

This helps to avoid unexpected alignment issues that you often run into using the browser default of `display: inline`.

If you ever need to make one of these elements `inline` instead of `block`, simply use the `inline` utility:

```html
<!-- [!code filename:HTML] -->
<img class="inline" src="..." alt="..." />
```

### Images are constrained

Images and videos are constrained to the parent width in a way that preserves their intrinsic aspect ratio:

```css
/* [!code filename:CSS] */
img,
video {
  max-width: 100%;
  height: auto;
}
```

This prevents them from overflowing their containers and makes them responsive by default. If you ever need to override this behavior, use the `max-w-none` utility:

```html
<!-- [!code filename:HTML] -->
<img class="max-w-none" src="..." alt="..." />
```

#### Elements with a `hidden` attribute stay hidden

```css
/* [!code filename:CSS] */
[hidden]:where(:not([hidden="until-found"])) {
  display: none !important;
}
```

This enforces that elements with a `hidden` attribute stay invisible unless using `hidden="until-found"`. Remove the `hidden` attribute if you want an element to be visible to the user.

## Extending Preflight

If you'd like to add your own base styles on top of Preflight, add them to the `base` CSS layer in your CSS using `@layer base`:

```css
/* [!code filename:CSS] */
@layer base {
  h1 {
    font-size: var(--text-2xl);
  }
  h2 {
    font-size: var(--text-xl);
  }
  h3 {
    font-size: var(--text-lg);
  }
  a {
    color: var(--color-blue-600);
    text-decoration-line: underline;
  }
}
```

Learn more in the [adding base styles documentation](/docs/adding-custom-styles#adding-base-styles).

## Disabling Preflight

If you'd like to completely disable Preflight—perhaps because you're integrating Tailwind into an existing project or you'd prefer to define your own base styles—you can do so by importing only the parts of Tailwind that you need.

By default, this is what `@import "tailwindcss";` injects:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/preflight.css" layer(base);
@import "tailwindcss/utilities.css" layer(utilities);
```

To disable Preflight, simply omit its import while keeping everything else:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/preflight.css" layer(base); /* [!code --] */
@import "tailwindcss/utilities.css" layer(utilities);
```

When importing Tailwind CSS' files individually, features like `source()`, `theme()`, and `prefix()` should go on their respective imports.

For example, source detection affects generated utilities, so `source(…)` should be added to the `utilities.css` import:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/utilities.css" layer(utilities); /* [!code --] */
@import "tailwindcss/utilities.css" layer(utilities) source(none); /* [!code ++] */
```

The same goes for `important`, which also affects utilities:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/utilities.css" layer(utilities); /* [!code --] */
@import "tailwindcss/utilities.css" layer(utilities) important; /* [!code ++] */
```

Similarly, `theme(static)` and `theme(inline)` affect the generated theme variables and should be placed on the `theme.css` import:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme); /* [!code --] */
@import "tailwindcss/theme.css" layer(theme) theme(static); /* [!code ++] */
@import "tailwindcss/utilities.css" layer(utilities);
```

Finally, using a prefix with `prefix(tw)` affects the utilities and variables, so it should go on both imports:

```css
/* [!code filename:CSS] */
@layer theme, base, components, utilities;

@import "tailwindcss/theme.css" layer(theme); /* [!code --] */
@import "tailwindcss/utilities.css" layer(utilities); /* [!code --] */
@import "tailwindcss/theme.css" layer(theme) prefix(tw); /* [!code ++] */
@import "tailwindcss/utilities.css" layer(utilities) prefix(tw); /* [!code ++] */
```


---

# resize

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/resize*

| Clase | Propiedades CSS |
| :--- | :--- |
| `resize-none` | `resize: none;` |
| `resize` | `resize: both;` |
| `resize-y` | `resize: vertical;` |
| `resize-x` | `resize: horizontal;` |

## Examples

### Resizing in all directions

Use `resize` to make an element horizontally and vertically resizable:

  {
    <textarea
      rows="2"
      className="mx-auto block w-80 resize rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    ></textarea>
  }

```html
<!-- [!code classes:resize] -->
<textarea class="resize rounded-md ..."></textarea>
```

### Resizing vertically

Use `resize-y` to make an element vertically resizable:

  {
    <textarea
      rows="2"
      className="mx-auto block w-80 resize-y rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    ></textarea>
  }

```html
<!-- [!code classes:resize-y] -->
<textarea class="resize-y rounded-md ..."></textarea>
```

### Resizing horizontally

Use `resize-x` to make an element horizontally resizable:

  {
    <textarea
      rows="2"
      className="mx-auto block w-80 resize-x rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    ></textarea>
  }

```html
<!-- [!code classes:resize-x] -->
<textarea class="resize-x rounded-md ..."></textarea>
```

### Prevent resizing

Use `resize-none` to prevent an element from being resizable:

  {
    <textarea
      rows="2"
      className="mx-auto block w-80 resize-none rounded-md p-2 text-sm text-gray-950 outline-1 outline-gray-900/10 focus:outline-2 focus:outline-gray-900 dark:bg-gray-950/25 dark:text-white dark:outline-1 dark:outline-white/5 dark:focus:outline-white/20"
    ></textarea>
  }

```html
<!-- [!code classes:resize-none] -->
<textarea class="resize-none rounded-md"></textarea>
```

### Responsive design


---

# Responsive design

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/responsive-design*

## Overview

Every utility class in Tailwind can be applied conditionally at different breakpoints, which makes it a piece of cake to build complex responsive interfaces without ever leaving your HTML.

First, make sure you've added the [viewport meta tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag) to the `<head>` of your document:

```html
<!-- [!code filename:index.html] -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
```

Then to add a utility but only have it take effect at a certain breakpoint, all you need to do is prefix the utility with the breakpoint name, followed by the `:` character:

```html
<!-- [!code filename:HTML]  -->
<!-- [!code word:md\:w-32] -->
<!-- [!code word:lg\:w-48] -->
<!-- Width of 16 by default, 32 on medium screens, and 48 on large screens -->
<img class="w-16 md:w-32 lg:w-48" src="..." />
```

There are five breakpoints by default, inspired by common device resolutions:

{

<table>
  <thead>
    <tr>
      <th>Breakpoint prefix</th>
      <th>Minimum width</th>
      <th>CSS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code>sm</code>
      </td>
      <td>
        40rem <em>(640px)</em>
      </td>
      <td>
        <code>@media (width &gt;= 40rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>md</code>
      </td>
      <td>
        48rem <em>(768px)</em>
      </td>
      <td>
        <code>@media (width &gt;= 48rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>lg</code>
      </td>
      <td>
        64rem <em>(1024px)</em>
      </td>
      <td>
        <code>@media (width &gt;= 64rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>xl</code>
      </td>
      <td>
        80rem <em>(1280px)</em>
      </td>
      <td>
        <code>@media (width &gt;= 80rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>2xl</code>
      </td>
      <td>
        96rem <em>(1536px)</em>
      </td>
      <td>
        <code>@media (width &gt;= 96rem) &#123; ... &#125;</code>
      </td>
    </tr>
  </tbody>
</table>
}

This works for **every utility class in the framework**, which means you can change literally anything at a given breakpoint — even things like letter spacing or cursor styles.

Here's a simple example of a marketing page component that uses a stacked layout on small screens, and a side-by-side layout on larger screens:

  {
    
      <div className="flex h-screen w-screen items-center justify-center p-8">
        <div className="mx-auto max-w-md overflow-hidden rounded-lg bg-white shadow-xl ring-1 ring-gray-900/5 sm:max-w-2xl">
          <div className="flex flex-col sm:flex-row">
            <div className="sm:shrink-0">
              <img
                className="h-[200px] w-full object-cover object-bottom sm:w-[193px] sm:object-center"
                src="https://images.unsplash.com/photo-1637734433731-621aca1c8cb6?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=404&q=80"
                width="202"
                height="192"
                alt="Beautiful abstract building in the sun"
              />
            </div>
            <div className="space-y-2 p-6 2xl:p-8">
              <div className="text-sm leading-6 font-medium text-indigo-600">Company retreats</div>
              <a href="#" className="block text-base leading-6 font-semibold text-gray-900 hover:underline">
                Incredible accommodation for your team
              </a>
              <p
                className="text-sm leading-6 text-gray-600"
                children={`Looking to take your team away on a retreat to enjoy awesome food
              and take in some sunshine? We have a list of places to do just
              that.`}
              ></p>
            </div>
          </div>
        </div>
      </div>
    
  }

```html
<!-- [!code word:md\:max-w-2xl] -->
<div class="mx-auto max-w-md overflow-hidden rounded-xl bg-white shadow-md md:max-w-2xl">
  <!-- [!code word:md\:flex] -->
  <div class="md:flex">
    <!-- [!code word:md\:shrink-0] -->
    <div class="md:shrink-0">
      <!-- [!code word:md\:h-full] -->
      <!-- [!code word:md\:w-48] -->
      <img
        class="h-48 w-full object-cover md:h-full md:w-48"
        src="/img/building.jpg"
        alt="Modern building architecture"
      />
    </div>
    <div class="p-8">
      <div class="text-sm font-semibold tracking-wide text-indigo-500 uppercase">Company retreats</div>
      <a href="#" class="mt-1 block text-lg leading-tight font-medium text-black hover:underline">
        Incredible accommodation for your team
      </a>
      <p class="mt-2 text-gray-500">
        Looking to take your team away on a retreat to enjoy awesome food and take in some sunshine? We have a list of
        places to do just that.
      </p>
    </div>
  </div>
</div>
```

Here's how the example above works:

- By default, the outer `div` is `display: block`, but by adding the `md:flex` utility, it becomes `display: flex` on medium screens and larger.
- When the parent is a flex container, we want to make sure the image never shrinks, so we've added `md:shrink-0` to prevent shrinking on medium screens and larger. Technically we could have just used `shrink-0` since it would do nothing on smaller screens, but since it only matters on `md` screens, it's a good idea to make that clear in the class name.
- On small screens the image is automatically full width by default. On medium screens and up, we've constrained the width to a fixed size and ensured the image is full height using `md:h-full md:w-48`.

We've only used one breakpoint in this example, but you could easily customize this component at other sizes using the `sm`, `lg`, `xl`, or `2xl` responsive prefixes as well.

## Working mobile-first

Tailwind uses a mobile-first breakpoint system, similar to what you might be used to in other frameworks like Bootstrap.

What this means is that unprefixed utilities (like `uppercase`) take effect on all screen sizes, while prefixed utilities (like `md:uppercase`) only take effect at the specified breakpoint _and above_.

### Targeting mobile screens

Where this approach surprises people most often is that to style something for mobile, you need to use the unprefixed version of a utility, not the `sm:` prefixed version. Don't think of `sm:` as meaning "on small screens", think of it as "at the small _breakpoint_".

  {
    <>
      Don't use <code>sm:</code> to target mobile devices
    </>
  }

```html
<!-- [!code filename:HTML]  -->
<!-- This will only center text on screens 640px and wider, not on small screens -->
<div class="sm:text-center"></div>
```

{<>Use unprefixed utilities to target mobile, and override them at larger breakpoints</>}

```html
<!-- [!code filename:HTML]  -->
<!-- This will center text on mobile, and left align it on screens 640px and wider -->
<div class="text-center sm:text-left"></div>
```

For this reason, it's often a good idea to implement the mobile layout for a design first, then layer on any changes that make sense for `sm` screens, followed by `md` screens, etc.

### Targeting a breakpoint range

By default, styles applied by rules like `md:flex` will apply at that breakpoint and stay applied at larger breakpoints.

If you'd like to apply a utility _only_ when a specific breakpoint range is active, stack a responsive variant like `md` with a `max-*` variant to limit that style to a specific range:

```html
<!-- [!code filename:HTML]  -->
<div class="md:max-xl:flex">
  <!-- ... -->
</div>
```

Tailwind generates a corresponding `max-*` variant for each breakpoint, so out of the box the following variants are available:

{

<table>
  <thead>
    <tr>
      <th>Variant</th>
      <th>Media query</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code>max-sm</code>
      </td>
      <td>
        <code>@media (width &lt; 40rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>max-md</code>
      </td>
      <td>
        <code>@media (width &lt; 48rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>max-lg</code>
      </td>
      <td>
        <code>@media (width &lt; 64rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>max-xl</code>
      </td>
      <td>
        <code>@media (width &lt; 80rem) &#123; ... &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>max-2xl</code>
      </td>
      <td>
        <code>@media (width &lt; 96rem) &#123; ... &#125;</code>
      </td>
    </tr>
  </tbody>
</table>
}

### Targeting a single breakpoint

To target a single breakpoint, target the range for that breakpoint by stacking a responsive variant like `md` with the `max-*` variant for the next breakpoint:

```html
<!-- [!code filename:HTML]  -->
<div class="md:max-lg:flex">
  <!-- ... -->
</div>
```

Read about [targeting breakpoint ranges](#targeting-a-breakpoint-range) to learn more.

## Using custom breakpoints

### Customizing your theme

Use the `--breakpoint-*` theme variables to customize your breakpoints:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:4] */
  --breakpoint-xs: 30rem;
  --breakpoint-2xl: 100rem;
  --breakpoint-3xl: 120rem;
}
```

This updates the `2xl` breakpoint to use `100rem` instead of the default `96rem`, and creates new `xs` and `3xl` breakpoints that can be used in your markup:

```html
<!-- [!code filename:HTML]  -->
<!-- [!code word:xs\:grid-cols-2] -->
<!-- [!code word:3xl\:grid-cols-6] -->
<!-- prettier-ignore -->
<div class="grid xs:grid-cols-2 3xl:grid-cols-6">
  <!-- ... -->
</div>
```

Note that it's important to always use the same unit for defining your breakpoints or the generated utilities may be sorted in an unexpected order, causing breakpoint classes to override each other in unexpected ways.

Tailwind uses `rem` for the default breakpoints, so if you are adding additional breakpoints to the defaults, make sure you use `rem` as well.

Learn more about customizing your theme in the [theme documentation](/docs/theme).

### Removing default breakpoints

To remove a default breakpoint, reset its value to the `initial` keyword:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --breakpoint-2xl: initial;
}
```

You can also reset all of the default breakpoints using `--breakpoint-*: initial`, then define all of your breakpoints from scratch:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:5] */
  --breakpoint-*: initial;
  --breakpoint-tablet: 40rem;
  --breakpoint-laptop: 64rem;
  --breakpoint-desktop: 80rem;
}
```

Learn more removing default theme values in the [theme documentation](/docs/theme).

### Using arbitrary values

If you need to use a one-off breakpoint that doesn’t make sense to include in your theme, use the `min` or `max` variants to generate a custom breakpoint on the fly using any arbitrary value.

```html
<!-- [!code word:min-\[320px\]\:text-center] -->
<!-- [!code word:max-\[600px\]\:bg-sky-300] -->
<div class="max-[600px]:bg-sky-300 min-[320px]:text-center">
  <!-- ... -->
</div>
```

Learn more about arbitrary value support in the [arbitrary values](/docs/adding-custom-styles#using-arbitrary-values) documentation.

## Container queries

### What are container queries?

[Container queries](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries) are a modern CSS feature that let you style something based on the size of a parent element instead of the size of the entire viewport. They let you build components that are a lot more portable and reusable because they can change based on the actual space available for that component.

### Basic example

Use the `@container` class to mark an element as an inline-size container, then use variants like `@sm` and `@md` to style child elements based on the size of the container:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@container] -->
<!-- [!code word:@md\:flex-row] -->
<div class="@container">
  <div class="flex flex-col @md:flex-row">
    <!-- ... -->
  </div>
</div>
```

Just like breakpoint variants, container queries are mobile-first in Tailwind CSS and apply at the target container size and up.

### Max-width container queries

Use variants like `@max-sm` and `@max-md` to apply a style below a specific container size:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@max-md\:flex-col] -->
<div class="@container">
  <div class="flex flex-row @max-md:flex-col">
    <!-- ... -->
  </div>
</div>
```

### Container query ranges

Stack a regular container query variant with a max-width container query variant to target a specific range:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@sm\:@max-md\:flex-col] -->
<div class="@container">
  <div class="flex flex-row @sm:@max-md:flex-col">
    <!-- ... -->
  </div>
</div>
```

### Named containers

For complex designs that use multiple nested containers, you can name containers using `@container/{name}` and target specific containers with variants like `@sm/{name}` and `@md/{name}`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@container/main] -->
<!-- [!code word:@sm/main\:flex-col] -->
<div class="@container/main">
  <!-- ... -->
  <div class="flex flex-row @sm/main:flex-col">
    <!-- ... -->
  </div>
</div>
```

This makes it possible to style something based on the size of a distant container, rather than just the nearest container.

### Using size containers

Use `@container-size` to mark an element as a size container instead of an inline-size container when you need to use container query length units that depend on the block size, like `cqb`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@container-size] -->
<!-- [!code word:h-\[50cqb\]] -->
<div class="@container-size">
  <div class="h-[50cqb]">
    <!-- ... -->
  </div>
</div>
```

You can also name size containers using `@container-size/{name}`.

### Using custom container sizes

Use the `--container-*` theme variables to customize your container sizes:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --container-8xl: 96rem;
}
```

This adds a new `8xl` container query variant that can be used in your markup:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@8xl\:flex-row] -->
<div class="@container">
  <!-- prettier-ignore -->
  <div class="flex flex-col @8xl:flex-row">
    <!-- ... -->
  </div>
</div>
```

Learn more about customizing your theme in the [theme documentation](/docs/theme).

<h3 id="using-arbitrary-container-query-values">
  <a href="#using-arbitrary-container-query-values">Using arbitrary values</a>
</h3>

Use variants like `@min-[475px]` and `@max-[960px]` for one-off container query sizes you don't want to add to your theme:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:@min-\[475px\]\:flex-row] -->
<div class="@container">
  <div class="flex flex-col @min-[475px]:flex-row">
    <!-- ... -->
  </div>
</div>
```

### Using container query units

Use [container query length units](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries#container_query_length_units) like `cqw` and `cqi` as arbitrary values in other utility classes to reference the container size:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:w-\[50cqw\]] -->
<div class="@container">
  <div class="w-[50cqw]">
    <!-- ... -->
  </div>
</div>
```

For units that need more than the inline size, like `cqb` and `cqh`, use `@container-size` to make the full size of the container available.

### Container size reference

By default, Tailwind includes container sizes ranging from 16rem _(256px)_ to 80rem _(1280px)_:

{

<table>
  <thead>
    <tr>
      <th>Variant</th>
      <th>Minimum width</th>
      <th>CSS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code>@3xs</code>
      </td>
      <td>
        16rem <em>(256px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 16rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@2xs</code>
      </td>
      <td>
        18rem <em>(288px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 18rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@xs</code>
      </td>
      <td>
        20rem <em>(320px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 20rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@sm</code>
      </td>
      <td>
        24rem <em>(384px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 24rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@md</code>
      </td>
      <td>
        28rem <em>(448px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 28rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@lg</code>
      </td>
      <td>
        32rem <em>(512px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 32rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@xl</code>
      </td>
      <td>
        36rem <em>(576px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 36rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@2xl</code>
      </td>
      <td>
        42rem <em>(672px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 42rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@3xl</code>
      </td>
      <td>
        48rem <em>(768px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 48rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@4xl</code>
      </td>
      <td>
        56rem <em>(896px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 56rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@5xl</code>
      </td>
      <td>
        64rem <em>(1024px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 64rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@6xl</code>
      </td>
      <td>
        72rem <em>(1152px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 72rem) &#123; … &#125;</code>
      </td>
    </tr>
    <tr>
      <td>
        <code>@7xl</code>
      </td>
      <td>
        80rem <em>(1280px)</em>
      </td>
      <td>
        <code>@container (width &gt;= 80rem) &#123; … &#125;</code>
      </td>
    </tr>
  </tbody>
</table>
}


---

# rotate

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/rotate*

## Examples

### Basic example

Use `rotate-<number>` utilities like `rotate-45` and `rotate-90` to rotate an element by degrees:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-45</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-45">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-90</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-90">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-210</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-210">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rotate-45,rotate-90,rotate-210] -->
<img class="rotate-45 ..." src="/img/mountains.jpg" />
<img class="rotate-90 ..." src="/img/mountains.jpg" />
<img class="rotate-210 ..." src="/img/mountains.jpg" />
```

### Using negative values

Use `-rotate-<number>` utilities like `-rotate-45` and `-rotate-90` to rotate an element counterclockwise by degrees:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-rotate-45</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -rotate-45">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-rotate-90</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -rotate-90">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-rotate-210</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -rotate-210">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-rotate-45,-rotate-90,-rotate-210] -->
<img class="-rotate-45 ..." src="/img/mountains.jpg" />
<img class="-rotate-90 ..." src="/img/mountains.jpg" />
<img class="-rotate-210 ..." src="/img/mountains.jpg" />
```

### Rotating in 3D space

Use `rotate-x-<number>`, `rotate-y-<number>`, and `rotate-z-<number>` utilities like `rotate-x-50`, `-rotate-y-30`, and `rotate-z-45` together to rotate an element in 3D space:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-x-50</p>
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-z-45</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-x-50 rotate-z-45">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-x-15</p>
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -rotate-y-30
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-x-15 -rotate-y-30">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-y-25</p>
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">rotate-z-30</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 rotate-y-25 rotate-z-30">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:rotate-y-25,rotate-z-30,rotate-x-15,-rotate-y-30,rotate-x-50 rotate-z-45] -->
<img class="rotate-x-50 rotate-z-45 ..." src="/img/mountains.jpg" />
<img class="rotate-x-15 -rotate-y-30 ..." src="/img/mountains.jpg" />
<img class="rotate-y-25 rotate-z-30 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# scale

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scale*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scale-3d` | `scale: var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z);` |

## Examples

### Basic example

Use `scale-<number>` utilities like `scale-75` and `scale-150` to scale an element by a percentage of its original size:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-75</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-75">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-100</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-100">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-125</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-125">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:scale-75,scale-100,scale-125] -->
<img class="scale-75 ..." src="/img/mountains.jpg" />
<img class="scale-100 ..." src="/img/mountains.jpg" />
<img class="scale-125 ..." src="/img/mountains.jpg" />
```

### Scaling on the x-axis

Use the `scale-x-<number>` utilities like `scale-x-75` and `-scale-x-150` to scale an element on the x-axis by a percentage of its original width:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-x-75</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-x-75">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-x-100</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-x-100">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-x-125</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-x-125">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:scale-x-75,scale-x-100,scale-x-125] -->
<img class="scale-x-75 ..." src="/img/mountains.jpg" />
<img class="scale-x-100 ..." src="/img/mountains.jpg" />
<img class="scale-x-125 ..." src="/img/mountains.jpg" />
```

### Scaling on the y-axis

Use the `scale-y-<number>` utilities like `scale-y-75` and `scale-y-150` to scale an element on the y-axis by a percentage of its original height:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-y-75</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-y-75">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-y-100</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-y-100">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scale-y-125</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 scale-y-125">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:scale-y-75,scale-y-100,scale-y-125] -->
<img class="scale-y-75 ..." src="/img/mountains.jpg" />
<img class="scale-y-100 ..." src="/img/mountains.jpg" />
<img class="scale-y-125 ..." src="/img/mountains.jpg" />
```

### Using negative values

Use `-scale-<number>`, `-scale-x-<number>` or `-scale-y-<number>` utilities like `-scale-x-75` and `-scale-125` to mirror and scale down an element by a percentage of its original size:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-scale-x-75</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -scale-x-75">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-scale-100</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -scale-100">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -scale-y-125
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -scale-y-125">
              <img
                className="size-24 rounded-lg object-cover"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-scale-x-75,-scale-100,-scale-y-125] -->
<img class="-scale-x-75 ..." src="/img/mountains.jpg" />
<img class="-scale-100 ..." src="/img/mountains.jpg" />
<img class="-scale-y-125 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Applying on hover


---

# scroll-behavior

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-behavior*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scroll-auto` | `scroll-behavior: auto;` |
| `scroll-smooth` | `scroll-behavior: smooth;` |

## Examples

### Using smooth scrolling

Use the `scroll-smooth` utility to enable smooth scrolling within an element:

```html
<!-- [!code classes:scroll-smooth] -->
<html class="scroll-smooth">
  <!-- ... -->
</html>
```

Setting the `scroll-behavior` only affects scroll events that are triggered by the browser.

### Using normal scrolling

Use the `scroll-auto` utility to revert to the default browser behavior for scrolling:

```html
<!-- [!code classes:scroll-auto] -->
<html class="scroll-smooth md:scroll-auto">
  <!-- ... -->
</html>
```


---

# scroll-margin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-margin*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scroll-m-<number>` | `scroll-margin: calc(var(--spacing) * <number>);` |
| `-scroll-m-<number>` | `scroll-margin: calc(var(--spacing) * -<number>);` |
| `scroll-m-px` | `scroll-margin: 1px;` |
| `-scroll-m-px` | `scroll-margin: -1px;` |
| `scroll-m-(<custom-property>)` | `scroll-margin: var(<custom-property>);` |
| `scroll-m-[<value>]` | `scroll-margin: <value>;` |
| `scroll-mx-<number>` | `scroll-margin-inline: calc(var(--spacing) * <number>);` |
| `-scroll-mx-<number>` | `scroll-margin-inline: calc(var(--spacing) * -<number>);` |
| `scroll-mx-px` | `scroll-margin-inline: 1px;` |
| `-scroll-mx-px` | `scroll-margin-inline: -1px;` |
| `scroll-mx-(<custom-property>)` | `scroll-margin-inline: var(<custom-property>);` |
| `scroll-mx-[<value>]` | `scroll-margin-inline: <value>;` |
| `scroll-my-<number>` | `scroll-margin-block: calc(var(--spacing) * <number>);` |
| `-scroll-my-<number>` | `scroll-margin-block: calc(var(--spacing) * -<number>);` |
| `scroll-my-px` | `scroll-margin-block: 1px;` |
| `-scroll-my-px` | `scroll-margin-block: -1px;` |
| `scroll-my-(<custom-property>)` | `scroll-margin-block: var(<custom-property>);` |
| `scroll-my-[<value>]` | `scroll-margin-block: <value>;` |
| `scroll-ms-<number>` | `scroll-margin-inline-start: calc(var(--spacing) * <number>);` |
| `-scroll-ms-<number>` | `scroll-margin-inline-start: calc(var(--spacing) * -<number>);` |
| `scroll-ms-px` | `scroll-margin-inline-start: 1px;` |
| `-scroll-ms-px` | `scroll-margin-inline-start: -1px;` |
| `scroll-ms-(<custom-property>)` | `scroll-margin-inline-start: var(<custom-property>);` |
| `scroll-ms-[<value>]` | `scroll-margin-inline-start: <value>;` |
| `scroll-me-<number>` | `scroll-margin-inline-end: calc(var(--spacing) * <number>);` |
| `-scroll-me-<number>` | `scroll-margin-inline-end: calc(var(--spacing) * -<number>);` |
| `scroll-me-px` | `scroll-margin-inline-end: 1px;` |
| `-scroll-me-px` | `scroll-margin-inline-end: -1px;` |
| `scroll-me-(<custom-property>)` | `scroll-margin-inline-end: var(<custom-property>);` |
| `scroll-me-[<value>]` | `scroll-margin-inline-end: <value>;` |
| `scroll-mbs-<number>` | `scroll-margin-block-start: calc(var(--spacing) * <number>);` |
| `-scroll-mbs-<number>` | `scroll-margin-block-start: calc(var(--spacing) * -<number>);` |
| `scroll-mbs-px` | `scroll-margin-block-start: 1px;` |
| `-scroll-mbs-px` | `scroll-margin-block-start: -1px;` |
| `scroll-mbs-(<custom-property>)` | `scroll-margin-block-start: var(<custom-property>);` |
| `scroll-mbs-[<value>]` | `scroll-margin-block-start: <value>;` |
| `scroll-mbe-<number>` | `scroll-margin-block-end: calc(var(--spacing) * <number>);` |
| `-scroll-mbe-<number>` | `scroll-margin-block-end: calc(var(--spacing) * -<number>);` |
| `scroll-mbe-px` | `scroll-margin-block-end: 1px;` |
| `-scroll-mbe-px` | `scroll-margin-block-end: -1px;` |
| `scroll-mbe-(<custom-property>)` | `scroll-margin-block-end: var(<custom-property>);` |
| `scroll-mbe-[<value>]` | `scroll-margin-block-end: <value>;` |
| `scroll-mt-<number>` | `scroll-margin-top: calc(var(--spacing) * <number>);` |
| `-scroll-mt-<number>` | `scroll-margin-top: calc(var(--spacing) * -<number>);` |
| `scroll-mt-px` | `scroll-margin-top: 1px;` |
| `-scroll-mt-px` | `scroll-margin-top: -1px;` |
| `scroll-mt-(<custom-property>)` | `scroll-margin-top: var(<custom-property>);` |
| `scroll-mt-[<value>]` | `scroll-margin-top: <value>;` |
| `scroll-mr-<number>` | `scroll-margin-right: calc(var(--spacing) * <number>);` |
| `-scroll-mr-<number>` | `scroll-margin-right: calc(var(--spacing) * -<number>);` |
| `scroll-mr-px` | `scroll-margin-right: 1px;` |
| `-scroll-mr-px` | `scroll-margin-right: -1px;` |
| `scroll-mr-(<custom-property>)` | `scroll-margin-right: var(<custom-property>);` |
| `scroll-mr-[<value>]` | `scroll-margin-right: <value>;` |
| `scroll-mb-<number>` | `scroll-margin-bottom: calc(var(--spacing) * <number>);` |
| `-scroll-mb-<number>` | `scroll-margin-bottom: calc(var(--spacing) * -<number>);` |
| `scroll-mb-px` | `scroll-margin-bottom: 1px;` |
| `-scroll-mb-px` | `scroll-margin-bottom: -1px;` |
| `scroll-mb-(<custom-property>)` | `scroll-margin-bottom: var(<custom-property>);` |
| `scroll-mb-[<value>]` | `scroll-margin-bottom: <value>;` |
| `scroll-ml-<number>` | `scroll-margin-left: calc(var(--spacing) * <number>);` |
| `-scroll-ml-<number>` | `scroll-margin-left: calc(var(--spacing) * -<number>);` |
| `scroll-ml-px` | `scroll-margin-left: 1px;` |
| `-scroll-ml-px` | `scroll-margin-left: -1px;` |
| `scroll-ml-(<custom-property>)` | `scroll-margin-left: var(<custom-property>);` |
| `scroll-ml-[<value>]` | `scroll-margin-left: <value>;` |

## Examples

### Basic example

Use the `scroll-mt-<number>`, `scroll-mr-<number>`, `scroll-mb-<number>`, and `scroll-ml-<number>` utilities like `scroll-ml-4` and `scroll-mt-6` to set the scroll offset around items within a snap container:

  {
    <div className="flex w-full snap-x gap-12 overflow-x-auto py-14">
      <div className="relative shrink-0 snap-start scroll-ml-6 first:pl-6 last:pr-[calc(100%-21.5rem)]">
        
        <img
          className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
          src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
        />
      </div>
      <div className="relative shrink-0 snap-start scroll-ml-6 first:pl-6 last:pr-[calc(100%-21.5rem)]">
        
        <img
          className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
          src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
        />
      </div>
      <div className="relative shrink-0 snap-start scroll-ml-6 first:pl-6 last:pr-[calc(100%-21.5rem)]">
        
        <img
          className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
          src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
        />
      </div>
      <div className="relative shrink-0 snap-start scroll-ml-6 first:pl-6 last:pr-[calc(100%-21.5rem)]">
        
        <img
          className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
          src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
        />
      </div>
      <div className="relative shrink-0 snap-start scroll-ml-6 first:pl-6 last:pr-[calc(100%-21.5rem)]">
        
        <img
          className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
          src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
        />
      </div>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:scroll-ml-6] -->
<div class="snap-x ...">
  <div class="snap-start scroll-ml-6 ...">
    <img src="/img/vacation-01.jpg"/>
  </div>
  <div class="snap-start scroll-ml-6 ...">
    <img src="/img/vacation-02.jpg"/>
  </div>
  <div class="snap-start scroll-ml-6 ...">
    <img src="/img/vacation-03.jpg"/>
  </div>
  <div class="snap-start scroll-ml-6 ...">
    <img src="/img/vacation-04.jpg"/>
  </div>
  <div class="snap-start scroll-ml-6 ...">
    <img src="/img/vacation-05.jpg"/>
  </div>
</div>
```

### Using negative values

To use a negative scroll margin value, prefix the class name with a dash to convert it to a negative value:

```html
<!-- [!code classes:-scroll-ml-6] -->
<div class="snap-start -scroll-ml-6 ...">
  <!-- ... -->
</div>
```

### Using logical properties

Use the `scroll-ms-<number>` and `scroll-me-<number>` utilities to set the `scroll-margin-inline-start` and `scroll-margin-inline-end` [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts), which map to either the left or right side based on the text direction:

  {
    <>
      <p className="mb-4 pt-8 pl-6 text-sm font-medium">Left-to-right</p>
      <div className="flex w-full snap-x gap-12 overflow-x-auto pb-10" dir="ltr">
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pr-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pr-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pr-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pr-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pr-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
      </div>
      <p className="mt-4 mb-4 pl-6 text-sm font-medium">Right-to-left</p>
      <div className="flex w-full snap-x gap-12 overflow-x-auto pb-10" dir="rtl">
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pl-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pl-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pl-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pl-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="relative shrink-0 snap-start scroll-ms-6 first:ps-6 last:pl-[calc(100%-21.5rem)]">
          
          <img
            className="relative h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
      </div>
    </>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:scroll-ms-6] -->
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<div dir="ltr">
  <div class="snap-x ...">
    <div class="snap-start scroll-ms-6 ...">
      <img src="/img/vacation-01.jpg"/>
    </div>
    <!-- ... -->
  </div>
</div>

<div dir="rtl">
  <div class="snap-x ...">
    <div class="snap-start scroll-ms-6 ...">
      <img src="/img/vacation-01.jpg"/>
    </div>
    <!-- ... -->
  </div>
</div>
```

For more control, you can also use the [LTR and RTL modifiers](/docs/hover-focus-and-other-states#rtl-support) to conditionally apply specific styles depending on the current text direction.

Use the `scroll-mbs-<number>` and `scroll-mbe-<number>` utilities to set the `scroll-margin-block-start` and `scroll-margin-block-end` logical properties, which map to either the top or bottom side based on the writing mode:

```html
<!-- [!code classes:scroll-mbs-6] -->
<div class="snap-y ...">
  <div class="snap-start scroll-mbs-6 ...">
    <!-- ... -->
  </div>
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# scroll-padding

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-padding*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scroll-p-<number>` | `scroll-padding: calc(var(--spacing) * <number>);` |
| `scroll-p-px` | `scroll-padding: 1px;` |
| `scroll-p-(<custom-property>)` | `scroll-padding: var(<custom-property>);` |
| `scroll-p-[<value>]` | `scroll-padding: <value>;` |
| `scroll-px-<number>` | `scroll-padding-inline: calc(var(--spacing) * <number>);` |
| `scroll-px-px` | `scroll-padding-inline: 1px;` |
| `scroll-px-(<custom-property>)` | `scroll-padding-inline: var(<custom-property>);` |
| `scroll-px-[<value>]` | `scroll-padding-inline: <value>;` |
| `scroll-py-<number>` | `scroll-padding-block: calc(var(--spacing) * <number>);` |
| `scroll-py-px` | `scroll-padding-block: 1px;` |
| `scroll-py-(<custom-property>)` | `scroll-padding-block: var(<custom-property>);` |
| `scroll-py-[<value>]` | `scroll-padding-block: <value>;` |
| `scroll-ps-<number>` | `scroll-padding-inline-start: calc(var(--spacing) * <number>);` |
| `scroll-ps-px` | `scroll-padding-inline-start: 1px;` |
| `scroll-ps-(<custom-property>)` | `scroll-padding-inline-start: var(<custom-property>);` |
| `scroll-ps-[<value>]` | `scroll-padding-inline-start: <value>;` |
| `scroll-pe-<number>` | `scroll-padding-inline-end: calc(var(--spacing) * <number>);` |
| `scroll-pe-px` | `scroll-padding-inline-end: 1px;` |
| `scroll-pe-(<custom-property>)` | `scroll-padding-inline-end: var(<custom-property>);` |
| `scroll-pe-[<value>]` | `scroll-padding-inline-end: <value>;` |
| `scroll-pbs-<number>` | `scroll-padding-block-start: calc(var(--spacing) * <number>);` |
| `scroll-pbs-px` | `scroll-padding-block-start: 1px;` |
| `scroll-pbs-(<custom-property>)` | `scroll-padding-block-start: var(<custom-property>);` |
| `scroll-pbs-[<value>]` | `scroll-padding-block-start: <value>;` |
| `scroll-pbe-<number>` | `scroll-padding-block-end: calc(var(--spacing) * <number>);` |
| `scroll-pbe-px` | `scroll-padding-block-end: 1px;` |
| `scroll-pbe-(<custom-property>)` | `scroll-padding-block-end: var(<custom-property>);` |
| `scroll-pbe-[<value>]` | `scroll-padding-block-end: <value>;` |
| `scroll-pt-<number>` | `scroll-padding-top: calc(var(--spacing) * <number>);` |
| `scroll-pt-px` | `scroll-padding-top: 1px;` |
| `scroll-pt-(<custom-property>)` | `scroll-padding-top: var(<custom-property>);` |
| `scroll-pt-[<value>]` | `scroll-padding-top: <value>;` |
| `scroll-pr-<number>` | `scroll-padding-right: calc(var(--spacing) * <number>);` |
| `scroll-pr-px` | `scroll-padding-right: 1px;` |
| `scroll-pr-(<custom-property>)` | `scroll-padding-right: var(<custom-property>);` |
| `scroll-pr-[<value>]` | `scroll-padding-right: <value>;` |
| `scroll-pb-<number>` | `scroll-padding-bottom: calc(var(--spacing) * <number>);` |
| `scroll-pb-px` | `scroll-padding-bottom: 1px;` |
| `scroll-pb-(<custom-property>)` | `scroll-padding-bottom: var(<custom-property>);` |
| `scroll-pb-[<value>]` | `scroll-padding-bottom: <value>;` |
| `scroll-pl-<number>` | `scroll-padding-left: calc(var(--spacing) * <number>);` |
| `scroll-pl-px` | `scroll-padding-left: 1px;` |
| `scroll-pl-(<custom-property>)` | `scroll-padding-left: var(<custom-property>);` |
| `scroll-pl-[<value>]` | `scroll-padding-left: <value>;` |

## Examples

### Basic example

Use the `scroll-pt-<number>`, `scroll-pr-<number>`, `scroll-pb-<number>`, and `scroll-pl-<number>` utilities like `scroll-pl-4` and `scroll-pt-6` to set the scroll offset of an element within a snap container:

  {
    <div className="relative">
      
      <div className="flex w-full snap-x scroll-pl-6 gap-8 overflow-x-auto py-14">
        <div className="shrink-0 snap-start first:pl-6 last:pr-[calc(100%-21.5rem)]">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start first:pl-6 last:pr-[calc(100%-21.5rem)]">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start first:pl-6 last:pr-[calc(100%-21.5rem)]">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start first:pl-6 last:pr-[calc(100%-21.5rem)]">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start first:pl-6 last:pr-[calc(100%-21.5rem)]">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:scroll-pl-6] -->
<div class="snap-x scroll-pl-6 ...">
  <div class="snap-start ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-05.jpg" />
  </div>
</div>
```

### Using logical properties

Use the `scroll-ps-<number>` and `scroll-pe-<number>` utilities to set the `scroll-padding-inline-start` and `scroll-padding-inline-end` logical properties, which map to either the left or right side based on the text direction:

  {
    <>
      <p className="mb-4 pt-8 pl-6 text-sm font-medium">Left-to-right</p>
      <div className="relative" dir="ltr">
        
        <div className="flex w-full snap-x scroll-ps-6 gap-8 overflow-x-auto pb-10">
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
        </div>
      </div>
      <p className="mt-4 mb-4 pl-6 text-sm font-medium">Right-to-left</p>
      <div className="relative" dir="rtl">
        
        <div className="flex w-full snap-x scroll-ps-6 gap-8 overflow-x-auto pb-10">
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
          <div className="shrink-0 snap-start first:ps-6 last:pe-[calc(100%-21.5rem)]">
            <img
              className="h-40 w-80 shrink-0 rounded-lg bg-white"
              src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGV8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
            />
          </div>
        </div>
      </div>
    </>
  }

```html
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:scroll-ps-6] -->
<div dir="ltr">
  <div class="snap-x scroll-ps-6 ...">
    <!-- ... -->
  </div>
</div>

<div dir="rtl">
  <div class="snap-x scroll-ps-6 ...">
    <!-- ... -->
  </div>
</div>
```

Use the `scroll-pbs-<number>` and `scroll-pbe-<number>` utilities to set the `scroll-padding-block-start` and `scroll-padding-block-end` logical properties, which map to either the top or bottom side based on the writing mode:

```html
<!-- [!code classes:scroll-pbs-6] -->
<div class="snap-y scroll-pbs-6 ...">
  <!-- ... -->
</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# scroll-snap-align

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-snap-align*

| Clase | Propiedades CSS |
| :--- | :--- |
| `snap-start` | `scroll-snap-align: start;` |
| `snap-end` | `scroll-snap-align: end;` |
| `snap-center` | `scroll-snap-align: center;` |
| `snap-align-none` | `scroll-snap-align: none;` |

## Examples

### Snapping to the center

Use the `snap-center` utility to snap an element to its center when being scrolled inside a snap container:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-mandatory gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <img
            className="bg-whit h-40 w-80 shrink-0 rounded-lg"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-center] -->
<div class="snap-x ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Snapping to the start

Use the `snap-start` utility to snap an element to its start when being scrolled inside a snap container:

  {
    <div className="relative">
      <div className="mb-6 ml-6 flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-6 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-mandatory gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-start scroll-mx-6">
          <div className="w-0 shrink-0"></div>
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-start scroll-mx-6">
          <div className="h-40 w-3 shrink-0 sm:ml-[-2px] sm:w-96"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-start] -->

<div class="snap-x ...">
  <div class="snap-start ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-start ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Snapping to the end

Use the `snap-end` utility to snap an element to its end when being scrolled inside a snap container:

  {
    <div className="relative">
      <div className="mr-6 mb-6 flex items-end justify-end pt-10">
        <div className="dark:highlight-white/10 mr-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 right-6 bottom-0 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-mandatory gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-end scroll-mx-6">
          <div className="w-3 shrink-0 sm:mr-[-2px] sm:w-10"></div>
        </div>
        <div className="shrink-0 snap-end scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-end scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-end scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-end scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-end scroll-mx-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-end scroll-mx-6 pr-6">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-end] -->
<div class="snap-x ...">
  <div class="snap-end ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-end ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-end ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-end ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-end ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-end ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Responsive design


---

# scroll-snap-stop

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-snap-stop*

| Clase | Propiedades CSS |
| :--- | :--- |
| `snap-normal` | `scroll-snap-stop: normal;` |
| `snap-always` | `scroll-snap-stop: always;` |

## Examples

### Forcing snap position stops

Use the `snap-always` utility together with the [snap-mandatory](/docs/scroll-snap-type#mandatory-scroll-snapping) utility to force a snap container to always stop on an element before the user can continue scrolling to the next item:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-mandatory gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-mandatory,snap-always] -->
<div class="snap-x snap-mandatory ...">
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center snap-always ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Skipping snap position stops

Use the `snap-normal` utility to allow a snap container to skip past possible scroll snap positions:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white object-cover"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-normal] -->
<div class="snap-x ...">
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center snap-normal ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Responsive design


---

# scroll-snap-type

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scroll-snap-type*

| Clase | Propiedades CSS |
| :--- | :--- |
| `snap-none` | `scroll-snap-type: none;` |
| `snap-x` | `scroll-snap-type: x var(--tw-scroll-snap-strictness);` |
| `snap-y` | `scroll-snap-type: y var(--tw-scroll-snap-strictness);` |
| `snap-both` | `scroll-snap-type: both var(--tw-scroll-snap-strictness);` |
| `snap-mandatory` | `--tw-scroll-snap-strictness: mandatory;` |
| `snap-proximity` | `--tw-scroll-snap-strictness: proximity;` |

## Examples

### Horizontal scroll snapping

Use the `snap-x` utility to enable horizontal scroll snapping within an element:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-x,snap-center] -->
<div class="snap-x ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

For scroll snapping to work, you need to also set the [scroll snap alignment](/docs/scroll-snap-align) on the children.

### Mandatory scroll snapping

Use the `snap-mandatory` utility to force a snap container to always come to rest on a snap point:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-mandatory gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-mandatory] -->
<div class="snap-x snap-mandatory ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-06.jpg" />
  </div>
</div>
```

### Proximity scroll snapping

Use the `snap-proximity` utility to make a snap container come to rest on snap points that are close in proximity:

  {
    <div className="relative">
      <div className="mb-6 ml-[50%] flex items-end justify-start pt-10">
        <div className="dark:highlight-white/10 ml-2 rounded bg-indigo-50 px-1.5 font-mono text-[0.625rem] leading-6 text-indigo-600 ring-1 ring-indigo-600 ring-inset dark:bg-indigo-500 dark:text-white dark:ring-0">
          snap point
        </div>
        <div className="absolute top-0 bottom-0 left-1/2 border-l border-indigo-500"></div>
      </div>
      <div className="relative flex w-full snap-x snap-proximity gap-6 overflow-x-auto pb-14">
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center first:pl-8 last:pr-8">
          <img
            className="h-40 w-80 shrink-0 rounded-lg bg-white"
            src="https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"
          />
        </div>
        <div className="shrink-0 snap-center">
          <div className="w-4 shrink-0 sm:w-37"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:snap-proximity] -->
<div class="snap-x snap-proximity ...">
  <div class="snap-center ...">
    <img src="/img/vacation-01.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-02.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-03.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-04.jpg" />
  </div>
  <div class="snap-center ...">
    <img src="/img/vacation-05.jpg" />
  </div>
</div>
```

### Responsive design


---

# scrollbar-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scrollbar-color*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scrollbar-thumb-inherit` | `--tw-scrollbar-thumb: inherit;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-thumb-current` | `--tw-scrollbar-thumb: currentColor;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-thumb-transparent` | `--tw-scrollbar-thumb: transparent;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-thumb-(<custom-property>)` | `--tw-scrollbar-thumb: var(<custom-property>);\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-thumb-[<value>]` | `--tw-scrollbar-thumb: <value>;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-track-inherit` | `--tw-scrollbar-track: inherit;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-track-current` | `--tw-scrollbar-track: currentColor;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-track-transparent` | `--tw-scrollbar-track: transparent;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-track-(<custom-property>)` | `--tw-scrollbar-track: var(<custom-property>);\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |
| `scrollbar-track-[<value>]` | `--tw-scrollbar-track: <value>;\nscrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);` |

## Examples

### Setting the scrollbar color

Use utilities like `scrollbar-thumb-sky-700` and `scrollbar-track-sky-100` to control the colors of a scrollbar:

  {
    <div className="mx-auto h-72 max-w-sm scrollbar-thumb-sky-700 scrollbar-track-sky-100 overflow-auto rounded-xl bg-white p-6 text-sm/6 text-gray-600 shadow-lg ring-1 ring-black/5 dark:scrollbar-thumb-sky-400 dark:scrollbar-track-gray-700 dark:bg-gray-800 dark:text-gray-300">
      <div className="space-y-4">
        <p>
          The Cerulean Archives occupy three narrow floors above the old observatory, each lined with drawers of star
          maps, expedition notes, and brass instruments cataloged by hand.
        </p>
        <p>
          On winter mornings, the staff rolls ladders between the shelves while pale light cuts through the roof windows
          and settles on the reading tables.
        </p>
        <p>
          Visitors can request anything from the collection, but most come for the atlases that chart coastlines no
          longer found on modern maps.
        </p>
        <p>
          Every returned volume is inspected, dusted, and wrapped before being carried back into the stacks for the next
          researcher.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:scrollbar-thumb-sky-700,scrollbar-track-sky-100] -->
<div class="scrollbar-thumb-sky-700 scrollbar-track-sky-100 overflow-auto ...">
  <!-- ... -->
</div>
```

You can set the thumb and track colors independently. If you set one without the other, the unset color defaults to transparent.

### Changing the opacity

Use the color opacity modifier to control the opacity of an element's scrollbar colors:

  {
    <div className="mx-auto h-72 max-w-sm scrollbar-thumb-slate-900/60 scrollbar-track-slate-900/10 overflow-auto rounded-xl bg-white p-6 text-sm/6 text-gray-600 shadow-lg ring-1 ring-black/5 dark:scrollbar-thumb-white/40 dark:scrollbar-track-white/10 dark:bg-gray-800 dark:text-gray-300">
      <div className="space-y-4">
        <p>
          The Cerulean Archives occupy three narrow floors above the old observatory, each lined with drawers of star
          maps, expedition notes, and brass instruments cataloged by hand.
        </p>
        <p>
          On winter mornings, the staff rolls ladders between the shelves while pale light cuts through the roof windows
          and settles on the reading tables.
        </p>
        <p>
          Visitors can request anything from the collection, but most come for the atlases that chart coastlines no
          longer found on modern maps.
        </p>
        <p>
          Every returned volume is inspected, dusted, and wrapped before being carried back into the stacks for the next
          researcher.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code word:/60] -->
<!-- [!code word:/10] -->
<div class="scrollbar-thumb-slate-900/60 scrollbar-track-slate-900/10 ...">
  <!-- ... -->
</div>
```

### Using a custom value

Use utilities like `scrollbar-thumb-[<value>]` and `scrollbar-track-[<value>]` to set scrollbar colors based on
completely custom values:

```html
<!-- [!code classes:scrollbar-thumb-[#0f766e],scrollbar-track-[#ccfbf1]] -->
<div class="scrollbar-thumb-[#0f766e] scrollbar-track-[#ccfbf1] ...">
  <!-- ... -->
</div>
```

For CSS variables, you can also use the `scrollbar-thumb-(<custom-property>)` and
`scrollbar-track-(<custom-property>)` syntax:

```html
<!-- [!code classes:scrollbar-thumb-(--my-scrollbar-thumb),scrollbar-track-(--my-scrollbar-track)] -->
<div class="scrollbar-thumb-(--my-scrollbar-thumb) scrollbar-track-(--my-scrollbar-track) ...">
  <!-- ... -->
</div>
```

### Applying on hover

```html
<!-- [!code classes:hover:scrollbar-thumb-sky-500] -->
<div class="scrollbar-thumb-sky-700 hover:scrollbar-thumb-sky-500 ...">
  <!-- ... -->
</div>
```

### Responsive design

## Customizing your theme


---

# scrollbar-gutter

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scrollbar-gutter*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scrollbar-gutter-auto` | `scrollbar-gutter: auto;` |
| `scrollbar-gutter-stable` | `scrollbar-gutter: stable;` |
| `scrollbar-gutter-both` | `scrollbar-gutter: stable both-edges;` |

## Examples

### Reserving space for the scrollbar

Use the `scrollbar-gutter-stable` utility to reserve space for the scrollbar even when an element isn't overflowing:

  {
    <div className="mx-auto grid max-w-xl grid-cols-1 gap-6 text-sm/6 text-gray-600 sm:grid-cols-2 dark:text-gray-300">
      <div>
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scrollbar-gutter-auto</p>
        <div className="h-40 scrollbar-gutter-auto overflow-auto rounded-lg bg-gray-50 py-4 dark:bg-white/5">
          <p className="text-justify">
            Hey everyone! It’s almost 2027 and we still don’t know if there are aliens living among us, or do we? Maybe
            the person writing this is an alien. You will never know.
          </p>
        </div>
      </div>
      <div>
        <p className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">scrollbar-gutter-stable</p>
        <div className="relative h-40 scrollbar-gutter-stable rounded-lg bg-gray-50 py-4 pr-4 dark:bg-white/5">
          <p className="text-justify">
            Hey everyone! It’s almost 2027 and we still don’t know if there are aliens living among us, or do we? Maybe
            the person writing this is an alien. You will never know.
          </p>
          <div className="absolute top-0 right-0 bottom-0 w-4 rounded-r-lg border bg-[repeating-linear-gradient(315deg,currentColor_0,currentColor_1px,transparent_0,transparent_50%)] bg-size-[8px_8px] bg-top-left text-black/10 dark:text-white/12.5"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:scrollbar-gutter-stable] -->
<div class="scrollbar-gutter-stable overflow-auto ...">
  <!-- ... -->
</div>
```

### Reserving space on both sides

Use the `scrollbar-gutter-both` utility to reserve matching gutter space on both sides of the element:

```html
<!-- [!code classes:scrollbar-gutter-both] -->
<div class="scrollbar-gutter-both overflow-auto ...">
  <!-- ... -->
</div>
```

### Using the default gutter

Use the `scrollbar-gutter-auto` utility to only reserve gutter space when the browser would normally show a scrollbar:

```html
<!-- [!code classes:scrollbar-gutter-auto] -->
<div class="scrollbar-gutter-auto overflow-auto ...">
  <!-- ... -->
</div>
```

### Responsive design


---

# scrollbar-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/scrollbar-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `scrollbar-auto` | `scrollbar-width: auto;` |
| `scrollbar-thin` | `scrollbar-width: thin;` |
| `scrollbar-none` | `scrollbar-width: none;` |

## Examples

### Using the default scrollbar width

Use the `scrollbar-auto` utility to use the browser's default scrollbar width:

```html
<!-- [!code classes:scrollbar-auto] -->
<div class="scrollbar-auto overflow-auto ...">
  <!-- ... -->
</div>
```

### Using a thin scrollbar

Use the `scrollbar-thin` utility to use a thinner scrollbar:

  {
    <div className="mx-auto h-72 max-w-sm scrollbar-thin overflow-auto rounded-xl bg-white p-6 text-sm/6 text-gray-600 shadow-lg ring-1 ring-black/5 dark:bg-gray-800 dark:text-gray-300">
      <div className="space-y-4">
        <p>
          The Cerulean Archives occupy three narrow floors above the old observatory, each lined with drawers of star
          maps, expedition notes, and brass instruments cataloged by hand.
        </p>
        <p>
          On winter mornings, the staff rolls ladders between the shelves while pale light cuts through the roof windows
          and settles on the reading tables.
        </p>
        <p>
          Visitors can request anything from the collection, but most come for the atlases that chart coastlines no
          longer found on modern maps.
        </p>
        <p>
          Every returned volume is inspected, dusted, and wrapped before being carried back into the stacks for the next
          researcher.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:scrollbar-thin] -->
<div class="scrollbar-thin overflow-auto ...">
  <!-- ... -->
</div>
```

### Hiding scrollbars

Use the `scrollbar-none` utility to hide scrollbars while still allowing an element to scroll:

```html
<!-- [!code classes:scrollbar-none] -->
<div class="scrollbar-none overflow-auto ...">
  <!-- ... -->
</div>
```

These utilities only support the browser keywords `auto`, `thin`, and `none`.

### Responsive design


---

# skew

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/skew*

| Clase | Propiedades CSS |
| :--- | :--- |
| `skew-<number>` | `transform: skewX(<number>deg) skewY(<number>deg);` |
| `-skew-<number>` | `transform: skewX(-<number>deg) skewY(-<number>deg);` |
| `skew-(<custom-property>)` | `transform: skewX(var(<custom-property>)) skewY(var(<custom-property>));` |
| `skew-[<value>]` | `transform: skewX(<value>) skewY(<value>);` |
| `skew-x-<number>` | `transform: skewX(<number>deg));` |
| `-skew-x-<number>` | `transform: skewX(-<number>deg));` |
| `skew-x-(<custom-property>)` | `transform: skewX(var(<custom-property>));` |
| `skew-x-[<value>]` | `transform: skewX(<value>));` |
| `skew-y-<number>` | `transform: skewY(<number>deg);` |
| `-skew-y-<number>` | `transform: skewY(-<number>deg);` |
| `skew-y-(<custom-property>)` | `transform: skewY(var(<custom-property>));` |
| `skew-y-[<value>]` | `transform: skewY(<value>);` |

## Examples

### Basic example

Use `skew-<number>` utilities like `skew-4` and `skew-10` to skew an element on both axes:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-3</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-3">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-6</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:skew-3,skew-6,skew-12] -->
<img class="skew-3 ..." src="/img/mountains.jpg" />
<img class="skew-6 ..." src="/img/mountains.jpg" />
<img class="skew-12 ..." src="/img/mountains.jpg" />
```

### Using negative values

Use `-skew-<number>` utilities like `-skew-4` and `-skew-10` to skew an element on both axes:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-skew-3</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -skew-3">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-skew-6</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -skew-6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-skew-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -skew-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-skew-3,-skew-6,-skew-12] -->
<img class="-skew-3 ..." src="/img/mountains.jpg" />
<img class="-skew-6 ..." src="/img/mountains.jpg" />
<img class="-skew-12 ..." src="/img/mountains.jpg" />
```

### Skewing on the x-axis

Use `skew-x-<number>` utilities like `skew-x-4` and `-skew-x-10` to skew an element on the x-axis:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-skew-x-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -skew-x-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-x-6</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-x-6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-x-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-x-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-skew-x-12,skew-x-12,skew-x-6] -->
<img class="-skew-x-12 ..." src="/img/mountains.jpg" />
<img class="skew-x-6 ..." src="/img/mountains.jpg" />
<img class="skew-x-12 ..." src="/img/mountains.jpg" />
```

### Skewing on the y-axis

Use `skew-y-<number>` utilities like `skew-y-4` and `-skew-y-10` to skew an element on the y-axis:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 font-mono font-bold sm:gap-4">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">-skew-y-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -skew-y-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-y-6</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-y-6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">skew-y-12</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 skew-y-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-skew-y-12,skew-y-12,skew-y-6] -->
<img class="-skew-y-12 ..." src="/img/mountains.jpg" />
<img class="skew-y-6 ..." src="/img/mountains.jpg" />
<img class="skew-y-12 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# stroke-width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/stroke-width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `stroke-<number>` | `stroke-width: <number>;` |
| `stroke-(length:<custom-property>)` | `stroke-width: var(<custom-property>);` |
| `stroke-[<value>]` | `stroke-width: <value>;` |

## Examples

### Basic example

Use `stroke-<number>` utilities like `stroke-1` and `stroke-2` to set the stroke width of an SVG:

  {
    <div className="flex items-center justify-center gap-x-8">
      <svg
        className="stroke-indigo-500 stroke-1"
        width="48"
        height="48"
        viewBox="0 0 48 48"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <circle cx="24" cy="24" r="23" strokeLinejoin="round" />
        <path d="M23 1C23 1 15 10.4901 15 24C15 37.5099 23 47 23 47" strokeLinejoin="round" />
        <path d="M25 1C25 1 33 10.4901 33 24C33 37.5099 25 47 25 47" strokeLinejoin="round" />
        <path d="M1 24H47" />
      </svg>
      <svg
        className="stroke-indigo-500 stroke-2"
        width="48"
        height="48"
        viewBox="0 0 48 48"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <circle cx="24" cy="24" r="23" strokeLinejoin="round" />
        <path d="M23 1C23 1 15 10.4901 15 24C15 37.5099 23 47 23 47" strokeLinejoin="round" />
        <path d="M25 1C25 1 33 10.4901 33 24C33 37.5099 25 47 25 47" strokeLinejoin="round" />
        <path d="M1 24H47" />
      </svg>
    </div>
  }

```html
<!-- [!code classes:stroke-1,stroke-2] -->
<svg class="stroke-1 ..."></svg>
<svg class="stroke-2 ..."></svg>
```

This can be useful for styling icon sets like [Heroicons](https://heroicons.com).

### Using a custom value

### Responsive design


---

# stroke

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/stroke*

| Clase | Propiedades CSS |
| :--- | :--- |
| `stroke-none` | `stroke: none;` |
| `stroke-inherit` | `stroke: inherit;` |
| `stroke-current` | `stroke: currentColor;` |
| `stroke-transparent` | `stroke: transparent;` |
| `stroke-(<custom-property>)` | `stroke: var(<custom-property>);` |
| `stroke-[<color>]` | `stroke: <color>;` |

## Examples

### Basic example

Use utilities like `stroke-indigo-500` and `stroke-lime-600` to change the stroke color of an SVG:

  {
    <div className="flex items-center justify-center">
      <svg className="h-10 stroke-cyan-500" viewBox="0 0 48 40" fill="none">
        <path
          d="M1 13C1 10.2386 3.23858 8 6 8H13.4914C14.3844 8 15.1691 7.40805 15.4144 6.54944L16.5856 2.45056C16.8309 1.59196 17.6156 1 18.5086 1H29.4914C30.3844 1 31.1691 1.59195 31.4144 2.45056L32.5856 6.54944C32.8309 7.40804 33.6156 8 34.5086 8H42C44.7614 8 47 10.2386 47 13V34C47 36.7614 44.7614 39 42 39H6C3.23858 39 1 36.7614 1 34V13Z"
          strokeWidth="2"
        />
        <circle cx="24" cy="23" r="9" strokeWidth="2" />
      </svg>
    </div>
  }

```html
<!-- [!code classes:stroke-cyan-500] -->
<svg class="stroke-cyan-500 ...">
  <!-- ... -->
</svg>
```

This can be useful for styling icon sets like [Heroicons](https://heroicons.com).

### Using the current color

Use the `stroke-current` utility to set the stroke color to the current text color:

  {
    <div className="flex items-center justify-center">
      <button className="inline-flex gap-2 rounded-md border border-pink-100 bg-white px-3 py-2 text-sm font-semibold text-pink-600 shadow-sm transition-colors duration-150 hover:border-pink-600 hover:bg-pink-600 hover:text-white dark:border-transparent">
        <svg fill="none" viewBox="0 0 24 24" strokeWidth={1.5} stroke="currentColor" className="size-5 stroke-current">
          <path
            strokeLinecap="round"
            strokeLinejoin="round"
            d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"
          />
        </svg>
        Download file
      </button>
    </div>
  }

```html
<!-- [!code classes:stroke-current] -->
<button class="bg-white text-pink-600 hover:bg-pink-600 hover:text-white ...">
  <svg class="size-5 stroke-current ..." fill="none">
    <!-- ... -->
  </svg>
  Download file
</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# Styling with utility classes

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/styling-with-utility-classes*

## Overview

You style things with Tailwind by combining many single-purpose presentational classes _(utility classes)_ directly in your markup:

  {
    <div className="mx-auto flex max-w-sm items-center gap-x-4 rounded-xl bg-white p-6 shadow-lg outline outline-black/5 dark:bg-slate-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10">
      <svg className="size-12 shrink-0" viewBox="0 0 40 40">
        <defs>
          <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a">
            <stop stopColor="#2397B3" offset="0%"></stop>
            <stop stopColor="#13577E" offset="100%"></stop>
          </linearGradient>
          <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="b">
            <stop stopColor="#73DFF2" offset="0%"></stop>
            <stop stopColor="#47B1EB" offset="100%"></stop>
          </linearGradient>
        </defs>
        <g fill="none" fillRule="evenodd">
          <path
            d="M28.872 22.096c.084.622.128 1.258.128 1.904 0 7.732-6.268 14-14 14-2.176 0-4.236-.496-6.073-1.382l-6.022 2.007c-1.564.521-3.051-.966-2.53-2.53l2.007-6.022A13.944 13.944 0 0 1 1 24c0-7.331 5.635-13.346 12.81-13.95A9.967 9.967 0 0 0 13 14c0 5.523 4.477 10 10 10a9.955 9.955 0 0 0 5.872-1.904z"
            fill="url(#a)"
            transform="translate(1 1)"
          ></path>
          <path
            d="M35.618 20.073l2.007 6.022c.521 1.564-.966 3.051-2.53 2.53l-6.022-2.007A13.944 13.944 0 0 1 23 28c-7.732 0-14-6.268-14-14S15.268 0 23 0s14 6.268 14 14c0 2.176-.496 4.236-1.382 6.073z"
            fill="url(#b)"
            transform="translate(1 1)"
          ></path>
          <path
            d="M18 17a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM24 17a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM30 17a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"
            fill="#FFF"
          ></path>
        </g>
      </svg>
      <div>
        <div className="text-xl font-medium text-black dark:text-white">ChitChat</div>
        <p className="text-gray-500 dark:text-gray-400">You have a new message!</p>
      </div>
    </div>
  }

```html
<!-- prettier-ignore -->
<div class="mx-auto flex max-w-sm items-center gap-x-4 rounded-xl bg-white p-6 shadow-lg outline outline-black/5 dark:bg-slate-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10">
  <img class="size-12 shrink-0" src="/img/logo.svg" alt="ChitChat Logo" />
  <div>
    <div class="text-xl font-medium text-black dark:text-white">ChitChat</div>
    <p class="text-gray-500 dark:text-gray-400">You have a new message!</p>
  </div>
</div>
```

For example, in the UI above we've used:

- The [display](/docs/display#flex) and [padding](/docs/padding) utilities (`flex`, `shrink-0`, and `p-6`) to control the overall layout
- The [max-width](/docs/max-width) and [margin](/docs/margin) utilities (`max-w-sm` and `mx-auto`) to constrain the card width and center it horizontally
- The [background-color](/docs/background-color), [border-radius](/docs/border-radius), and [box-shadow](/docs/box-shadow) utilities (`bg-white`, `rounded-xl`, and `shadow-lg`) to style the card's appearance
- The [width](/docs/width) and [height](/docs/height) utilities (`size-12`) to set the width and height of the logo image
- The [gap](/docs/gap) utilities (`gap-x-4`) to handle the spacing between the logo and the text
- The [font-size](/docs/font-size), [color](/docs/text-color), and [font-weight](/docs/font-weight) utilities (`text-xl`, `text-black`, `font-medium`, etc.) to style the card text

Styling things this way contradicts a lot of traditional best practices, but once you try it you'll quickly notice some really important benefits:

- **You get things done faster** — you don't spend any time coming up with class names, making decisions about selectors, or switching between HTML and CSS files, so your designs come together very fast.
- **Making changes feels safer** — adding or removing a utility class to an element only ever affects that element, so you never have to worry about accidentally breaking something another page that's using the same CSS.
- **Maintaining old projects is easier** — changing something just means finding that element in your project and changing the classes, not trying to remember how all of that custom CSS works that you haven't touched in six months.
- **Your code is more portable** — since both the structure and styling live in the same place, you can easily copy and paste entire chunks of UI around, even between different projects.
- **Your CSS stops growing** — since utility classes are so reusable, your CSS doesn't continue to grow linearly with every new feature you add to a project.

These benefits make a big difference on small projects, but they are even more valuable for teams working on long-running projects at scale.

### Why not just use inline styles?

A common reaction to this approach is wondering, “isn’t this just inline styles?” and in some ways it is — you’re applying styles directly to elements instead of assigning them a class name and then styling that class.

But using utility classes has many important advantages over inline styles, for example:

- **Designing with constraints** — using inline styles, every value is a magic number. With utilities, you’re choosing styles from a [predefined design system](/docs/theme), which makes it much easier to build visually consistent UIs.
- **Hover, focus, and other states** — inline styles can’t target states like hover or focus, but Tailwind’s [state variants](/docs/hover-focus-and-other-states) make it easy to style those states with utility classes.
- **Media queries** — you can’t use media queries in inline styles, but you can use Tailwind’s [responsive variants](/docs/responsive-design) to build fully responsive interfaces easily.

This component is fully responsive and includes a button with hover and active styles, and is built entirely with utility classes:

  {
    <div className="mx-auto max-w-sm space-y-2 rounded-xl bg-white px-8 py-8 shadow-lg ring ring-black/5 @sm:flex @sm:items-center @sm:space-y-0 @sm:gap-x-6 @sm:py-4">
      <img
        className="mx-auto block h-24 rounded-full @sm:mx-0 @sm:shrink-0"
        src={erinLindford.src}
        alt="Woman's Face"
      />
      <div className="space-y-2 text-center @sm:text-left">
        <div className="space-y-0.5">
          <p className="text-lg font-semibold text-black">Erin Lindford</p>
          <p className="font-medium text-gray-500">Product Engineer</p>
        </div>
        <button className="rounded-full border border-purple-200 px-4 py-1 text-sm font-semibold text-purple-600 hover:border-transparent hover:bg-purple-600 hover:text-white active:bg-purple-700">
          Message
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:sm:flex-row,sm:py-4,sm:gap-6,sm:mx-0,sm:shrink-0,sm:text-left,sm:items-center] -->
<!-- [!code classes:hover:text-white,hover:bg-purple-600,hover:border-transparent,active:bg-purple-700] -->
<div class="flex flex-col gap-2 p-8 sm:flex-row sm:items-center sm:gap-6 sm:py-4 ...">
  <img class="mx-auto block h-24 rounded-full sm:mx-0 sm:shrink-0" src="/img/erin-lindford.jpg" alt="" />
  <div class="space-y-2 text-center sm:text-left">
    <div class="space-y-0.5">
      <p class="text-lg font-semibold text-black">Erin Lindford</p>
      <p class="font-medium text-gray-500">Product Engineer</p>
    </div>
    <!-- prettier-ignore -->
    <button class="border-purple-200 text-purple-600 hover:border-transparent hover:bg-purple-600 hover:text-white active:bg-purple-700 ...">
      Message
    </button>
  </div>
</div>
```

## Thinking in utility classes

### Styling hover and focus states

To style an element on states like hover or focus, prefix any utility with the state you want to target, for example `hover:bg-sky-700`:

  {
    <div className="grid place-items-center">
      <button className="rounded-full bg-sky-500 px-5 py-2 text-sm leading-5 font-semibold text-white hover:bg-sky-700">
        Save changes
      </button>
    </div>
  }

```html
<!-- [!code word:hover\:bg-sky-700] -->
<button class="bg-sky-500 hover:bg-sky-700 ...">Save changes</button>
```

These prefixes are called [variants](/docs/hover-focus-and-other-states) in Tailwind, and they only apply the styles from a utility class when the condition for that variant matches.

Here's what the generated CSS looks like for the `hover:bg-sky-700` class:

```css
/* [!code filename: Generated CSS] */
.hover\:bg-sky-700 {
  &:hover {
    background-color: var(--color-sky-700);
  }
}
```

Notice how this class does nothing _unless_ the element is hovered? Its _only_ job is to provide hover styles — nothing else.

This is different from how you'd write traditional CSS, where a single class would usually provide the styles for many states:

```html
/* [!code filename:HTML] */
<button class="btn">Save changes</button>

<style>
  .btn {
    background-color: var(--color-sky-500);
    &:hover {
      background-color: var(--color-sky-700);
    }
  }
</style>
```

You can even stack variants in Tailwind to apply a utility when multiple conditions match, like combining `hover:` and `disabled:`

```html
<!-- [!code classes:disabled:hover:bg-sky-500] -->
<button class="bg-sky-500 disabled:hover:bg-sky-500 ...">Save changes</button>
```

Learn more in the documentation styling elements on [hover, focus, and other states](/docs/hover-focus-and-other-states).

### Media queries and breakpoints

Just like hover and focus states, you can style elements at different breakpoints by prefixing any utility with the breakpoint where you want that style to apply:

  {
    <div className="grid grid-cols-2 gap-4 text-center font-mono font-medium text-white @sm:grid-cols-3">
      <div className="rounded-lg bg-sky-500 p-4">01</div>
      <div className="rounded-lg bg-sky-500 p-4">02</div>
      <div className="rounded-lg bg-sky-500 p-4">03</div>
      <div className="rounded-lg bg-sky-500 p-4">04</div>
      <div className="rounded-lg bg-sky-500 p-4">05</div>
      <div className="rounded-lg bg-sky-500 p-4">06</div>
    </div>
  }

```html
<!-- [!code classes:sm:grid-cols-3] -->
<div class="grid grid-cols-2 sm:grid-cols-3">
  <!-- ... -->
</div>
```

In the example above, the `sm:` prefix makes sure that `grid-cols-3` only triggers at the `sm` breakpoint and above, which is 40rem out of the box:

```css
/* [!code filename: Generated CSS] */
.sm\:grid-cols-3 {
  @media (width >= 40rem) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
```

Learn more in the [responsive design](/docs/responsive-design) documentation.

### Targeting dark mode

Styling an element in dark mode is just a matter of adding the `dark:` prefix to any utility you want to apply when dark mode is active:

  {
    <div className="grid grid-cols-1 sm:grid-cols-2">
      <div className="p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-500">Light mode</p>
        <div className="rounded-lg bg-white px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-gray-900">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-500"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
      <div className="bg-gray-900 p-8 pt-7">
        <p className="mb-2 text-sm font-medium text-gray-400">Dark mode</p>
        <div className="rounded-lg bg-gray-800 px-6 py-8 shadow-xl ring ring-gray-900/5">
          <div>
            <span className="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
              <svg
                className="h-6 w-6 text-white"
                fill="none"
                viewBox="0 0 24 24"
                stroke="currentColor"
                aria-hidden="true"
              >
                <path
                  strokeLinecap="round"
                  strokeLinejoin="round"
                  strokeWidth="2"
                  d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
                />
              </svg>
            </span>
          </div>
          <p className="mt-5 text-base font-medium tracking-tight text-white">Writes upside-down</p>
          <p
            className="mt-2 text-sm text-gray-400"
            children={`The Zero Gravity Pen can be used to write in any orientation,
          including upside-down. It even works in outer space.`}
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code word:dark\:bg-gray-800] -->
<!-- prettier-ignore -->
<div class="bg-white dark:bg-gray-800 rounded-lg px-6 py-8 ring shadow-xl ring-gray-900/5">
  <div>
    <span class="inline-flex items-center justify-center rounded-md bg-indigo-500 p-2 shadow-lg">
      <svg
        class="h-6 w-6 text-white"

        fill="none"
        viewBox="0 0 24 24"
        stroke="currentColor"
        aria-hidden="true"
      >
        <!-- ... -->
      </svg>
    </span>
  </div>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-white] -->
  <h3 class="text-gray-900 dark:text-white mt-5 text-base font-medium tracking-tight ">Writes upside-down</h3>
  <!-- prettier-ignore -->
  <!-- [!code word:dark\:text-gray-400] -->
  <p class="text-gray-500 dark:text-gray-400 mt-2 text-sm ">
    The Zero Gravity Pen can be used to write in any orientation, including upside-down. It even works in outer space.
  </p>
</div>
```

Just like with hover states or media queries, the important thing to understand is that a single utility class will never include _both_ the light and dark styles — you style things in dark mode by using multiple classes, one for the light mode styles and another for the dark mode styles.

```css
/* [!code filename: Generated CSS] */
.dark\:bg-gray-800 {
  @media (prefers-color-scheme: dark) {
    background-color: var(--color-gray-800);
  }
}
```

Learn more in the [dark mode](/docs/dark-mode) documentation.

### Using class composition

A lot of the time with Tailwind you'll even use multiple classes to build up the value for a single CSS property, for example adding multiple filters to an element:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:blur-sm,grayscale] -->
<div class="blur-sm grayscale">
  <!-- ... -->
</div>
```

Both of these effects rely on the `filter` property in CSS, so Tailwind uses CSS variables to make it possible to compose these effects together:

```css
/* [!code filename:Generated CSS] */
.blur-sm {
  --tw-blur: blur(var(--blur-sm));
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-grayscale,);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-grayscale,);
}
```

The generated CSS above is slightly simplified, but the trick here is that each utility sets a CSS variable just for the effect it's meant to apply. Then the `filter` property looks at all of these variables, falling back to nothing if the variable hasn't been set.

Tailwind uses this same approach for [gradients](/docs/background-image#adding-a-linear-gradient), [shadow colors](/docs/box-shadow#setting-the-shadow-color), [transforms](/docs/translate), and more.

### Using arbitrary values

Many utilities in Tailwind are driven by [theme variables](/docs/theme), like `bg-blue-500`, `text-xl`, and `shadow-md`, which map to your underlying color palette, type scale, and shadows.

When you need to use a one-off value outside of your theme, use the special square bracket syntax for specifying arbitrary values:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-[#316ff6]] -->
<!-- prettier-ignore -->
<button class="bg-[#316ff6] ...">
  Sign in with Facebook
</button>
```

This can be useful for one-off colors outside of your color palette _(like the Facebook blue above)_, but also when you need a complex custom value like a very specific grid:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:grid-cols-[24rem_2.5rem_minmax(0,1fr)]] -->
<div class="grid grid-cols-[24rem_2.5rem_minmax(0,1fr)]">
  <!-- ... -->
</div>
```

It's also useful when you need to use CSS features like `calc()`, even if you are using your theme values:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:max-h-[calc(100dvh-(--spacing(6)))]] -->
<div class="max-h-[calc(100dvh-(--spacing(6)))]">
  <!-- ... -->
</div>
```

There's even a syntax for generating completely arbitrary CSS including an arbitrary property name, which can be useful for setting CSS variables:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:[--gutter-width:1rem],lg:[--gutter-width:2rem]] -->
<div class="[--gutter-width:1rem] lg:[--gutter-width:2rem]">
  <!-- ... -->
</div>
```

Learn more in the documentation on [using arbitrary values](/docs/adding-custom-styles#using-arbitrary-values).

#### How does this even work?

Tailwind CSS isn't one big static stylesheet like you might be used to with other CSS frameworks — it generates the CSS needed based on the classes you're actually using when you compile your CSS.

It does this by scanning all of the files in your project looking for any symbol that looks like it could be a class name:

```jsx
// [!code filename:Button.jsx]
// [!code word:px-4]
// [!code word:py-2]
// [!code word:rounded-md]
// [!code word:text-base]
// [!code word:px-5]
// [!code word:py-3]
// [!code word:rounded-lg]
// [!code word:text-lg]
// [!code word:font-bold]
  let sizeClasses = {
    md: "px-4 py-2 rounded-md text-base",
    lg: "px-5 py-3 rounded-lg text-lg",
  }[size];

  return (
    <button type="button" className={`font-bold ${sizeClasses}`}>
      {children}
    </button>
  );
}
```

After it's found all of the potential classes, Tailwind generates the CSS for each one and compiles it all into one stylesheet of just the styles you actually need.

Since the CSS is generated based on the class name, Tailwind can recognize classes using arbitrary values like `bg-[#316ff6]` and generate the necessary CSS, even when the value isn't part of your theme.

Learn more about how this works in [detecting classes in source files](/docs/detecting-classes-in-source-files).

### Complex selectors

Sometimes you need to style an element under a combination of conditions, for example in dark mode, at a specific breakpoint, when hovered, and when the element has a specific data attribute.

Here's an example of what that looks like with Tailwind:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:dark:lg:data-current:hover:bg-indigo-600] -->
<button class="dark:lg:data-current:hover:bg-indigo-600 ...">
  <!-- ... -->
</button>
```

```css
/* [!code filename:Simplified CSS] */
@media (prefers-color-scheme: dark) and (width >= 64rem) {
  button[data-current]:hover {
    background-color: var(--color-indigo-600);
  }
}
```

Tailwind also supports things like `group-hover`, which let you style an element when a specific parent is hovered:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:group,group-hover:underline] -->
<a href="#" class="group rounded-lg p-8">
  <!-- ... -->
  <span class="group-hover:underline">Read more…</span>
</a>
```

```css
/* [!code filename:Simplified CSS] */
@media (hover: hover) {
  a:hover span {
    text-decoration-line: underline;
  }
}
```

This `group-*` syntax works with other variants too, like `group-focus`, `group-active`, and [many more](/docs/hover-focus-and-other-states#styling-based-on-parent-state).

For really complex scenarios _(especially when styling HTML you don't control)_, Tailwind supports [arbitrary variants](/docs/adding-custom-styles#arbitrary-variants) which let you write any selector you want, directly in a class name:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:[&>[data-active]+span]:text-blue-600] -->
<div class="[&>[data-active]+span]:text-blue-600 ...">
  <span data-active><!-- ... --></span>
  <!-- [!code highlight:2] -->
  <span>This text will be blue</span>
</div>
```

```css
/* [!code filename:Simplified CSS] */
div > [data-active] + span {
  color: var(--color-blue-600);
}
```

### When to use inline styles

Inline styles are still very useful in Tailwind CSS projects, particularly when a value is coming from a dynamic source like a database or API:

```jsx
// [!code filename:branded-button.jsx]
  return (
    <button
      style={{
        // [!code highlight:3]
        backgroundColor: buttonColor,
        color: textColor,
      }}
      className="rounded-md px-3 py-1.5 font-medium"
    >
      {children}
    </button>
  );
}
```

You might also reach for an inline style for very complicated arbitrary values that are difficult to read when formatted as a class name:

```html
<!-- [!code filename:HTML] -->
<!-- prettier-ignore -->
<div class="grid-[2fr_max(0,var(--gutter-width))_calc(var(--gutter-width)+10px)]"> <!-- [!code --] -->
<!-- prettier-ignore -->
<div style="grid-template-columns: 2fr max(0, var(--gutter-width)) calc(var(--gutter-width) + 10px)"> <!-- [!code ++] -->
  <!-- ... -->
</div>
```

Another useful pattern is setting CSS variables based on dynamic sources using inline styles, then referencing those variables with utility classes:

```jsx
// [!code filename:branded-button.jsx]
  return (
    <button
      style={{
        // [!code highlight:4]
        "--bg-color": buttonColor,
        "--bg-color-hover": buttonColorHover,
        "--text-color": textColor,
      }}
      // [!code classes:bg-(--bg-color),text-(--text-color),hover:bg-(--bg-color-hover)]
      className="bg-(--bg-color) text-(--text-color) hover:bg-(--bg-color-hover) ..."
    >
      {children}
    </button>
  );
}
```

## Managing duplication

When you build entire projects with just utility classes, you'll inevitably find yourself repeating certain patterns to recreate the same design in different places.

For example, here the utility classes for each avatar image are repeated five separate times:

  <div className="bg-white">
    <div className="mx-auto w-72 px-8 py-6 sm:w-96 sm:px-12 sm:py-8">
      <div className="flex items-center space-x-2 text-base">
        <h4 className="text-base font-semibold text-slate-900">Contributors</h4>
        <span className="rounded-full bg-slate-100 px-2 py-1 text-xs font-semibold text-slate-700">204</span>
      </div>
      <div className="mt-3 flex -space-x-2 overflow-hidden">
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1517365830460-955ce3ccd263?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
      </div>
      <div className="mt-3 text-sm font-medium">
        <a href="#" className="text-blue-500">
          + 198 others
        </a>
      </div>
    </div>
  </div>

```html
<!-- [!code classes:inline-block,h-12,w-12,rounded-full,ring-2,ring-white] -->
<div>
  <div class="flex items-center space-x-2 text-base">
    <h4 class="font-semibold text-slate-900">Contributors</h4>
    <span class="bg-slate-100 px-2 py-1 text-xs font-semibold text-slate-700 ...">204</span>
  </div>
  <div class="mt-3 flex -space-x-2 overflow-hidden">
    <!-- prettier-ignore -->
    <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
    <!-- prettier-ignore -->
    <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
    <!-- prettier-ignore -->
    <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80" alt="" />
    <!-- prettier-ignore -->
    <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
    <!-- prettier-ignore -->
    <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src="https://images.unsplash.com/photo-1517365830460-955ce3ccd263?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
  </div>
  <div class="mt-3 text-sm font-medium">
    <a href="#" class="text-blue-500">+ 198 others</a>
  </div>
</div>
```

Don't panic! In practice this isn't the problem you might be worried it is, and the strategies for dealing with it are things you already do every day.

### Using loops

A lot of the time a design element that shows up more than once in the rendered page is only actually authored once because the actual markup is rendered in a loop.

For example, the duplicate avatars at the beginning of this guide would almost certainly be rendered in a loop in a real project:

  <div className="bg-white">
    <div className="mx-auto w-72 px-8 py-6 sm:w-96 sm:px-12 sm:py-8">
      <div className="flex items-center space-x-2 text-base">
        <h4 className="text-base font-semibold text-slate-900">Contributors</h4>
        <span className="rounded-full bg-slate-100 px-2 py-1 text-xs font-semibold text-slate-700">204</span>
      </div>
      <div className="mt-3 flex -space-x-2 overflow-hidden">
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
        <img
          className="inline-block h-12 w-12 rounded-full ring-2 ring-white"
          src="https://images.unsplash.com/photo-1517365830460-955ce3ccd263?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
          alt=""
        />
      </div>
      <div className="mt-3 text-sm font-medium">
        <a href="#" className="text-blue-500">
          + 198 others
        </a>
      </div>
    </div>
  </div>

```svelte
<div>
  <div class="flex items-center space-x-2 text-base">
    <h4 class="font-semibold text-slate-900">Contributors</h4>
    <span class="bg-slate-100 px-2 py-1 text-xs font-semibold text-slate-700 ...">204</span>
  </div>
  <div class="mt-3 flex -space-x-2 overflow-hidden">
    <!-- prettier-ignore -->
    <!-- [!code highlight:4] -->
    {#each contributors as user}
      <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white" src={user.avatarUrl} alt={user.handle} />
    {/each}
  </div>
  <div class="mt-3 text-sm font-medium">
    <a href="#" class="text-blue-500">+ 198 others</a>
  </div>
</div>
```

When elements are rendered in a loop like this, the actual class list is only written once so there's no actual duplication problem to solve.

### Using multi-cursor editing

When duplication is localized to a group of elements in a single file, the easiest way to deal with it is to use [multi-cursor editing](https://code.visualstudio.com/docs/editor/codebasics#_multiple-selections-multicursor) to quickly select and edit the class list for each element at once:

  
    
      
    
    
      
    
  

You'd be surprised at how often this ends up being the best solution. If you can quickly edit all of the duplicated class lists simultaneously, there's no benefit to introducing any additional abstraction.

### Using components

If you need to reuse some styles across multiple files, the best strategy is to create a _component_ if you're using a front-end framework like React, Svelte, or Vue, or a _template partial_ if you're using a templating language like Blade, ERB, Twig, or Nunjucks.

<div className="bg-white">
  <div className="mx-auto w-72 bg-white px-8 py-6  sm:w-96 sm:px-12 sm:py-8">
    <div>
      <img
        className="rounded-lg"
        src="https://images.unsplash.com/photo-1452784444945-3f422708fe5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80"
        width="512"
        height="341"
        alt="Beach"
      />
      <div className="mt-4">
          <div className="text-xs font-bold text-sky-500">Private Villa</div>
          <div className="mt-1 font-bold text-gray-700">
            <a href="#" className="hover:underline">Relaxing All-Inclusive Resort in Cancun</a>
          </div>
          <div className="mt-2 text-sm text-gray-600">$299 USD per night</div>
      </div>
    </div>
  </div>
</div>

```jsx {{ filename: 'VacationCard.jsx' }}
  return (
    <div>
      <img className="rounded-lg" src={img} alt={imgAlt} />
      <div className="mt-4">
        <div className="text-xs font-bold text-sky-500">{eyebrow}</div>
        <div className="mt-1 font-bold text-gray-700">
          <a href={url} className="hover:underline">
            {title}
          </a>
        </div>
        <div className="mt-2 text-sm text-gray-600">{pricing}</div>
      </div>
    </div>
  );
}
```

Now you can use this component in as many places as you like, while still having a single source of truth for the styles so they can easily be updated together in one place.

### Using custom CSS

If you're using a templating language like ERB or Twig instead of something like React or Vue, creating a template partial for something as small as a button can feel like overkill compared to a simple CSS class like `btn`.

While it's highly recommended that you create proper template partials for more complex components, writing some custom CSS is totally fine when a template partial feels heavy-handed.

Here's what a `btn-primary` class might look like, using [theme variables](/docs/theme#with-custom-css) to keep the design consistent:

<div className="text-center">
  <button
    type="button"
    className="rounded-full bg-violet-500 px-5 py-2 font-semibold text-white shadow-md hover:bg-violet-700"
  >
    Save changes
  </button>
</div>

```html
<!-- [!code filename:HTML] -->
<button class="btn-primary">Save changes</button>
```

```css
/* [!code filename:CSS] */
@import "tailwindcss";

@layer components {
  .btn-primary {
    border-radius: calc(infinity * 1px);
    background-color: var(--color-violet-500);
    padding-inline: --spacing(5);
    padding-block: --spacing(2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-white);
    box-shadow: var(--shadow-md);
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-violet-700);
      }
    }
  }
}
```

Again though, for anything that's more complicated than just a single HTML element, we highly recommend using template partials so the styles and structure can be encapsulated in one place.

## Managing style conflicts

### Conflicting utility classes

When you add two classes that target the same CSS property, the class that appears later in the stylesheet wins. So in this example, the element will receive `display: grid` even though `flex` comes last in the actual `class` attribute:

```html
<!-- [!code filename:HTML] -->
<!-- prettier-ignore -->
<div class="grid flex">
  <!-- ... -->
</div>
```

```css
/* [!code filename: CSS] */
.flex {
  display: flex;
}
.grid {
  display: grid;
}
```

In general, you should just never add two conflicting classes to the same element — only ever add the one you actually want to take effect:

```jsx
// [!code filename:example.jsx]
// [!code word:gridLayout\ \?\ \"grid\"\ \:\ \"flex\"]
  return <div className={gridLayout ? "grid" : "flex"}>{/* ... */}</div>;
}
```

Using component-based libraries like React or Vue, this often means exposing specific props for styling customizations instead of letting consumers add extra classes from outside of a component, since those styles will often conflict.

### Using the important modifier

When you really need to force a specific utility class to take effect and have no other means of managing the specificity, you can add `!` to the end of the class name to make all of the declarations `!important`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:bg-red-500!] -->
<!-- prettier-ignore -->
<div class="bg-teal-500 bg-red-500!">
  <!-- ... -->
</div>
```

```css
/* [!code filename: Generated CSS] */
/* [!code word:!important] */
.bg-red-500\! {
  background-color: var(--color-red-500) !important;
}
.bg-teal-500 {
  background-color: var(--color-teal-500);
}
```

### Using the important flag

If you're adding Tailwind to a project that has existing complex CSS with high specificity rules, you can use the `important` flag when importing Tailwind to mark _all_ utilities as `!important`:

```css
/* [!code filename:app.css] */
/* [!code word:important] */
@import "tailwindcss" important;
```

```css
/* [!code filename:Compiled CSS] */
/* [!code word:!important] */
@layer utilities {
  .flex {
    display: flex !important;
  }
  .gap-4 {
    gap: 1rem !important;
  }
  .underline {
    text-decoration-line: underline !important;
  }
}
```

### Using the prefix option

If your project has class names that conflict with Tailwind CSS utilities, you can prefix all Tailwind-generated classes and CSS variables using the `prefix` option:

```css
/* [!code filename:app.css] */
/* [!code word:important] */
@import "tailwindcss" prefix(tw);
```

```css
/* [!code filename:Compiled CSS] */
/* [!code word:tw\:] */
@layer theme {
  :root {
    --tw-color-red-500: oklch(0.637 0.237 25.331);
  }
}

@layer utilities {
  .tw\:text-red-500 {
    color: var(--tw-color-red-500);
  }
}
```


---

# tab-size

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/tab-size*

| Clase | Propiedades CSS |
| :--- | :--- |
| `tab-<number>` | `tab-size: <number>;` |
| `tab-(<custom-property>)` | `tab-size: var(<custom-property>);` |
| `tab-[<value>]` | `tab-size: <value>;` |

## Examples

### Basic example

Use `tab-<number>` utilities like `tab-2` and `tab-8` to control the size of tab characters:

  <div className="grid gap-6 sm:grid-cols-2">
    <div className="tab-2">
      <span className="mb-3 block font-mono text-xs font-medium text-gray-500 dark:text-gray-400">tab-2</span>

{/* prettier-ignore */}
```jsx
function indent() {
	return 'tabbed';
}
```

    </div>
    <div className="tab-8">
      <span className="mb-3 block font-mono text-xs font-medium text-gray-500 dark:text-gray-400">tab-8</span>

{/* prettier-ignore */}
```jsx
function indent() {
	return 'tabbed';
}
```

    </div>

  </div>

```html
<!-- [!code classes:tab-2,tab-8] -->
<pre class="tab-2 ...">function indent() {&#10;&#9;return 'tabbed'&#10;}</pre>
<pre class="tab-8 ...">function indent() {&#10;&#9;return 'tabbed'&#10;}</pre>
```

### Using a custom value

### Responsive design


---

# table-layout

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/table-layout*

| Clase | Propiedades CSS |
| :--- | :--- |
| `table-auto` | `table-layout: auto;` |
| `table-fixed` | `table-layout: fixed;` |

## Examples

### Sizing columns automatically

Use the `table-auto` utility to automatically size table columns to fit the contents of its cells:

  {
    <div className="my-8 overflow-hidden">
      <table className="w-full table-auto border-collapse text-sm">
        <thead>
          <tr>
            <th className="border-b border-gray-200 p-4 pt-0 pb-3 pl-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Song
            </th>
            <th className="border-b border-gray-200 p-4 pt-0 pb-3 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Artist
            </th>
            <th className="border-b border-gray-200 p-4 pt-0 pr-8 pb-3 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Year
            </th>
          </tr>
        </thead>
        <tbody className="bg-white dark:bg-gray-800">
          <tr>
            <td className="border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              The Sliding Mr. Bones (Next Stop, Pottersville)
            </td>
            <td className="border-b border-gray-100 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Malcolm Lockyer
            </td>
            <td className="border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              1961
            </td>
          </tr>
          <tr>
            <td className="border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Witchy Woman
            </td>
            <td className="border-b border-gray-100 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              The Eagles
            </td>
            <td className="border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              1972
            </td>
          </tr>
          <tr>
            <td className="border-b border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Shining Star
            </td>
            <td className="border-b border-gray-200 p-4 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Earth, Wind, and Fire
            </td>
            <td className="border-b border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              1975
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:table-auto] -->
<table class="table-auto">
  <thead>
    <tr>
      <th>Song</th>
      <th>Artist</th>
      <th>Year</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>The Sliding Mr. Bones (Next Stop, Pottersville)</td>
      <td>Malcolm Lockyer</td>
      <td>1961</td>
    </tr>
    <tr>
      <td>Witchy Woman</td>
      <td>The Eagles</td>
      <td>1972</td>
    </tr>
    <tr>
      <td>Shining Star</td>
      <td>Earth, Wind, and Fire</td>
      <td>1975</td>
    </tr>
  </tbody>
</table>
```

### Using fixed column widths

Use the `table-fixed` utility to ignore the content of the table cells and use fixed widths for each column:

  {
    <div className="my-8 overflow-hidden">
      <table className="w-full table-fixed border-collapse text-sm">
        <thead>
          <tr>
            <th className="border-b border-gray-200 p-4 pt-0 pb-3 pl-8 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Song
            </th>
            <th className="border-b border-gray-200 p-4 pt-0 pb-3 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Artist
            </th>
            <th className="border-b border-gray-200 p-4 pt-0 pr-8 pb-3 text-left font-medium text-gray-400 dark:border-gray-600 dark:text-gray-200">
              Year
            </th>
          </tr>
        </thead>
        <tbody className="bg-white dark:bg-gray-800">
          <tr>
            <td className="border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              The Sliding Mr. Bones (Next Stop, Pottersville)
            </td>
            <td className="border-b border-gray-100 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Malcolm Lockyer
            </td>
            <td className="border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              1961
            </td>
          </tr>
          <tr>
            <td className="border-b border-gray-100 p-4 pl-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              Witchy Woman
            </td>
            <td className="border-b border-gray-100 p-4 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              The Eagles
            </td>
            <td className="border-b border-gray-100 p-4 pr-8 text-gray-500 dark:border-gray-700 dark:text-gray-400">
              1972
            </td>
          </tr>
          <tr>
            <td className="border-b border-gray-200 p-4 pl-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Shining Star
            </td>
            <td className="border-b border-gray-200 p-4 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              Earth, Wind, and Fire
            </td>
            <td className="border-b border-gray-200 p-4 pr-8 text-gray-500 dark:border-gray-600 dark:text-gray-400">
              1975
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:table-fixed] -->
<table class="table-fixed">
  <thead>
    <tr>
      <th>Song</th>
      <th>Artist</th>
      <th>Year</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>The Sliding Mr. Bones (Next Stop, Pottersville)</td>
      <td>Malcolm Lockyer</td>
      <td>1961</td>
    </tr>
    <tr>
      <td>Witchy Woman</td>
      <td>The Eagles</td>
      <td>1972</td>
    </tr>
    <tr>
      <td>Shining Star</td>
      <td>Earth, Wind, and Fire</td>
      <td>1975</td>
    </tr>
  </tbody>
</table>
```

You can manually set the widths for some columns and the rest of the available width will be divided evenly amongst columns without an explicit width. The widths set in the first row will set the column width for the whole table.

### Responsive design


---

# text-align

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-align*

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-left` | `text-align: left;` |
| `text-center` | `text-align: center;` |
| `text-right` | `text-align: right;` |
| `text-justify` | `text-align: justify;` |
| `text-start` | `text-align: start;` |
| `text-end` | `text-align: end;` |

## Examples

### Left aligning text

Use the `text-left` utility to left align the text of an element:

  {
    <div className="px-4 sm:px-0">
      <div className="mx-auto max-w-lg p-8 text-sm/6 text-gray-900 dark:text-gray-200">
        <p className="text-left">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-left] -->
<p class="text-left">So I started to walk into the water...</p>
```

### Right aligning text

Use the `text-right` utility to right align the text of an element:

  {
    <div className="px-4 sm:px-0">
      <div className="mx-auto max-w-lg p-8 text-sm/6 text-gray-900 dark:text-gray-200">
        <p className="text-right">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-right] -->
<p class="text-right">So I started to walk into the water...</p>
```

### Centering text

Use the `text-center` utility to center the text of an element:

  {
    <div className="px-4 sm:px-0">
      <div className="mx-auto max-w-lg p-8 text-sm/6 text-gray-900 dark:text-gray-200">
        <p className="text-center">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-center] -->
<p class="text-center">So I started to walk into the water...</p>
```

### Justifying text

Use the `text-justify` utility to justify the text of an element:

  {
    <div className="px-4 sm:px-0">
      <div className="mx-auto max-w-lg p-8 text-sm/6 text-gray-900 dark:text-gray-200">
        <p className="text-justify">
          So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made
          my way past the breakers a strange calm came over me. I don't know if it was divine intervention or the
          kinship of all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-justify] -->
<p class="text-justify">So I started to walk into the water...</p>
```

### Using logical properties

Use the `text-start` and `text-end` utilities, which use [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts) to map to either the left or right side based on the text direction:

  {
    <div className="px-4 sm:px-0" dir="rtl" lang="ar">
      <div className="mx-auto max-w-lg p-8 text-sm/6 text-gray-900 dark:text-gray-200">
        <p className="text-end">
          بدأتُ أسير نحو الماء. لن أكذب عليكم يا رفاق، كنتُ مرعوبًا. لكنني واصلتُ المسير، وبينما كنتُ أشق طريقي عبر
          الأمواج، غمرني هدوءٌ غريب. لا أعلم إن كان ذلك تدخّلًا إلهيًا أم صلة قرابة بين جميع الكائنات الحية، لكنني أقول
          لك يا جيري، في تلك اللحظة، كنتُ عالم أحياء بحرية.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:text-end] -->
<div dir="rtl" lang="ar">
  <p class="text-end">فبدأت بالسير نحو الماء...</p>
</div>
```

### Responsive design


---

# text-decoration-color

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-decoration-color*

CustomizingYourThemeColors,
  ResponsiveDesign,
  TargetingSpecificStates,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `decoration-inherit` | `text-decoration-color: inherit;` |
| `decoration-current` | `text-decoration-color: currentColor;` |
| `decoration-transparent` | `text-decoration-color: transparent;` |
| `decoration-(<custom-property>)` | `text-decoration-color: var(<custom-property>);` |
| `decoration-[<value>]` | `text-decoration-color: <value>;` |

## Examples

### Basic example

Use utilities like `decoration-sky-500` and `decoration-pink-500` to change the [text decoration](/docs/text-decoration-line) color of an element:

  {
    <p className="mx-auto max-w-sm gap-4 p-8 text-sm/6 text-gray-900 dark:text-gray-200">
      I’m Derek, an astro-engineer based in Tattooine. I like to build X-Wings at{" "}
      <a href="#" className="font-bold underline decoration-sky-500 decoration-2 dark:text-gray-200">
        My Company, Inc
      </a>
      . Outside of work, I like to{" "}
      <a href="#" className="font-bold underline decoration-pink-500 decoration-2 dark:text-gray-200">
        watch pod-racing
      </a>{" "}
      and have{" "}
      <a href="#" className="font-bold underline decoration-indigo-500 decoration-2 dark:text-gray-200">
        light-saber
      </a>{" "}
      fights.
    </p>
  }

```html
<!-- [!code classes:decoration-sky-500,decoration-pink-500,decoration-indigo-500] -->
<!-- prettier-ignore -->
<p>
  I’m Derek, an astro-engineer based in Tattooine. I like to build X-Wings
  at <a class="underline decoration-sky-500">My Company, Inc</a>. Outside
  of work, I like to <a class="underline decoration-pink-500">watch pod-racing</a>
  and have <a class="underline decoration-indigo-500">light-saber</a> fights.
</p>
```

### Changing the opacity

Use the color opacity modifier to control the text decoration color opacity of an element:

  {
    <p className="mx-auto max-w-sm gap-4 p-8 text-sm/6 text-gray-900 dark:text-gray-200">
      I’m Derek, an astro-engineer based in Tattooine. I like to build X-Wings at{" "}
      <a href="#" className="font-bold underline decoration-sky-500/30 decoration-2 dark:text-gray-200">
        My Company, Inc
      </a>
      . Outside of work, I like to{" "}
      <a href="#" className="font-bold underline decoration-pink-500/30 decoration-2 dark:text-gray-200">
        watch pod-racing
      </a>{" "}
      and have{" "}
      <a href="#" className="font-bold underline decoration-indigo-500/30 decoration-2 dark:text-gray-200">
        light-saber
      </a>{" "}
      fights.
    </p>
  }

```html
<!-- [!code word:\/30] -->
<!-- prettier-ignore -->
<p>
  I’m Derek, an astro-engineer based in Tattooine. I like to build X-Wings
  at <a class="underline decoration-sky-500/30">My Company, Inc</a>. Outside
  of work, I like to <a class="underline decoration-pink-500/30">watch pod-racing</a>
  and have <a class="underline decoration-indigo-500/30">light-saber</a> fights.
</p>
```

### Using a custom value

### Applying on hover

  {
    <div className="text-center text-lg font-medium text-gray-900 no-underline dark:text-gray-200">
      The{" "}
      <a
        href="https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog"
        target="blank"
        className="underline hover:decoration-pink-500"
      >
        quick brown fox
      </a>{" "}
      jumps over the lazy dog.
    </div>
  }

```html
<!-- [!code classes:hover:decoration-pink-500] -->
<p>The <a href="..." class="underline hover:decoration-pink-500 ...">quick brown fox</a> jumps over the lazy dog.</p>
```

### Responsive design

## Customizing your theme


---

# text-decoration-line

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-decoration-line*

| Clase | Propiedades CSS |
| :--- | :--- |
| `underline` | `text-decoration-line: underline;` |
| `overline` | `text-decoration-line: overline;` |
| `line-through` | `text-decoration-line: line-through;` |
| `no-underline` | `text-decoration-line: none;` |

## Examples

### Underling text

Use the `underline` utility to add an underline to the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 underline dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:underline] -->
<p class="underline">The quick brown fox...</p>
```

### Adding an overline to text

Use the `overline` utility to add an overline to the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 overline dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:overline] -->
<p class="overline">The quick brown fox...</p>
```

### Adding a line through text

Use the `line-through` utility to add a line through the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 line-through dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:line-through] -->
<p class="line-through">The quick brown fox...</p>
```

### Removing a line from text

Use the `no-underline` utility to remove a line from the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 no-underline dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:no-underline] -->
<p class="no-underline">The quick brown fox...</p>
```

### Applying on hover

  {
    <div className="text-center text-lg font-medium text-gray-900 no-underline dark:text-gray-200">
      The{" "}
      <a
        href="https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog"
        target="blank"
        className="text-sky-600 no-underline hover:underline dark:text-sky-400"
      >
        quick brown fox
      </a>{" "}
      jumps over the lazy dog.
    </div>
  }

```html
<!-- [!code classes:hover:underline] -->
<p>The <a href="..." class="no-underline hover:underline ...">quick brown fox</a> jumps over the lazy dog.</p>
```

### Responsive design


---

# text-decoration-style

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-decoration-style*

| Clase | Propiedades CSS |
| :--- | :--- |
| `decoration-solid` | `text-decoration-style: solid;` |
| `decoration-double` | `text-decoration-style: double;` |
| `decoration-dotted` | `text-decoration-style: dotted;` |
| `decoration-dashed` | `text-decoration-style: dashed;` |
| `decoration-wavy` | `text-decoration-style: wavy;` |

## Examples

### Basic example

Use utilities like `decoration-dotted` and `decoration-dashed` to change the [text decoration](/docs/text-decoration-line) style of an element:

  {
    <div className="flex flex-col gap-8 text-gray-900 dark:text-gray-200">
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-solid</div>
        <p className="text-lg font-medium underline decoration-solid">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-double</div>
        <p
          className="text-lg font-medium underline decoration-double"
          children="The quick brown fox jumps over the lazy dog."
        />
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-dotted</div>
        <p className="text-lg font-medium underline decoration-dotted">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-dashed</div>
        <p className="text-lg font-medium underline decoration-dashed">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-wavy</div>
        <p className="text-lg font-medium underline decoration-wavy">The quick brown fox jumps over the lazy dog.</p>
      </div>
    </div>
  }

```html
<!-- [!code classes:decoration-solid,decoration-double,decoration-dotted,decoration-dashed,decoration-wavy] -->
<p class="underline decoration-solid">The quick brown fox...</p>
<p class="underline decoration-double">The quick brown fox...</p>
<p class="underline decoration-dotted">The quick brown fox...</p>
<p class="underline decoration-dashed">The quick brown fox...</p>
<p class="underline decoration-wavy">The quick brown fox...</p>
```

### Responsive design


---

# text-decoration-thickness

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-decoration-thickness*

| Clase | Propiedades CSS |
| :--- | :--- |
| `decoration-<number>` | `text-decoration-thickness: <number>px;` |
| `decoration-from-font` | `text-decoration-thickness: from-font;` |
| `decoration-auto` | `text-decoration-thickness: auto;` |
| `decoration-(length:<custom-property>)` | `text-decoration-thickness: var(<custom-property>);` |
| `decoration-[<value>]` | `text-decoration-thickness: <value>;` |

## Examples

### Basic example

Use `decoration-<number>` utilities like `decoration-2` and `decoration-4` to change the [text decoration](/docs/text-decoration-line) thickness of an element:

  {
    <div className="flex flex-col gap-8 text-gray-900 dark:text-gray-200">
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-1</div>
        <p className="text-lg font-medium underline decoration-1">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-2</div>
        <p className="text-lg font-medium underline decoration-2">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">decoration-4</div>
        <p className="text-lg font-medium underline decoration-4">The quick brown fox jumps over the lazy dog.</p>
      </div>
    </div>
  }

```html
<!-- [!code classes:decoration-1] -->
<p class="underline decoration-1">The quick brown fox...</p>
<!-- [!code classes:decoration-2] -->
<p class="underline decoration-2">The quick brown fox...</p>
<!-- [!code classes:decoration-4] -->
<p class="underline decoration-4">The quick brown fox...</p>
```

### Using a custom value

### Responsive design


---

# text-indent

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-indent*

| Clase | Propiedades CSS |
| :--- | :--- |
| `indent-<number>` | `text-indent: calc(var(--spacing) * <number>);` |
| `-indent-<number>` | `text-indent: calc(var(--spacing) * -<number>);` |
| `indent-px` | `text-indent: 1px;` |
| `-indent-px` | `text-indent: -1px;` |
| `indent-(<custom-property>)` | `text-indent: var(<custom-property>);` |
| `indent-[<value>]` | `text-indent: <value>;` |

## Examples

### Basic example

Use `indent-<number>` utilities like `indent-2` and `indent-8` to set the amount of empty space (indentation) that's shown before text in a block:

  {
    <p className="mx-auto max-w-sm indent-8 text-gray-900 dark:text-gray-200">
      So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my
      way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of
      all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
    </p>
  }

```html
<!-- [!code classes:indent-8] -->
<p class="indent-8">So I started to walk into the water...</p>
```

### Using negative values

To use a negative text indent value, prefix the class name with a dash to convert it to a negative value:

  {
    <p className="mx-auto max-w-sm -indent-8 text-gray-900 dark:text-gray-200">
      So I started to walk into the water. I won't lie to you boys, I was terrified. But I pressed on, and as I made my
      way past the breakers a strange calm came over me. I don't know if it was divine intervention or the kinship of
      all living things but I tell you Jerry at that moment, I <em>was</em> a marine biologist.
    </p>
  }

```html
<!-- [!code classes:-indent-8] -->
<p class="-indent-8">So I started to walk into the water...</p>
```

### Using a custom value

### Responsive design


---

# text-overflow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-overflow*

| Clase | Propiedades CSS |
| :--- | :--- |
| `truncate` | `overflow: hidden;         text-overflow: ellipsis;         white-space: nowrap;` |
| `text-ellipsis` | `text-overflow: ellipsis;` |
| `text-clip` | `text-overflow: clip;` |

## Examples

### Truncating text

Use the `truncate` utility to prevent text from wrapping and truncate overflowing text with an ellipsis (…) if needed:

  {
    <p className="mx-auto max-w-xs truncate border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:truncate] -->
<p class="truncate">The longest word in any of the major...</p>
```

### Adding an ellipsis

Use the `text-ellipsis` utility to truncate overflowing text with an ellipsis (…) if needed:

  {
    <p className="mx-auto max-w-xs overflow-hidden border-x border-x-pink-400/30 py-8 text-ellipsis text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:text-ellipsis] -->
<p class="overflow-hidden text-ellipsis">The longest word in any of the major...</p>
```

### Clipping text

Use the `text-clip` utility to truncate the text at the limit of the content area:

  {
    <p className="mx-auto max-w-xs overflow-hidden border-x border-x-pink-400/30 py-8 text-clip text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:text-clip] -->
<p class="overflow-hidden text-clip">The longest word in any of the major...</p>
```

This is the default browser behavior.

### Responsive design


---

# text-shadow

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-shadow*

CustomizingYourTheme,
  CustomizingYourThemeColors,
  ResponsiveDesign,
  UsingACustomValue,
} from "@/components/content.tsx";

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-shadow-2xs` | `text-shadow: var(--text-shadow-2xs); /* 0px 1px 0px rgb(0 0 0 / 0.15) */` |
| `text-shadow-xs` | `text-shadow: var(--text-shadow-xs); /* 0px 1px 1px rgb(0 0 0 / 0.2) */` |
| `text-shadow-sm` | `text-shadow: var(--text-shadow-sm); /* 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075) */` |
| `text-shadow-md` | `text-shadow: var(--text-shadow-md); /* 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1) */` |
| `text-shadow-lg` | `text-shadow: var(--text-shadow-lg); /* 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1) */` |
| `text-shadow-none` | `text-shadow: none;` |
| `text-shadow-(<custom-property>)` | `text-shadow: var(<custom-property>);` |
| `text-shadow-(color:<custom-property>)` | `--tw-shadow-color var(<custom-property>);` |
| `text-shadow-[<value>]` | `text-shadow: <value>;` |
| `text-shadow-inherit` | `--tw-shadow-color inherit;` |
| `text-shadow-current` | `--tw-shadow-color currentColor;` |
| `text-shadow-transparent` | `--tw-shadow-color transparent;` |

## Examples

### Basic example

Use utilities like `text-shadow-sm` and `shadow-lg` to apply different sized text shadows to a text element:

  {
    <div className="relative grid items-center justify-around gap-4 bg-linear-45 from-indigo-400 via-purple-500 to-pink-500 px-6 py-14 text-center text-2xl font-semibold text-white">
      <p className="relative text-shadow-2xs">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-xs">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-sm">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-md">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-lg">The quick brown fox jumps over the lazy dog.</p>
    </div>
  }

```html
<!-- [!code classes:text-shadow-2xs,text-shadow-xs,text-shadow-sm,text-shadow-md,text-shadow-lg,text-shadow-xl] -->
<p class="text-shadow-2xs ...">The quick brown fox...</p>
<p class="text-shadow-xs ...">The quick brown fox...</p>
<p class="text-shadow-sm ...">The quick brown fox...</p>
<p class="text-shadow-md ...">The quick brown fox...</p>
<p class="text-shadow-lg ...">The quick brown fox...</p>
```

### Changing the opacity

Use the opacity modifier to adjust the opacity of the text shadow:

  {
    <div className="relative grid items-center justify-around gap-4 bg-linear-45 from-indigo-400 via-sky-400 to-emerald-400 px-6 py-14 text-center text-2xl font-semibold text-white">
      <p className="relative text-shadow-lg">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-lg/20">The quick brown fox jumps over the lazy dog.</p>
      <p className="relative text-shadow-lg/30">The quick brown fox jumps over the lazy dog.</p>
    </div>
  }

```html
<!-- [!code classes:text-shadow-lg/20,text-shadow-lg/30] -->
<p class="text-shadow-lg ...">The quick brown fox...</p>
<p class="text-shadow-lg/20 ...">The quick brown fox...</p>
<p class="text-shadow-lg/30 ...">The quick brown fox...</p>
```

The default text shadow opacities are quite low (20% or less), so increasing the opacity (to like 50%) will make the text shadows more pronounced.

### Setting the shadow color

Use utilities like `text-shadow-indigo-500` and `text-shadow-cyan-500/50` to change the color of a text shadow:

  {
    <div className="relative grid h-48 place-items-center">
      <div className="-mr-10 flex gap-4 max-sm:-mr-32">
        <button className="relative rounded-full bg-linear-to-b from-sky-300 to-sky-400 to-70% px-4 py-2 text-sm font-semibold text-sky-950 shadow-md ring inset-shadow-2xs ring-sky-500 inset-shadow-white/20 text-shadow-2xs text-shadow-sky-300 dark:ring-sky-500/50">
          Book a demo
          <div className="absolute top-1/2 -left-6/5 size-42 -translate-y-1/2 overflow-hidden rounded-full bg-white/20 p-2 shadow-lg ring-2 ring-black/5 backdrop-blur-sm dark:ring-black/10">
            <div className="grid size-full items-center overflow-hidden rounded-full bg-linear-to-b from-sky-300 to-sky-400 to-50% px-5 pb-2 text-[70px] font-semibold whitespace-nowrap text-sky-900 inset-ring-2 inset-ring-black/10 text-shadow-[0px_5px_0px_var(--tw-text-shadow-color)] text-shadow-sky-300">
              Book a demo
            </div>
          </div>
        </button>
        <button className="relative rounded-full bg-linear-to-b from-white/10 to-white/20 to-70% px-4 py-2 text-sm font-semibold text-gray-950 shadow-md ring inset-shadow-2xs ring-black/20 inset-shadow-white/10 dark:text-white dark:text-shadow-2xs">
          See pricing
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-shadow-sky-300] -->
<button class="text-sky-950 text-shadow-2xs text-shadow-sky-300 ...">Book a demo</button>
<button class="text-gray-950 dark:text-white dark:text-shadow-2xs ...">See pricing</button>
```

By default colored shadows have an opacity of 100% but you can adjust this using the opacity modifier.

### Removing a text shadow

Use the `text-shadow-none` utility to remove an existing text shadow from an element:

```html
<!-- [!code classes:dark:text-shadow-none] -->
<p class="text-shadow-lg dark:text-shadow-none">
  <!-- ... -->
</p>
```

### Using a custom value

### Responsive design

## Customizing your theme

### Customizing text shadows

### Customizing shadow colors


---

# text-transform

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-transform*

| Clase | Propiedades CSS |
| :--- | :--- |
| `uppercase` | `text-transform: uppercase;` |
| `lowercase` | `text-transform: lowercase;` |
| `capitalize` | `text-transform: capitalize;` |
| `normal-case` | `text-transform: none;` |

## Examples

### Uppercasing text

Use the `uppercase` utility to uppercase the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 uppercase dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:uppercase] -->
<p class="uppercase">The quick brown fox ...</p>
```

### Lowercasing text

Use the `lowercase` utility to lowercase the text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 lowercase dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:lowercase] -->
<p class="lowercase">The quick brown fox ...</p>
```

### Capitalizing text

Use the `capitalize` utility to capitalize text of an element:

  {
    <p className="text-center text-lg font-medium text-gray-900 capitalize dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:capitalize] -->
<p class="capitalize">The quick brown fox ...</p>
```

### Resetting text casing

Use the `normal-case` utility to preserve the original text casing of an element—typically used to reset capitalization at different breakpoints:

  {
    <p className="text-center text-lg font-medium text-gray-900 normal-case dark:text-gray-200">
      The quick brown fox jumps over the lazy dog.
    </p>
  }

```html
<!-- [!code classes:normal-case] -->
<p class="normal-case">The quick brown fox ...</p>
```

### Responsive design


---

# text-underline-offset

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-underline-offset*

| Clase | Propiedades CSS |
| :--- | :--- |
| `underline-offset-<number>` | `text-underline-offset: <number>px;` |
| `-underline-offset-<number>` | `text-underline-offset: calc(<number>px * -1);` |
| `underline-offset-auto` | `text-underline-offset: auto;` |
| `underline-offset-(<custom-property>)` | `text-underline-offset: var(<custom-property>);` |
| `underline-offset-[<value>]` | `text-underline-offset: <value>;` |

## Examples

### Basic example

Use `underline-offset-<number>` utilities like `underline-offset-2` and `underline-offset-4` to change the offset of a text underline:

  {
    <div className="flex flex-col gap-8 text-gray-900 dark:text-gray-200">
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">underline-offset-1</div>
        <p className="text-lg font-medium underline underline-offset-1">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">underline-offset-2</div>
        <p className="text-lg font-medium underline underline-offset-2">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">underline-offset-4</div>
        <p className="text-lg font-medium underline underline-offset-4">The quick brown fox jumps over the lazy dog.</p>
      </div>
      <div>
        <div className="mb-3 font-mono text-xs font-medium text-gray-500 dark:text-gray-400">underline-offset-8</div>
        <p className="text-lg font-medium underline underline-offset-8">The quick brown fox jumps over the lazy dog.</p>
      </div>
    </div>
  }

```html
<!-- [!code classes:underline-offset-1] -->
<p class="underline underline-offset-1">The quick brown fox...</p>
<!-- [!code classes:underline-offset-2] -->
<p class="underline underline-offset-2">The quick brown fox...</p>
<!-- [!code classes:underline-offset-4] -->
<p class="underline underline-offset-4">The quick brown fox...</p>
<!-- [!code classes:underline-offset-8] -->
<p class="underline underline-offset-8">The quick brown fox...</p>
```

### Using a custom value

### Responsive design


---

# text-wrap

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/text-wrap*

| Clase | Propiedades CSS |
| :--- | :--- |
| `text-wrap` | `text-wrap: wrap;` |
| `text-nowrap` | `text-wrap: nowrap;` |
| `text-balance` | `text-wrap: balance;` |
| `text-pretty` | `text-wrap: pretty;` |

## Examples

### Allowing text to wrap

Use the `text-wrap` utility to wrap overflowing text onto multiple lines at logical points in the text:

  {
    <div className="mx-auto grid max-w-xs gap-4 border-x border-x-pink-400/30 py-8 text-gray-700 dark:text-gray-400">
      <div className="text-xl font-semibold text-gray-900 dark:text-white">Beloved Manhattan soup stand closes</div>
      <p className="text-sm/6">
        New Yorkers are facing the winter chill with less warmth this year as the city's most revered soup stand
        unexpectedly shutters, following a series of events that have left the community puzzled.
      </p>
    </div>
  }

```html
<!-- [!code classes:text-wrap] -->
<article class="text-wrap">
  <h3>Beloved Manhattan soup stand closes</h3>
  <p>New Yorkers are facing the winter chill...</p>
</article>
```

### Preventing text from wrapping

Use the `text-nowrap` utility to prevent text from wrapping, allowing it to overflow if necessary:

  {
    <div className="overflow-hidden">
      <div className="mx-auto grid max-w-xs gap-4 border-x border-x-pink-400/30 py-8 text-gray-700 dark:text-gray-400">
        <div className="text-xl font-semibold text-nowrap text-gray-900 dark:text-white">
          Beloved Manhattan soup stand closes
        </div>
        <p className="text-sm/6 text-nowrap">
          New Yorkers are facing the winter chill with less warmth this year as the city's most revered soup stand
          unexpectedly shutters, following a series of events that have left the community puzzled.
        </p>
      </div>
    </div>
  }

```html
<!-- [!code classes:text-nowrap] -->
<article class="text-nowrap">
  <h3>Beloved Manhattan soup stand closes</h3>
  <p>New Yorkers are facing the winter chill...</p>
</article>
```

### Balanced text wrapping

Use the `text-balance` utility to distribute the text evenly across each line:

  {
    <div className="mx-auto grid max-w-xs gap-4 border-x border-x-pink-400/30 py-8 text-gray-700 dark:text-gray-400">
      <div className="text-xl font-semibold text-balance text-gray-900 dark:text-white">
        Beloved Manhattan soup stand closes
      </div>
      <p className="text-sm/6">
        New Yorkers are facing the winter chill with less warmth this year as the city's most revered soup stand
        unexpectedly shutters, following a series of events that have left the community puzzled.
      </p>
    </div>
  }

```html
<!-- [!code classes:text-balance] -->
<article>
  <h3 class="text-balance">Beloved Manhattan soup stand closes</h3>
  <p>New Yorkers are facing the winter chill...</p>
</article>
```

For performance reasons browsers limit text balancing to blocks that are ~6 lines or less, making it best suited for headings.

### Pretty text wrapping

Use the `text-pretty` utility to prefer better text wrapping and layout at the expense of speed. Behavior varies across browsers but often involves approaches like preventing orphans (a single word on its own line) at the end of a text block:

  {
    <div className="mx-auto grid max-w-xs gap-4 border-x border-x-pink-400/30 py-8 text-gray-700 dark:text-gray-400">
      <div className="text-xl font-semibold text-pretty text-gray-900 dark:text-white">
        Beloved Manhattan soup stand closes
      </div>
      <p className="text-sm/6">
        New Yorkers are facing the winter chill with less warmth this year as the city's most revered soup stand
        unexpectedly shutters, following a series of events that have left the community puzzled.
      </p>
    </div>
  }

```html
<!-- [!code classes:text-pretty] -->
<article>
  <h3 class="text-pretty">Beloved Manhattan soup stand closes</h3>
  <p>New Yorkers are facing the winter chill...</p>
</article>
```

### Responsive design


---

# Theme variables

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/theme*

## Overview

Tailwind is a framework for building custom designs, and different designs need different typography, colors, shadows, breakpoints, and more.

These low-level design decisions are often called _design tokens_, and in Tailwind projects you store those values in _theme variables_.

### What are theme variables?

Theme variables are special CSS variables defined using the `@theme` directive that influence which utility classes exist in your project.

For example, you can add a new color to your project by defining a theme variable like `--color-mint-500`:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

/* [!code highlight:4] */
@theme {
  --color-mint-500: oklch(0.72 0.11 178);
}
```

Now you can use utility classes like `bg-mint-500`, `text-mint-500`, or `fill-mint-500` in your HTML:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:bg-mint-500] -->
<div class="bg-mint-500">
  <!-- ... -->
</div>
```

Tailwind also generates regular CSS variables for your theme variables so you can reference your design tokens in arbitrary values or inline styles:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:var(--color-mint-500)] -->
<div style="background-color: var(--color-mint-500)">
  <!-- ... -->
</div>
```

Learn more about how theme variables map to different utility classes in the [theme variable namespaces](#theme-variable-namespaces) documentation.

#### Why `@theme` instead of `:root`?

Theme variables aren't _just_ CSS variables — they also instruct Tailwind to create new utility classes that you can use in your HTML.

Since they do more than regular CSS variables, Tailwind uses special syntax so that defining theme variables is always explicit. Theme variables are also required to be defined top-level and not nested under other selectors or media queries, and using a special syntax makes it possible to enforce that.

Defining regular CSS variables with `:root` can still be useful in Tailwind projects when you want to define a variable that isn't meant to be connected to a utility class. Use `@theme` when you want a design token to map directly to a utility class, and use `:root` for defining regular CSS variables that shouldn't have corresponding utility classes.

### Relationship to utility classes

Some utility classes in Tailwind like `flex` and `object-cover` are static, and are always the same from project to project. But many others are driven by theme variables, and only exist because of the theme variables you've defined.

For example, theme variables defined in the `--font-*` namespace determine all of the `font-family` utilities that exist in a project:

```css
/* [!code filename:./node_modules/tailwindcss/theme.css] */
@theme {
  /* [!code highlight:4] */
  /* prettier-ignore */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  /* prettier-ignore */
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* ... */
}
```

The `font-sans`, `font-serif`, and `font-mono` utilities only exist by default because Tailwind's default theme defines the `--font-sans`, `--font-serif`, and `--font-mono` theme variables.

If another theme variable like `--font-poppins` were defined, a `font-poppins` utility class would become available to go with it:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --font-poppins: Poppins, sans-serif;
}
```

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:font-poppins] -->
<h1 class="font-poppins">This headline will use Poppins.</h1>
```

You can name your theme variables whatever you want within these namespaces, and a corresponding utility with the same name will become available to use in your HTML.

#### Relationship to variants

Some theme variables are used to define variants rather than utilities. For example theme variables in the `--breakpoint-*` namespace determine which responsive breakpoint variants exist in your project:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --breakpoint-3xl: 120rem;
}
```

Now you can use the `3xl:*` variant to only trigger a utility when the viewport is 120rem or wider:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:3xl\:grid-cols-6] -->
<div class="3xl:grid-cols-6 grid grid-cols-2 md:grid-cols-4">
  <!-- ... -->
</div>
```

Learn more about how theme variables map to different utility classes and variants in the [theme variable namespaces](#theme-variable-namespaces) documentation.

### Theme variable namespaces

Theme variables are defined in _namespaces_ and each namespace corresponds to one or more utility class or variant APIs.

Defining new theme variables in these namespaces will make new corresponding utilities and variants available in your project:

{

<table>
  <thead>
    <tr>
      <th>Namespace</th>
      <th>Utility classes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td className="whitespace-nowrap">
        <code>--color-*</code>
      </td>
      <td>
        Color utilities like <code>bg-red-500</code>, <code>text-sky-300</code>, and many more
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--font-*</code>
      </td>
      <td>
        Font family utilities like <code>font-sans</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--text-*</code>
      </td>
      <td>
        Font size utilities like <code>text-xl</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--font-weight-*</code>
      </td>
      <td>
        Font weight utilities like <code>font-bold</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--tracking-*</code>
      </td>
      <td>
        Letter spacing utilities like <code>tracking-wide</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--leading-*</code>
      </td>
      <td>
        Line height utilities like <code>leading-tight</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--tab-size-*</code>
      </td>
      <td>
        Tab size utilities like <code>tab-github</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--breakpoint-*</code>
      </td>
      <td>
        Responsive breakpoint variants like <code>sm:*</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--container-*</code>
      </td>
      <td>
        Container query variants like <code>@sm:*</code> and size utilities like <code>max-w-md</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--spacing-*</code>
      </td>
      <td>
        Spacing and sizing utilities like <code>px-4</code>, <code>max-h-16</code>, and many more
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--radius-*</code>
      </td>
      <td>
        Border radius utilities like <code>rounded-sm</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--shadow-*</code>
      </td>
      <td>
        Box shadow utilities like <code>shadow-md</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--inset-shadow-*</code>
      </td>
      <td>
        Inset box shadow utilities like <code>inset-shadow-xs</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--drop-shadow-*</code>
      </td>
      <td>
        Drop shadow filter utilities like <code>drop-shadow-md</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--blur-*</code>
      </td>
      <td>
        Blur filter utilities like <code>blur-md</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--perspective-*</code>
      </td>
      <td>
        Perspective utilities like <code>perspective-near</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--zoom-*</code>
      </td>
      <td>
        Zoom utilities like <code>zoom-compact</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--aspect-*</code>
      </td>
      <td>
        Aspect ratio utilities like <code>aspect-video</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--ease-*</code>
      </td>
      <td>
        Transition timing function utilities like <code>ease-out</code>
      </td>
    </tr>
    <tr>
      <td className="whitespace-nowrap">
        <code>--animate-*</code>
      </td>
      <td>
        Animation utilities like <code>animate-spin</code>
      </td>
    </tr>
  </tbody>
</table>
}

For a list of all of the default theme variables, see the [default theme variable reference](#default-theme-variable-reference).

### Default theme variables

When you import `tailwindcss` at the top of your CSS file, it includes a set of default theme variables to get you started.

Here's what you're actually importing when you import `tailwindcss`:

```css
/* [!code filename:node_modules/tailwindcss/index.css] */
@layer theme, base, components, utilities;

/* [!code highlight:2] */
@import "./theme.css" layer(theme);
@import "./preflight.css" layer(base);
@import "./utilities.css" layer(utilities);
```

That `theme.css` file includes the default color palette, type scale, shadows, fonts, and more:

```css
/* [!code filename:node_modules/tailwindcss/theme.css] */
@theme {
  /* prettier-ignore */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --color-red-50: oklch(0.971 0.013 17.38);
  --color-red-100: oklch(0.936 0.032 17.717);
  --color-red-200: oklch(0.885 0.062 18.334);
  /* ... */

  --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  /* ... */
}
```

This is why utilities like `bg-red-200`, `font-serif`, and `shadow-sm` exist out of the box — they're driven by the default theme, not hardcoded into the framework like `flex-col` or `pointer-events-none`.

For a list of all of the default theme variables, see the [default theme variable reference](#default-theme-variable-reference).

## Customizing your theme

The default theme variables are very general purpose and suitable for building dramatically different designs, but they are still just a starting point. It's very common to customize things like the color palette, fonts, and shadows to build exactly the design you have in mind.

### Extending the default theme

Use `@theme` to define new theme variables and extend the default theme:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --font-script: Great Vibes, cursive;
}
```

This makes a new `font-script` utility class available that you can use in your HTML, just like the default `font-sans` or `font-mono` utilities:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:font-script] -->
<p class="font-script">This will use the Great Vibes font family.</p>
```

Learn more about how theme variables map to different utility classes and variants in the [theme variable namespaces](#theme-variable-namespaces) documentation.

### Overriding the default theme

Override a default theme variable value by redefining it within `@theme`:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --breakpoint-sm: 30rem;
}
```

Now the `sm:*` variant will trigger at 30rem instead of the default 40rem viewport size:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:sm\:grid-cols-3] -->
<div class="grid grid-cols-1 sm:grid-cols-3">
  <!-- ... -->
</div>
```

To completely override an entire namespace in the default theme, set the entire namespace to `initial` using the special asterisk syntax:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --color-*: initial;
  --color-white: #fff;
  --color-purple: #3f3cbb;
  --color-midnight: #121063;
  --color-tahiti: #3ab7bf;
  --color-bermuda: #78dcca;
}
```

When you do this, all of the default utilities that use that namespace _(like `bg-red-500`)_ will be removed, and only your custom values _(like `bg-midnight`)_ will be available.

Learn more about how theme variables map to different utility classes and variants in the [theme variable namespaces](#theme-variable-namespaces) documentation.

### Using a custom theme

To completely disable the default theme and use only custom values, set the global theme variable namespace to `initial`:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  /* [!code highlight:2] */
  --*: initial;

  --spacing: 4px;

  --font-body: Inter, sans-serif;

  --color-lagoon: oklch(0.72 0.11 221.19);
  --color-coral: oklch(0.74 0.17 40.24);
  --color-driftwood: oklch(0.79 0.06 74.59);
  --color-tide: oklch(0.49 0.08 205.88);
  --color-dusk: oklch(0.82 0.15 72.09);
}
```

Now none of the default utility classes that are driven by theme variables will be available, and you'll only be able to use utility classes matching your custom theme variables like `font-body` and `text-dusk`.

### Defining animation keyframes

Define the `@keyframes` rules for your `--animate-*` theme variables within `@theme` to include them in your generated CSS:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

@theme {
  --animate-fade-in-scale: fade-in-scale 0.3s ease-out;

  @keyframes fade-in-scale {
    0% {
      opacity: 0;
      transform: scale(0.95);
    }
    100% {
      opacity: 1;
      transform: scale(1);
    }
  }
}
```

If you want your custom `@keyframes` rules to always be included even when not adding an `--animate-*` theme variable, define them outside of `@theme` instead.

### Referencing other variables

When defining theme variables that reference other variables, use the `inline` option:

```css
/* [!code filename:app.css] */
@import "tailwindcss";

/* [!code word:inline] */
@theme inline {
  --font-sans: var(--font-inter);
}
```

Using the `inline` option, the utility class will use the theme variable _value_ instead of referencing the actual theme variable:

```css
/* [!code filename:dist.css] */
.font-sans {
  font-family: var(--font-inter);
}
```

Without using `inline`, your utility classes might resolve to unexpected values because of how variables are resolved in CSS.

For example, this text will fall back to `sans-serif` instead of using `Inter` like you might expect:

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:--font-sans\: var(--font-inter, sans-serif);] -->
<div id="parent" style="--font-sans: var(--font-inter, sans-serif);">
  <!-- [!code word:--font-inter\: Inter; font-family\: var(--font-sans);] -->
  <div id="child" style="--font-inter: Inter; font-family: var(--font-sans);">
    This text will use the sans-serif font, not Inter.
  </div>
</div>
```

This happens because `var(--font-sans)` is resolved where `--font-sans` is defined _(on `#parent`)_, and `--font-inter` has no value there since it's not defined until deeper in the tree _(on `#child`)_.

### Generating all CSS variables

By default only used CSS variables will be generated in the final CSS output. If you want to always generate all CSS variables, you can use the `static` theme option:

```css
/* [!code filename:app.css] */
/* [!code word:static] */
@import "tailwindcss";

@theme static {
  --color-primary: var(--color-red-500);
  --color-secondary: var(--color-blue-500);
}
```

### Sharing across projects

Since theme variables are defined in CSS, sharing them across projects is just a matter of throwing them into their own CSS file that you can import in each project:

```css
/* [!code filename:./packages/brand/theme.css] */
@theme {
  --*: initial;

  --spacing: 4px;

  --font-body: Inter, sans-serif;

  --color-lagoon: oklch(0.72 0.11 221.19);
  --color-coral: oklch(0.74 0.17 40.24);
  --color-driftwood: oklch(0.79 0.06 74.59);
  --color-tide: oklch(0.49 0.08 205.88);
  --color-dusk: oklch(0.82 0.15 72.09);
}
```

Then you can use `@import` to include your theme variables in other projects:

```css
/* [!code filename:./packages/admin/app.css] */
@import "tailwindcss";
/* [!code highlight:2] */
@import "../brand/theme.css";
```

You can put shared theme variables like this in their own package in monorepo setups or even publish them to NPM and import them just like any other third-party CSS files.

## Using your theme variables

All of your theme variables are turned into regular CSS variables when you compile your CSS:

```css
/* [!code filename:dist.css] */
:root {
  /* prettier-ignore */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --color-red-50: oklch(0.971 0.013 17.38);
  --color-red-100: oklch(0.936 0.032 17.717);
  --color-red-200: oklch(0.885 0.062 18.334);
  /* ... */

  --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  /* ... */
}
```

This makes it easy to reference all of your design tokens in any of your custom CSS or inline styles.

### With custom CSS

Use your theme variables to get access to your design tokens when you're writing custom CSS that needs to use the same values:

```css
/* [!code filename:app.css] */
/* [!code word:var(--text-base)] */
/* [!code word:var(--color-gray-700)] */
/* [!code word:var(--text-2xl)] */
/* [!code word:var(--font-weight-semibold)] */
/* [!code word:var(--color-gray-950)] */
/* [!code word:var(--text-xl)] */
@import "tailwindcss";

@layer components {
  .typography {
    p {
      font-size: var(--text-base);
      color: var(--color-gray-700);
    }

    h1 {
      font-size: var(--text-2xl--line-height);
      font-weight: var(--font-weight-semibold);
      color: var(--color-gray-950);
    }

    h2 {
      font-size: var(--text-xl);
      font-weight: var(--font-weight-semibold);
      color: var(--color-gray-950);
    }
  }
}
```

This is often useful when styling HTML you don't control, like Markdown content coming from a database or API and rendered to HTML.

### With arbitrary values

Using theme variables in arbitrary values can be useful, especially in combination with the `calc()` function.

```html
<!-- [!code filename:HTML] -->
<!-- [!code word:rounded-xl] -->
<div class="relative rounded-xl">
  <!-- [!code word:rounded-\[calc(var(--radius-xl)-1px)\]] -->
  <div class="absolute inset-px rounded-[calc(var(--radius-xl)-1px)]">
    <!-- ... -->
  </div>
  <!-- ... -->
</div>
```

In the above example, we're subtracting 1px from the `--radius-xl` value on a nested inset element to make sure it has a concentric border radius.

### Referencing in JavaScript

Most of the time when you need to reference your theme variables in JS you can just use the CSS variables directly, just like any other CSS value.

For example, the popular [Motion](https://motion.dev/docs/react-quick-start) library for React lets you animate to and from CSS variable values:

```jsx
// [!code filename:JSX]
// [!code word:var(--color-blue-500)]
<motion.div animate={{ backgroundColor: "var(--color-blue-500)" }} />
```

If you need access to a resolved CSS variable value in JS, you can use `getComputedStyle` to get the value of a theme variable on the document root:

```js
// [!code filename:spaghetti.js]
let styles = getComputedStyle(document.documentElement);
let shadow = styles.getPropertyValue("--shadow-xl");
```

## Default theme variable reference

For reference, here's a complete list of the theme variables included by default when you import Tailwind CSS into your project:

```css
/* [!code filename:tailwindcss/theme.css] */
@theme {
  /* prettier-ignore */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --color-red-50: oklch(97.1% 0.013 17.38);
  --color-red-100: oklch(93.6% 0.032 17.717);
  --color-red-200: oklch(88.5% 0.062 18.334);
  --color-red-300: oklch(80.8% 0.114 19.571);
  --color-red-400: oklch(70.4% 0.191 22.216);
  --color-red-500: oklch(63.7% 0.237 25.331);
  --color-red-600: oklch(57.7% 0.245 27.325);
  --color-red-700: oklch(50.5% 0.213 27.518);
  --color-red-800: oklch(44.4% 0.177 26.899);
  --color-red-900: oklch(39.6% 0.141 25.723);
  --color-red-950: oklch(25.8% 0.092 26.042);

  --color-orange-50: oklch(98% 0.016 73.684);
  --color-orange-100: oklch(95.4% 0.038 75.164);
  --color-orange-200: oklch(90.1% 0.076 70.697);
  --color-orange-300: oklch(83.7% 0.128 66.29);
  --color-orange-400: oklch(75% 0.183 55.934);
  --color-orange-500: oklch(70.5% 0.213 47.604);
  --color-orange-600: oklch(64.6% 0.222 41.116);
  --color-orange-700: oklch(55.3% 0.195 38.402);
  --color-orange-800: oklch(47% 0.157 37.304);
  --color-orange-900: oklch(40.8% 0.123 38.172);
  --color-orange-950: oklch(26.6% 0.079 36.259);

  --color-amber-50: oklch(98.7% 0.022 95.277);
  --color-amber-100: oklch(96.2% 0.059 95.617);
  --color-amber-200: oklch(92.4% 0.12 95.746);
  --color-amber-300: oklch(87.9% 0.169 91.605);
  --color-amber-400: oklch(82.8% 0.189 84.429);
  --color-amber-500: oklch(76.9% 0.188 70.08);
  --color-amber-600: oklch(66.6% 0.179 58.318);
  --color-amber-700: oklch(55.5% 0.163 48.998);
  --color-amber-800: oklch(47.3% 0.137 46.201);
  --color-amber-900: oklch(41.4% 0.112 45.904);
  --color-amber-950: oklch(27.9% 0.077 45.635);

  --color-yellow-50: oklch(98.7% 0.026 102.212);
  --color-yellow-100: oklch(97.3% 0.071 103.193);
  --color-yellow-200: oklch(94.5% 0.129 101.54);
  --color-yellow-300: oklch(90.5% 0.182 98.111);
  --color-yellow-400: oklch(85.2% 0.199 91.936);
  --color-yellow-500: oklch(79.5% 0.184 86.047);
  --color-yellow-600: oklch(68.1% 0.162 75.834);
  --color-yellow-700: oklch(55.4% 0.135 66.442);
  --color-yellow-800: oklch(47.6% 0.114 61.907);
  --color-yellow-900: oklch(42.1% 0.095 57.708);
  --color-yellow-950: oklch(28.6% 0.066 53.813);

  --color-lime-50: oklch(98.6% 0.031 120.757);
  --color-lime-100: oklch(96.7% 0.067 122.328);
  --color-lime-200: oklch(93.8% 0.127 124.321);
  --color-lime-300: oklch(89.7% 0.196 126.665);
  --color-lime-400: oklch(84.1% 0.238 128.85);
  --color-lime-500: oklch(76.8% 0.233 130.85);
  --color-lime-600: oklch(64.8% 0.2 131.684);
  --color-lime-700: oklch(53.2% 0.157 131.589);
  --color-lime-800: oklch(45.3% 0.124 130.933);
  --color-lime-900: oklch(40.5% 0.101 131.063);
  --color-lime-950: oklch(27.4% 0.072 132.109);

  --color-green-50: oklch(98.2% 0.018 155.826);
  --color-green-100: oklch(96.2% 0.044 156.743);
  --color-green-200: oklch(92.5% 0.084 155.995);
  --color-green-300: oklch(87.1% 0.15 154.449);
  --color-green-400: oklch(79.2% 0.209 151.711);
  --color-green-500: oklch(72.3% 0.219 149.579);
  --color-green-600: oklch(62.7% 0.194 149.214);
  --color-green-700: oklch(52.7% 0.154 150.069);
  --color-green-800: oklch(44.8% 0.119 151.328);
  --color-green-900: oklch(39.3% 0.095 152.535);
  --color-green-950: oklch(26.6% 0.065 152.934);

  --color-emerald-50: oklch(97.9% 0.021 166.113);
  --color-emerald-100: oklch(95% 0.052 163.051);
  --color-emerald-200: oklch(90.5% 0.093 164.15);
  --color-emerald-300: oklch(84.5% 0.143 164.978);
  --color-emerald-400: oklch(76.5% 0.177 163.223);
  --color-emerald-500: oklch(69.6% 0.17 162.48);
  --color-emerald-600: oklch(59.6% 0.145 163.225);
  --color-emerald-700: oklch(50.8% 0.118 165.612);
  --color-emerald-800: oklch(43.2% 0.095 166.913);
  --color-emerald-900: oklch(37.8% 0.077 168.94);
  --color-emerald-950: oklch(26.2% 0.051 172.552);

  --color-teal-50: oklch(98.4% 0.014 180.72);
  --color-teal-100: oklch(95.3% 0.051 180.801);
  --color-teal-200: oklch(91% 0.096 180.426);
  --color-teal-300: oklch(85.5% 0.138 181.071);
  --color-teal-400: oklch(77.7% 0.152 181.912);
  --color-teal-500: oklch(70.4% 0.14 182.503);
  --color-teal-600: oklch(60% 0.118 184.704);
  --color-teal-700: oklch(51.1% 0.096 186.391);
  --color-teal-800: oklch(43.7% 0.078 188.216);
  --color-teal-900: oklch(38.6% 0.063 188.416);
  --color-teal-950: oklch(27.7% 0.046 192.524);

  --color-cyan-50: oklch(98.4% 0.019 200.873);
  --color-cyan-100: oklch(95.6% 0.045 203.388);
  --color-cyan-200: oklch(91.7% 0.08 205.041);
  --color-cyan-300: oklch(86.5% 0.127 207.078);
  --color-cyan-400: oklch(78.9% 0.154 211.53);
  --color-cyan-500: oklch(71.5% 0.143 215.221);
  --color-cyan-600: oklch(60.9% 0.126 221.723);
  --color-cyan-700: oklch(52% 0.105 223.128);
  --color-cyan-800: oklch(45% 0.085 224.283);
  --color-cyan-900: oklch(39.8% 0.07 227.392);
  --color-cyan-950: oklch(30.2% 0.056 229.695);

  --color-sky-50: oklch(97.7% 0.013 236.62);
  --color-sky-100: oklch(95.1% 0.026 236.824);
  --color-sky-200: oklch(90.1% 0.058 230.902);
  --color-sky-300: oklch(82.8% 0.111 230.318);
  --color-sky-400: oklch(74.6% 0.16 232.661);
  --color-sky-500: oklch(68.5% 0.169 237.323);
  --color-sky-600: oklch(58.8% 0.158 241.966);
  --color-sky-700: oklch(50% 0.134 242.749);
  --color-sky-800: oklch(44.3% 0.11 240.79);
  --color-sky-900: oklch(39.1% 0.09 240.876);
  --color-sky-950: oklch(29.3% 0.066 243.157);

  --color-blue-50: oklch(97% 0.014 254.604);
  --color-blue-100: oklch(93.2% 0.032 255.585);
  --color-blue-200: oklch(88.2% 0.059 254.128);
  --color-blue-300: oklch(80.9% 0.105 251.813);
  --color-blue-400: oklch(70.7% 0.165 254.624);
  --color-blue-500: oklch(62.3% 0.214 259.815);
  --color-blue-600: oklch(54.6% 0.245 262.881);
  --color-blue-700: oklch(48.8% 0.243 264.376);
  --color-blue-800: oklch(42.4% 0.199 265.638);
  --color-blue-900: oklch(37.9% 0.146 265.522);
  --color-blue-950: oklch(28.2% 0.091 267.935);

  --color-indigo-50: oklch(96.2% 0.018 272.314);
  --color-indigo-100: oklch(93% 0.034 272.788);
  --color-indigo-200: oklch(87% 0.065 274.039);
  --color-indigo-300: oklch(78.5% 0.115 274.713);
  --color-indigo-400: oklch(67.3% 0.182 276.935);
  --color-indigo-500: oklch(58.5% 0.233 277.117);
  --color-indigo-600: oklch(51.1% 0.262 276.966);
  --color-indigo-700: oklch(45.7% 0.24 277.023);
  --color-indigo-800: oklch(39.8% 0.195 277.366);
  --color-indigo-900: oklch(35.9% 0.144 278.697);
  --color-indigo-950: oklch(25.7% 0.09 281.288);

  --color-violet-50: oklch(96.9% 0.016 293.756);
  --color-violet-100: oklch(94.3% 0.029 294.588);
  --color-violet-200: oklch(89.4% 0.057 293.283);
  --color-violet-300: oklch(81.1% 0.111 293.571);
  --color-violet-400: oklch(70.2% 0.183 293.541);
  --color-violet-500: oklch(60.6% 0.25 292.717);
  --color-violet-600: oklch(54.1% 0.281 293.009);
  --color-violet-700: oklch(49.1% 0.27 292.581);
  --color-violet-800: oklch(43.2% 0.232 292.759);
  --color-violet-900: oklch(38% 0.189 293.745);
  --color-violet-950: oklch(28.3% 0.141 291.089);

  --color-purple-50: oklch(97.7% 0.014 308.299);
  --color-purple-100: oklch(94.6% 0.033 307.174);
  --color-purple-200: oklch(90.2% 0.063 306.703);
  --color-purple-300: oklch(82.7% 0.119 306.383);
  --color-purple-400: oklch(71.4% 0.203 305.504);
  --color-purple-500: oklch(62.7% 0.265 303.9);
  --color-purple-600: oklch(55.8% 0.288 302.321);
  --color-purple-700: oklch(49.6% 0.265 301.924);
  --color-purple-800: oklch(43.8% 0.218 303.724);
  --color-purple-900: oklch(38.1% 0.176 304.987);
  --color-purple-950: oklch(29.1% 0.149 302.717);

  --color-fuchsia-50: oklch(97.7% 0.017 320.058);
  --color-fuchsia-100: oklch(95.2% 0.037 318.852);
  --color-fuchsia-200: oklch(90.3% 0.076 319.62);
  --color-fuchsia-300: oklch(83.3% 0.145 321.434);
  --color-fuchsia-400: oklch(74% 0.238 322.16);
  --color-fuchsia-500: oklch(66.7% 0.295 322.15);
  --color-fuchsia-600: oklch(59.1% 0.293 322.896);
  --color-fuchsia-700: oklch(51.8% 0.253 323.949);
  --color-fuchsia-800: oklch(45.2% 0.211 324.591);
  --color-fuchsia-900: oklch(40.1% 0.17 325.612);
  --color-fuchsia-950: oklch(29.3% 0.136 325.661);

  --color-pink-50: oklch(97.1% 0.014 343.198);
  --color-pink-100: oklch(94.8% 0.028 342.258);
  --color-pink-200: oklch(89.9% 0.061 343.231);
  --color-pink-300: oklch(82.3% 0.12 346.018);
  --color-pink-400: oklch(71.8% 0.202 349.761);
  --color-pink-500: oklch(65.6% 0.241 354.308);
  --color-pink-600: oklch(59.2% 0.249 0.584);
  --color-pink-700: oklch(52.5% 0.223 3.958);
  --color-pink-800: oklch(45.9% 0.187 3.815);
  --color-pink-900: oklch(40.8% 0.153 2.432);
  --color-pink-950: oklch(28.4% 0.109 3.907);

  --color-rose-50: oklch(96.9% 0.015 12.422);
  --color-rose-100: oklch(94.1% 0.03 12.58);
  --color-rose-200: oklch(89.2% 0.058 10.001);
  --color-rose-300: oklch(81% 0.117 11.638);
  --color-rose-400: oklch(71.2% 0.194 13.428);
  --color-rose-500: oklch(64.5% 0.246 16.439);
  --color-rose-600: oklch(58.6% 0.253 17.585);
  --color-rose-700: oklch(51.4% 0.222 16.935);
  --color-rose-800: oklch(45.5% 0.188 13.697);
  --color-rose-900: oklch(41% 0.159 10.272);
  --color-rose-950: oklch(27.1% 0.105 12.094);

  --color-slate-50: oklch(98.4% 0.003 247.858);
  --color-slate-100: oklch(96.8% 0.007 247.896);
  --color-slate-200: oklch(92.9% 0.013 255.508);
  --color-slate-300: oklch(86.9% 0.022 252.894);
  --color-slate-400: oklch(70.4% 0.04 256.788);
  --color-slate-500: oklch(55.4% 0.046 257.417);
  --color-slate-600: oklch(44.6% 0.043 257.281);
  --color-slate-700: oklch(37.2% 0.044 257.287);
  --color-slate-800: oklch(27.9% 0.041 260.031);
  --color-slate-900: oklch(20.8% 0.042 265.755);
  --color-slate-950: oklch(12.9% 0.042 264.695);

  --color-gray-50: oklch(98.5% 0.002 247.839);
  --color-gray-100: oklch(96.7% 0.003 264.542);
  --color-gray-200: oklch(92.8% 0.006 264.531);
  --color-gray-300: oklch(87.2% 0.01 258.338);
  --color-gray-400: oklch(70.7% 0.022 261.325);
  --color-gray-500: oklch(55.1% 0.027 264.364);
  --color-gray-600: oklch(44.6% 0.03 256.802);
  --color-gray-700: oklch(37.3% 0.034 259.733);
  --color-gray-800: oklch(27.8% 0.033 256.848);
  --color-gray-900: oklch(21% 0.034 264.665);
  --color-gray-950: oklch(13% 0.028 261.692);

  --color-zinc-50: oklch(98.5% 0 0);
  --color-zinc-100: oklch(96.7% 0.001 286.375);
  --color-zinc-200: oklch(92% 0.004 286.32);
  --color-zinc-300: oklch(87.1% 0.006 286.286);
  --color-zinc-400: oklch(70.5% 0.015 286.067);
  --color-zinc-500: oklch(55.2% 0.016 285.938);
  --color-zinc-600: oklch(44.2% 0.017 285.786);
  --color-zinc-700: oklch(37% 0.013 285.805);
  --color-zinc-800: oklch(27.4% 0.006 286.033);
  --color-zinc-900: oklch(21% 0.006 285.885);
  --color-zinc-950: oklch(14.1% 0.005 285.823);

  --color-neutral-50: oklch(98.5% 0 0);
  --color-neutral-100: oklch(97% 0 0);
  --color-neutral-200: oklch(92.2% 0 0);
  --color-neutral-300: oklch(87% 0 0);
  --color-neutral-400: oklch(70.8% 0 0);
  --color-neutral-500: oklch(55.6% 0 0);
  --color-neutral-600: oklch(43.9% 0 0);
  --color-neutral-700: oklch(37.1% 0 0);
  --color-neutral-800: oklch(26.9% 0 0);
  --color-neutral-900: oklch(20.5% 0 0);
  --color-neutral-950: oklch(14.5% 0 0);

  --color-stone-50: oklch(98.5% 0.001 106.423);
  --color-stone-100: oklch(97% 0.001 106.424);
  --color-stone-200: oklch(92.3% 0.003 48.717);
  --color-stone-300: oklch(86.9% 0.005 56.366);
  --color-stone-400: oklch(70.9% 0.01 56.259);
  --color-stone-500: oklch(55.3% 0.013 58.071);
  --color-stone-600: oklch(44.4% 0.011 73.639);
  --color-stone-700: oklch(37.4% 0.01 67.558);
  --color-stone-800: oklch(26.8% 0.007 34.298);
  --color-stone-900: oklch(21.6% 0.006 56.043);
  --color-stone-950: oklch(14.7% 0.004 49.25);

  --color-mauve-50: oklch(98.5% 0 0);
  --color-mauve-100: oklch(96% 0.003 325.6);
  --color-mauve-200: oklch(92.2% 0.005 325.62);
  --color-mauve-300: oklch(86.5% 0.012 325.68);
  --color-mauve-400: oklch(71.1% 0.019 323.02);
  --color-mauve-500: oklch(54.2% 0.034 322.5);
  --color-mauve-600: oklch(43.5% 0.029 321.78);
  --color-mauve-700: oklch(36.4% 0.029 323.89);
  --color-mauve-800: oklch(26.3% 0.024 320.12);
  --color-mauve-900: oklch(21.2% 0.019 322.12);
  --color-mauve-950: oklch(14.5% 0.008 326);

  --color-olive-50: oklch(98.8% 0.003 106.5);
  --color-olive-100: oklch(96.6% 0.005 106.5);
  --color-olive-200: oklch(93% 0.007 106.5);
  --color-olive-300: oklch(88% 0.011 106.6);
  --color-olive-400: oklch(73.7% 0.021 106.9);
  --color-olive-500: oklch(58% 0.031 107.3);
  --color-olive-600: oklch(46.6% 0.025 107.3);
  --color-olive-700: oklch(39.4% 0.023 107.4);
  --color-olive-800: oklch(28.6% 0.016 107.4);
  --color-olive-900: oklch(22.8% 0.013 107.4);
  --color-olive-950: oklch(15.3% 0.006 107.1);

  --color-mist-50: oklch(98.7% 0.002 197.1);
  --color-mist-100: oklch(96.3% 0.002 197.1);
  --color-mist-200: oklch(92.5% 0.005 214.3);
  --color-mist-300: oklch(87.2% 0.007 219.6);
  --color-mist-400: oklch(72.3% 0.014 214.4);
  --color-mist-500: oklch(56% 0.021 213.5);
  --color-mist-600: oklch(45% 0.017 213.2);
  --color-mist-700: oklch(37.8% 0.015 216);
  --color-mist-800: oklch(27.5% 0.011 216.9);
  --color-mist-900: oklch(21.8% 0.008 223.9);
  --color-mist-950: oklch(14.8% 0.004 228.8);

  --color-taupe-50: oklch(98.6% 0.002 67.8);
  --color-taupe-100: oklch(96% 0.002 17.2);
  --color-taupe-200: oklch(92.2% 0.005 34.3);
  --color-taupe-300: oklch(86.8% 0.007 39.5);
  --color-taupe-400: oklch(71.4% 0.014 41.2);
  --color-taupe-500: oklch(54.7% 0.021 43.1);
  --color-taupe-600: oklch(43.8% 0.017 39.3);
  --color-taupe-700: oklch(36.7% 0.016 35.7);
  --color-taupe-800: oklch(26.8% 0.011 36.5);
  --color-taupe-900: oklch(21.4% 0.009 43.1);
  --color-taupe-950: oklch(14.7% 0.004 49.3);

  --color-black: #000;
  --color-white: #fff;

  --spacing: 0.25rem;

  --breakpoint-sm: 40rem;
  --breakpoint-md: 48rem;
  --breakpoint-lg: 64rem;
  --breakpoint-xl: 80rem;
  --breakpoint-2xl: 96rem;

  --container-3xs: 16rem;
  --container-2xs: 18rem;
  --container-xs: 20rem;
  --container-sm: 24rem;
  --container-md: 28rem;
  --container-lg: 32rem;
  --container-xl: 36rem;
  --container-2xl: 42rem;
  --container-3xl: 48rem;
  --container-4xl: 56rem;
  --container-5xl: 64rem;
  --container-6xl: 72rem;
  --container-7xl: 80rem;

  --text-xs: 0.75rem;
  --text-xs--line-height: calc(1 / 0.75);
  --text-sm: 0.875rem;
  --text-sm--line-height: calc(1.25 / 0.875);
  --text-base: 1rem;
  --text-base--line-height: calc(1.5 / 1);
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.25rem;
  --text-xl--line-height: calc(1.75 / 1.25);
  --text-2xl: 1.5rem;
  --text-2xl--line-height: calc(2 / 1.5);
  --text-3xl: 1.875rem;
  --text-3xl--line-height: calc(2.25 / 1.875);
  --text-4xl: 2.25rem;
  --text-4xl--line-height: calc(2.5 / 2.25);
  --text-5xl: 3rem;
  --text-5xl--line-height: 1;
  --text-6xl: 3.75rem;
  --text-6xl--line-height: 1;
  --text-7xl: 4.5rem;
  --text-7xl--line-height: 1;
  --text-8xl: 6rem;
  --text-8xl--line-height: 1;
  --text-9xl: 8rem;
  --text-9xl--line-height: 1;

  --font-weight-thin: 100;
  --font-weight-extralight: 200;
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;

  --tracking-tighter: -0.05em;
  --tracking-tight: -0.025em;
  --tracking-normal: 0em;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;

  --leading-tight: 1.25;
  --leading-snug: 1.375;
  --leading-normal: 1.5;
  --leading-relaxed: 1.625;
  --leading-loose: 2;

  --radius-xs: 0.125rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-2xl: 1rem;
  --radius-3xl: 1.5rem;
  --radius-4xl: 2rem;

  --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);

  --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
  --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
  --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);

  --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
  --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
  --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
  --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
  --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
  --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);

  --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
  --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
  --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);
  --text-shadow-md: 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);
  --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);

  --blur-xs: 4px;
  --blur-sm: 8px;
  --blur-md: 12px;
  --blur-lg: 16px;
  --blur-xl: 24px;
  --blur-2xl: 40px;
  --blur-3xl: 64px;

  --perspective-dramatic: 100px;
  --perspective-near: 300px;
  --perspective-normal: 500px;
  --perspective-midrange: 800px;
  --perspective-distant: 1200px;

  --aspect-video: 16 / 9;

  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);

  --animate-spin: spin 1s linear infinite;
  --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
  --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  --animate-bounce: bounce 1s infinite;

  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }

  @keyframes ping {
    75%,
    100% {
      transform: scale(2);
      opacity: 0;
    }
  }

  @keyframes pulse {
    50% {
      opacity: 0.5;
    }
  }

  @keyframes bounce {
    0%,
    100% {
      transform: translateY(-25%);
      animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }

    50% {
      transform: none;
      animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
  }
}
```


---

# top / right / bottom / left

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/top-right-bottom-left*

| Clase | Propiedades CSS |
| :--- | :--- |
| `<number>` | `calc(var(--spacing) * <number>)` |
| `<fraction>` | `calc(<fraction> * -100%)", true],       ["px", "1px` |
| `px` | `-1px", true],       ["full", "100%` |
| `full` | `-100%", true],       ["auto", "auto` |
| `(<custom-property>)` | `var(<custom-property>)` |
| `[<value>]` | `<value>` |

## Examples

### Basic example

Use `top-<number>`, `right-<number>`, `bottom-<number>`, `left-<number>`, and `inset-<number>` utilities like `top-0` and `bottom-4` to set the horizontal or vertical position of a [positioned element](/docs/position):

  {
    <div className="grid grid-cols-3 grid-rows-3 place-items-center gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute top-0 left-0 flex size-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          01
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute inset-x-0 top-0 flex h-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          02
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute top-0 right-0 flex size-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          03
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute inset-y-0 left-0 flex w-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          04
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute inset-0 flex items-center justify-center rounded-lg bg-purple-500 p-4">05</div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute inset-y-0 right-0 flex w-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          06
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute bottom-0 left-0 flex size-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          07
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute inset-x-0 bottom-0 flex h-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          08
        </div>
      </div>
      <div className="relative size-18 rounded-lg sm:size-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute right-0 bottom-0 flex size-16 items-center justify-center rounded-lg bg-purple-500 p-4">
          09
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-x-0,inset-y-0,inset-0,right-0,left-0,top-0,bottom-0] -->
<!-- Pin to top left corner -->
<div class="relative size-32 ...">
  <div class="absolute top-0 left-0 size-16 ...">01</div>
</div>

<!-- Span top edge -->
<div class="relative size-32 ...">
  <div class="absolute inset-x-0 top-0 h-16 ...">02</div>
</div>

<!-- Pin to top right corner -->
<div class="relative size-32 ...">
  <div class="absolute top-0 right-0 size-16 ...">03</div>
</div>

<!-- Span left edge -->
<div class="relative size-32 ...">
  <div class="absolute inset-y-0 left-0 w-16 ...">04</div>
</div>

<!-- Fill entire parent -->
<div class="relative size-32 ...">
  <div class="absolute inset-0 ...">05</div>
</div>

<!-- Span right edge -->
<div class="relative size-32 ...">
  <div class="absolute inset-y-0 right-0 w-16 ...">06</div>
</div>

<!-- Pin to bottom left corner -->
<div class="relative size-32 ...">
  <div class="absolute bottom-0 left-0 size-16 ...">07</div>
</div>

<!-- Span bottom edge -->
<div class="relative size-32 ...">
  <div class="absolute inset-x-0 bottom-0 h-16 ...">08</div>
</div>

<!-- Pin to bottom right corner -->
<div class="relative size-32 ...">
  <div class="absolute right-0 bottom-0 size-16 ...">09</div>
</div>
```

### Using negative values

To use a negative top/right/bottom/left value, prefix the class name with a dash to convert it to a negative value:

  {
    <div className="flex justify-center font-mono text-sm leading-6 font-bold text-white">
      <div className="relative size-18 rounded-lg sm:h-32 sm:w-32">
        <div className="absolute inset-0">
          
        </div>
        <div className="absolute -top-4 -left-4 flex items-center justify-center rounded-lg bg-purple-500 p-4"></div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-left-4,-top-4] -->
<div class="relative size-32 ...">
  <div class="absolute -top-4 -left-4 size-14 ..."></div>
</div>
```

### Using logical properties

Use `inset-s-<number>` or `inset-e-<number>` utilities like `inset-s-0` and `inset-e-4` to set the `inset-inline-start` and `inset-inline-end` [logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts), which map to either the left or right side based on the text direction:

  {
    <div className="grid grid-cols-2 place-items-center gap-x-4">
      <div className="flex flex-col items-start gap-y-4">
        <p className="text-sm font-medium">Left-to-right</p>
        <div className="relative size-18 rounded-lg sm:size-32">
          <div className="absolute inset-0">
            
          </div>
          <div className="absolute top-0 left-0 flex size-14 items-center justify-center rounded-lg bg-purple-500 p-4"></div>
        </div>
      </div>
      <div className="flex flex-col items-end gap-y-4">
        <p className="text-sm font-medium">Right-to-left</p>
        <div className="relative size-18 rounded-lg sm:size-32">
          <div className="absolute inset-0">
            
          </div>
          <div className="absolute top-0 right-0 flex size-14 items-center justify-center rounded-lg bg-purple-500 p-4"></div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:inset-s-0] -->
<div dir="ltr">
  <div class="relative size-32 ...">
    <div class="absolute inset-s-0 top-0 size-14 ..."></div>
  </div>
  <div>
    <div dir="rtl">
      <div class="relative size-32 ...">
        <div class="absolute inset-s-0 top-0 size-14 ..."></div>
      </div>
      <div></div>
    </div>
  </div>
</div>
```

For more control, you can also use the [LTR and RTL modifiers](/docs/hover-focus-and-other-states#rtl-support) to conditionally apply specific styles depending on the current text direction.

### Using a custom value

### Responsive design

## Customizing your theme


---

# touch-action

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/touch-action*

| Clase | Propiedades CSS |
| :--- | :--- |
| `touch-auto` | `touch-action: auto;` |
| `touch-none` | `touch-action: none;` |
| `touch-pan-x` | `touch-action: pan-x;` |
| `touch-pan-left` | `touch-action: pan-left;` |
| `touch-pan-right` | `touch-action: pan-right;` |
| `touch-pan-y` | `touch-action: pan-y;` |
| `touch-pan-up` | `touch-action: pan-up;` |
| `touch-pan-down` | `touch-action: pan-down;` |
| `touch-pinch-zoom` | `touch-action: pinch-zoom;` |
| `touch-manipulation` | `touch-action: manipulation;` |

## Examples

### Basic example

Use utilities like `touch-pan-y` and `touch-pinch-zoom` to control how an element can be scrolled (panned) and zoomed (pinched) on touchscreens:

  {
    <div className="grid gap-x-6 gap-y-14 font-mono font-bold sm:grid-cols-2">
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">touch-auto</p>
        <div className="grid h-48 w-full touch-auto overflow-auto rounded-lg">
          <img
            className="col-span-1 col-start-1 col-end-1 w-[150%] max-w-none"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=600&h=400&q=80"
          />
        </div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">touch-none</p>
        <div className="h-48 w-full touch-none overflow-auto rounded-lg">
          <img
            className="w-[150%] max-w-none"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=600&h=400&q=80"
          />
        </div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">touch-pan-x</p>
        <div className="h-48 w-full touch-pan-x overflow-auto rounded-lg">
          <img
            className="w-[150%] max-w-none"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=600&h=400&q=80"
          />
        </div>
      </div>
      <div className="flex flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">touch-pan-y</p>
        <div className="h-48 w-full touch-pan-y overflow-auto rounded-lg">
          <img
            className="w-[150%] max-w-none"
            src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=600&h=400&q=80"
          />
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:overflow-auto,touch-auto,touch-none,touch-pan-x,touch-pan-y] -->
<div class="h-48 w-full touch-auto overflow-auto ...">
  <img class="h-auto w-[150%] max-w-none" src="..." />
</div>
<div class="h-48 w-full touch-none overflow-auto ...">
  <img class="h-auto w-[150%] max-w-none" src="..." />
</div>
<div class="h-48 w-full touch-pan-x overflow-auto ...">
  <img class="h-auto w-[150%] max-w-none" src="..." />
</div>
<div class="h-48 w-full touch-pan-y overflow-auto ...">
  <img class="h-auto w-[150%] max-w-none" src="..." />
</div>
```

### Responsive design


---

# transform-origin

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transform-origin*

| Clase | Propiedades CSS |
| :--- | :--- |
| `origin-center` | `transform-origin: center;` |
| `origin-top` | `transform-origin: top;` |
| `origin-top-right` | `transform-origin: top right;` |
| `origin-right` | `transform-origin: right;` |
| `origin-bottom-right` | `transform-origin: bottom right;` |
| `origin-bottom` | `transform-origin: bottom;` |
| `origin-bottom-left` | `transform-origin: bottom left;` |
| `origin-left` | `transform-origin: left;` |
| `origin-top-left` | `transform-origin: top left;` |
| `origin-(<custom-property>)` | `transform-origin: var(<custom-property>);` |
| `origin-[<value>]` | `transform-origin: <value>;` |

## Examples

### Basic example

Use utilities like `origin-top` and `origin-bottom-left` to set an element's transform origin:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-12 p-8 px-12 pb-10 font-mono font-bold sm:gap-4 sm:px-8">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            origin-center
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 origin-center rotate-45">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            origin-top-left
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 origin-top-left rotate-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            origin-bottom
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 origin-bottom -rotate-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:origin-center,origin-top-left,origin-bottom] -->
<img class="origin-center rotate-45 ..." src="/img/mountains.jpg" />
<img class="origin-top-left rotate-12 ..." src="/img/mountains.jpg" />
<img class="origin-bottom -rotate-12 ..." src="/img/mountains.jpg" />
```

### Using a custom value

### Responsive design


---

# transform-style

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transform-style*

| Clase | Propiedades CSS |
| :--- | :--- |
| `transform-3d` | `transform-style: preserve-3d;` |
| `transform-flat` | `transform-style: flat;` |

## Examples

### Basic example

Use `transform-3d` to position children in 3D space:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
          transform-flat
        </p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] transform-flat *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">transform-3d</p>
        <div className="size-40 p-10">
          <div className="size-20 rotate-[0.75_1_0.75_45deg] transform-3d *:backface-visible">
            <div className="absolute inset-0 translate-z-12 rotate-x-0 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              1
            </div>
            <div className="absolute inset-0 -translate-z-12 rotate-y-180 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              2
            </div>
            <div className="absolute inset-0 translate-x-12 rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              3
            </div>
            <div className="absolute inset-0 -translate-x-12 -rotate-y-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              4
            </div>
            <div className="absolute inset-0 -translate-y-12 rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 opacity-75 dark:bg-sky-400/85 dark:text-white">
              5
            </div>
            <div className="absolute inset-0 translate-y-12 -rotate-x-90 bg-sky-300/75 text-center text-4xl leading-20 font-bold text-sky-900 dark:bg-sky-400/85 dark:text-white">
              6
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:transform-flat,transform-3d] -->
<div class="size-20 transform-flat ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>

<div class="size-20 transform-3d ...">
  <div class="translate-z-12 rotate-x-0 bg-sky-300/75 ...">1</div>
  <div class="-translate-z-12 rotate-y-18 bg-sky-300/75 ...">2</div>
  <div class="translate-x-12 rotate-y-90 bg-sky-300/75 ...">3</div>
  <div class="-translate-x-12 -rotate-y-90 bg-sky-300/75 ...">4</div>
  <div class="-translate-y-12 rotate-x-90 bg-sky-300/75 ...">5</div>
  <div class="translate-y-12 -rotate-x-90 bg-sky-300/75 ...">6</div>
</div>
```

Without this, any children will only be transformed in 2D space and not in 3D space.

### Responsive design


---

# transform

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transform*

| Clase | Propiedades CSS |
| :--- | :--- |
| `transform-(<custom-property>)` | `transform: var(<custom-property>);` |
| `transform-[<value>]` | `transform: <value>;` |
| `transform-none` | `transform: none;` |
| `transform-gpu` | `transform: translateZ(0) var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);` |
| `transform-cpu` | `transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);` |

## Examples

### Hardware acceleration

If your transition performs better when rendered by the GPU instead of the CPU, you can force hardware acceleration by adding the `transform-gpu` utility:

```html
<!-- [!code classes:transform-gpu] -->
<div class="scale-150 transform-gpu">
  <!-- ... -->
</div>
```

Use the `transform-cpu` utility to force things back to the CPU if you need to undo this conditionally.

### Removing transforms

Use the `transform-none` utility to remove all of the transforms on an element at once:

```html
<!-- [!code classes:transform-none] -->
<div class="skew-y-3 md:transform-none">
  <!-- ... -->
</div>
```

### Using a custom value


---

# transition-behavior

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transition-behavior*

| Clase | Propiedades CSS |
| :--- | :--- |
| `transition-normal` | `transition-behavior: normal;` |
| `transition-discrete` | `transition-behavior: allow-discrete;` |

## Examples

### Basic example

Use the `transition-discrete` utility to start transitions when changing properties with a discrete set of values, such as elements that change from `hidden` to `block`:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center sm:w-1/2">
        <label className="peer mb-3 inline-flex gap-2 text-center font-mono text-xs font-medium text-gray-500 select-none dark:text-gray-400">
          <input type="checkbox" defaultChecked />
          transition-normal
        </label>
        <button className="hidden rounded-md bg-violet-500 px-4 py-2 text-sm font-semibold text-white transition-all transition-normal duration-300 not-peer-has-checked:opacity-0 peer-has-checked:block">
          I hide
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center sm:w-1/2">
        <label className="peer mb-3 inline-flex gap-2 text-center font-mono text-xs font-medium text-gray-500 select-none dark:text-gray-400">
          <input type="checkbox" defaultChecked />
          transition-discrete
        </label>
        <button className="hidden rounded-md bg-violet-500 px-4 py-2 text-sm font-semibold text-white transition-all transition-discrete duration-300 not-peer-has-checked:opacity-0 peer-has-checked:block">
          I fade out
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:transition-discrete] -->
<label class="peer ...">
  <input type="checkbox" checked />
</label>
<button class="hidden transition-all not-peer-has-checked:opacity-0 peer-has-checked:block ...">
  <!-- prettier-ignore -->
  I hide
</button>

<label class="peer ...">
  <input type="checkbox" checked />
</label>
<button class="hidden transition-all transition-discrete not-peer-has-checked:opacity-0 peer-has-checked:block ...">
  I fade out
</button>
```

### Responsive design


---

# transition-delay

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transition-delay*

| Clase | Propiedades CSS |
| :--- | :--- |
| `delay-<number>` | `transition-delay: <number>ms;` |
| `delay-(<custom-property>)` | `transition-delay: var(<custom-property>);` |
| `delay-[<value>]` | `transition-delay: <value>;` |

## Examples

### Basic example

Use utilities like `delay-150` and `delay-700` to set the transition delay of an element in milliseconds:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">delay-150</p>
        <button className="rounded-md bg-blue-500 px-4 py-2 text-sm font-semibold text-white delay-150 duration-300 ease-in-out hover:scale-125">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">delay-300</p>
        <button className="rounded-md bg-blue-500 px-4 py-2 text-sm font-semibold text-white delay-300 duration-300 ease-in-out hover:scale-125">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">delay-700</p>
        <button className="rounded-md bg-blue-500 px-4 py-2 text-sm font-semibold text-white delay-700 duration-300 ease-in-out hover:scale-125">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:delay-150,delay-300,delay-700] -->
<button class="transition delay-150 duration-300 ease-in-out ...">Button A</button>
<button class="transition delay-300 duration-300 ease-in-out ...">Button B</button>
<button class="transition delay-700 duration-300 ease-in-out ...">Button C</button>
```

### Supporting reduced motion

For situations where the user has specified that they prefer reduced motion, you can conditionally apply animations and transitions using the `motion-safe` and `motion-reduce` variants:

```html
<!-- [!code classes:motion-reduce:delay-0] -->
<button type="button" class="delay-300 motion-reduce:delay-0 ...">
  <!-- ... -->
</button>
```

### Using a custom value

### Responsive design


---

# transition-duration

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transition-duration*

| Clase | Propiedades CSS |
| :--- | :--- |
| `duration-<number>` | `transition-duration: <number>ms;` |
| `duration-initial` | `transition-duration: initial;` |
| `duration-(<custom-property>)` | `transition-duration: var(<custom-property>);` |
| `duration-[<value>]` | `transition-duration: <value>;` |

## Examples

### Basic example

Use utilities like `duration-150` and `duration-700` to set the transition duration of an element in milliseconds:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">duration-150</p>
        <button className="rounded-md bg-violet-500 px-4 py-2 text-sm font-semibold text-white duration-150 ease-in-out hover:scale-125">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">duration-300</p>
        <button className="rounded-md bg-violet-500 px-4 py-2 text-sm font-semibold text-white duration-300 ease-in-out hover:scale-125">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">duration-700</p>
        <button className="rounded-md bg-violet-500 px-4 py-2 text-sm font-semibold text-white duration-700 ease-in-out hover:scale-125">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:duration-150,duration-300,duration-700] -->
<button class="transition duration-150 ease-in-out ...">Button A</button>
<button class="transition duration-300 ease-in-out ...">Button B</button>
<button class="transition duration-700 ease-in-out ...">Button C</button>
```

### Supporting reduced motion

For situations where the user has specified that they prefer reduced motion, you can conditionally apply animations and transitions using the `motion-safe` and `motion-reduce` variants:

```html
<!-- [!code classes:motion-reduce:duration-0] -->
<button type="button" class="duration-300 motion-reduce:duration-0 ...">
  <!-- ... -->
</button>
```

### Using a custom value

### Responsive design


---

# transition-property

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transition-property*

| Clase | Propiedades CSS |
| :--- | :--- |
| `transition` | `transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-all` | `transition-property: all;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-colors` | `transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-opacity` | `transition-property: opacity;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-shadow` | `transition-property: box-shadow;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-transform` | `transition-property: transform, translate, scale, rotate;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-none` | `transition-property: none;` |
| `transition-(<custom-property>)` | `transition-property: var(<custom-property>);         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |
| `transition-[<value>]` | `transition-property: <value>;         transition-timing-function: var(--default-transition-timing-function); /* cubic-bezier(0.4, 0, 0.2, 1) */         transition-duration: var(--default-transition-duration); /* 150ms */` |

## Examples

### Basic example

Use utilities like `transition` and `transition-colors` to specify which properties should transition when they change:

  {
    <div className="flex justify-around text-sm leading-6 font-bold text-white">
      <button className="rounded-md bg-blue-500 px-4 py-2 text-sm font-semibold text-white delay-150 duration-300 ease-in-out hover:-translate-y-1 hover:scale-110 hover:bg-indigo-500">
        Save Changes
      </button>
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:transition] -->
<button class="bg-blue-500 transition delay-150 duration-300 ease-in-out hover:-translate-y-1 hover:scale-110 hover:bg-indigo-500 ...">
  Save Changes
</button>
```

### Supporting reduced motion

For situations where the user has specified that they prefer reduced motion, you can conditionally apply animations and transitions using the `motion-safe` and `motion-reduce` variants:

```html
<!-- [!code classes:motion-reduce:transition-none,motion-reduce:hover:transform-none] -->
<!-- prettier-ignore -->
<button class="transform transition hover:-translate-y-1 motion-reduce:transition-none motion-reduce:hover:transform-none ...">
  <!-- ... -->
</button>
```

### Using a custom value

### Responsive design


---

# transition-timing-function

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/transition-timing-function*

| Clase | Propiedades CSS |
| :--- | :--- |
| `ease-linear` | `transition-timing-function: linear;` |
| `ease-in` | `transition-timing-function: var(--ease-in); /* cubic-bezier(0.4, 0, 1, 1) */` |
| `ease-out` | `transition-timing-function: var(--ease-out); /* cubic-bezier(0, 0, 0.2, 1) */` |
| `ease-in-out` | `transition-timing-function: var(--ease-in-out); /* cubic-bezier(0.4, 0, 0.2, 1) */` |
| `ease-initial` | `transition-timing-function: initial;` |
| `ease-(<custom-property>)` | `transition-timing-function: var(<custom-property>);` |
| `ease-[<value>]` | `transition-timing-function: <value>;` |

## Examples

### Basic example

Use utilities like `ease-in` and `ease-out` to control the easing curve of an element's transition:

  {
    <div className="flex flex-col justify-around gap-8 text-sm leading-6 font-bold text-white sm:flex-row sm:gap-0">
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ease-in</p>
        <button className="rounded-md bg-sky-500 px-4 py-2 text-sm font-semibold text-white duration-300 ease-in hover:scale-125">
          Button A
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ease-out</p>
        <button className="rounded-md bg-sky-500 px-4 py-2 text-sm font-semibold text-white duration-300 ease-out hover:scale-125">
          Button B
        </button>
      </div>
      <div className="flex shrink-0 flex-col items-center">
        <p className="mb-3 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">ease-in-out</p>
        <button className="rounded-md bg-sky-500 px-4 py-2 text-sm font-semibold text-white duration-300 ease-in-out hover:scale-125">
          Button C
        </button>
      </div>
    </div>
  }

```html
<!-- [!code classes:ease-in,ease-out,ease-in-out] -->
<button class="duration-300 ease-in ...">Button A</button>
<button class="duration-300 ease-out ...">Button B</button>
<button class="duration-300 ease-in-out ...">Button C</button>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# translate

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/translate*

| Clase | Propiedades CSS |
| :--- | :--- |
| `translate-z-<number>` | `translate: var(--tw-translate-x) var(--tw-translate-y) calc(var(--spacing) * <number>);` |
| `-translate-z-<number>` | `translate: var(--tw-translate-x) var(--tw-translate-y) calc(var(--spacing) * -<number>);` |
| `translate-z-px` | `translate: var(--tw-translate-x) var(--tw-translate-y) 1px;` |
| `-translate-z-px` | `translate: var(--tw-translate-x) var(--tw-translate-y) -1px;` |
| `translate-z-(<custom-property>)` | `translate: var(--tw-translate-x) var(--tw-translate-y) var(<custom-property>);` |
| `translate-z-[<value>]` | `translate: var(--tw-translate-x) var(--tw-translate-y) <value>;` |
| `translate-none` | `translate: none;` |

## Examples

### Using the spacing scale

Use `translate-<number>` utilities like `translate-2` and `-translate-4` to translate an element on both axes based on the spacing scale:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-4 p-8 pb-12 font-mono font-bold">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -translate-6
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -translate-6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">translate-2</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">translate-8</p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-8">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-translate-6,translate-2,translate-8] -->
<img class="-translate-6 ..." src="/img/mountains.jpg" />
<img class="translate-2 ..." src="/img/mountains.jpg" />
<img class="translate-8 ..." src="/img/mountains.jpg" />
```

### Using a percentage

Use `translate-<fraction>` utilities like `translate-1/4` and `-translate-full` to translate an element on both axes by a percentage of the element's size:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-4 p-8 pb-12 font-mono font-bold">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -translate-1/4
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -translate-1/4">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-1/6
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-1/6">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-1/2
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-1/2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-translate-1/4,translate-1/6,translate-1/2] -->
<img class="-translate-1/4 ..." src="/img/mountains.jpg" />
<img class="translate-1/6 ..." src="/img/mountains.jpg" />
<img class="translate-1/2 ..." src="/img/mountains.jpg" />
```

### Translating on the x-axis

Use `translate-x-<number>` or `translate-x-<fraction>` utilities like `translate-x-4` and `translate-x-1/4` to translate an element on the x-axis:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-4 p-8 pb-12 font-mono font-bold">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -translate-x-4
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -translate-x-4">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-x-2
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-x-2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-x-1/2
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-x-1/2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-translate-x-4,translate-x-2,translate-x-1/2] -->
<img class="-translate-x-4 ..." src="/img/mountains.jpg" />
<img class="translate-x-2 ..." src="/img/mountains.jpg" />
<img class="translate-x-1/2 ..." src="/img/mountains.jpg" />
```

### Translating on the y-axis

Use `translate-y-<number>` or `translate-y-<fraction>` utilities like `translate-y-6` and `translate-y-1/3` to translate an element on the y-axis:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-4 p-8 pb-12 font-mono font-bold">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -translate-y-4
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -translate-y-4">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-y-2
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-y-2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-9 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-y-1/2
          </p>
          <div className="relative">
            <div className="absolute inset-0">
              <img
                className="size-24 rounded-lg object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-y-1/2">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:-translate-y-4,translate-y-2,translate-y-1/2] -->
<img class="-translate-y-4 ..." src="/img/mountains.jpg" />
<img class="translate-y-2 ..." src="/img/mountains.jpg" />
<img class="translate-y-1/2 ..." src="/img/mountains.jpg" />
```

### Translating on the z-axis

Use `translate-z-<number>` utilities like `translate-z-6` and `-translate-z-12` to translate an element on the z-axis:

  {
    <div className="flex scroll-p-8 overflow-scroll sm:block sm:overflow-visible">
      <div className="flex shrink-0 items-center justify-around gap-4 p-8 pb-12 font-mono font-bold">
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-12 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            -translate-z-8
          </p>
          <div className="relative rotate-x-50 rotate-z-45 transform-3d">
            <div className="absolute inset-0 overflow-y-hidden rounded-lg backdrop-blur-sm">
              <img
                className="size-24 object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 -translate-z-8">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-12 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-z-4
          </p>
          <div className="relative rotate-x-50 rotate-z-45 transform-3d">
            <div className="absolute inset-0 overflow-y-hidden rounded-lg">
              <img
                className="size-24 object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-z-4">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
        <div className="flex shrink-0 flex-col items-center">
          <p className="mb-12 text-center font-mono text-xs font-medium text-gray-500 dark:text-gray-400">
            translate-z-12
          </p>
          <div className="relative rotate-x-50 rotate-z-45 transform-3d">
            <div className="absolute inset-0 overflow-y-hidden rounded-lg">
              <img
                className="size-24 object-cover opacity-25"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
            </div>
            <div className="relative z-10 translate-z-12">
              <img
                className="size-24 rounded-lg object-cover shadow-xl"
                src="https://images.unsplash.com/photo-1554629947-334ff61d85dc?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&h=1000&q=90"
              />
              <div className="absolute inset-0 rounded-lg ring-1 ring-black/10 ring-inset"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  }

```html
<!-- [!code classes:transform-3d,-translate-z-8,translate-z-2,translate-z-1/2] -->
<div class="transform-3d">
  <img class="-translate-z-8 rotate-x-50 rotate-z-45 ..." src="/img/mountains.jpg" />
  <img class="translate-z-2 rotate-x-50 rotate-z-45 ..." src="/img/mountains.jpg" />
  <img class="translate-z-1/2 rotate-x-50 rotate-z-45 ..." src="/img/mountains.jpg" />
</div>
```

Note that the `translate-z-<number>` utilities require the `transform-3d` utility to be applied to the parent element.

### Using a custom value

### Responsive design


---

# Upgrade guide

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/upgrade-guide*

Tailwind CSS v4.0 is a new major version of the framework, so while we've worked really hard to minimize breaking changes, some updates are necessary. This guide outlines all the steps required to upgrade your projects from v3 to v4.

**Tailwind CSS v4.0 is designed for Safari 16.4+, Chrome 111+, and Firefox 128+.** If you need to support older browsers, stick with v3.4 until your browser support requirements change.

## Using the upgrade tool

If you'd like to upgrade a project from v3 to v4, you can use our upgrade tool to do the vast majority of the heavy lifting for you:

```sh
  # [!code filename:Terminal]
$ npx @tailwindcss/upgrade
```

For most projects, the upgrade tool will automate the entire migration process including updating your dependencies, migrating your configuration file to CSS, and handling any changes to your template files.

The upgrade tool requires Node.js 20 or higher, so ensure your environment is updated before running it.

**We recommend running the upgrade tool in a new branch**, then carefully reviewing the diff and testing your project in the browser to make sure all of the changes look correct. You may need to tweak a few things by hand in complex projects, but the tool will save you a ton of time either way.

It's also a good idea to go over all of the [breaking changes](#changes-from-v3) in v4 and get a good understanding of what's changed, in case there are other things you need to update in your project that the upgrade tool doesn't catch.

## Upgrading manually

### Using PostCSS

In v3, the `tailwindcss` package was a PostCSS plugin, but in v4 the PostCSS plugin lives in a dedicated `@tailwindcss/postcss` package.

Additionally, in v4 imports and vendor prefixing is now handled for you automatically, so you can remove `postcss-import` and `autoprefixer` if they are in your project:

```js
// [!code filename:postcss.config.mjs]
  plugins: {
    // [!code --:4]
    "postcss-import": {},
    tailwindcss: {},
    autoprefixer: {},
    // [!code ++:2]
    "@tailwindcss/postcss": {},
  },
};
```

### Using Vite

If you're using Vite, we recommend migrating from the PostCSS plugin to our new dedicated Vite plugin for improved performance and the best developer experience:

```ts
// [!code filename:vite.config.ts]
// [!code highlight:2]
  plugins: [
    // [!code highlight:2]
    tailwindcss(),
  ],
});
```

### Using Tailwind CLI

In v4, Tailwind CLI lives in a dedicated `@tailwindcss/cli` package. Update any of your build commands to use the new package instead:

```sh
/* [!code filename:Terminal] */
  # [!code --:2]
npx tailwindcss -i input.css -o output.css
  # [!code ++:2]
npx @tailwindcss/cli -i input.css -o output.css
```

## Changes from v3

Here's a comprehensive list of all the breaking changes in Tailwind CSS v4.0.

Our [upgrade tool](#using-the-upgrade-tool) will handle most of these changes for you automatically, so we highly recommend using it if you can.

### Browser requirements

Tailwind CSS v4.0 is designed for modern browsers and targets Safari 16.4, Chrome 111, and Firefox 128. We depend on modern CSS features like `@property` and `color-mix()` for core framework features, and Tailwind CSS v4.0 will not work in older browsers.

If you need to support older browsers, we recommend sticking with v3.4 for now. We're actively exploring a compatibility mode to help people upgrade sooner that we hope to share more news on in the future.

### Removed @tailwind directives

In v4 you import Tailwind using a regular CSS `@import` statement, not using the `@tailwind` directives you used in v3:

```css
/* [!code filename:CSS] */
/* [!code --:4] */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* [!code ++:2] */
@import "tailwindcss";
```

### Removed deprecated utilities

We've removed any utilities that were deprecated in v3 and have been undocumented for several years. Here's a list of what's been removed along with the modern alternative:

{

<table>
  <thead>
    <tr>
      <th>Deprecated</th>
      <th>Replacement</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code className="whitespace-nowrap">bg-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">bg-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">text-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">text-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">border-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">border-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">divide-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">divide-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">ring-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">ring-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">placeholder-opacity-*</code>
      </td>
      <td>
        Use opacity modifiers like <code className="whitespace-nowrap">placeholder-black/50</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">flex-shrink-*</code>
      </td>
      <td>
        <code className="whitespace-nowrap">shrink-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">flex-grow-*</code>
      </td>
      <td>
        <code className="whitespace-nowrap">grow-*</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">overflow-ellipsis</code>
      </td>
      <td>
        <code className="whitespace-nowrap">text-ellipsis</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">decoration-slice</code>
      </td>
      <td>
        <code className="whitespace-nowrap">box-decoration-slice</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">decoration-clone</code>
      </td>
      <td>
        <code className="whitespace-nowrap">box-decoration-clone</code>
      </td>
    </tr>
  </tbody>
</table>

}

### Renamed utilities

We've renamed the following utilities in v4 to make them more consistent and predictable:

{

<table>
  <thead>
    <tr>
      <th>v3</th>
      <th>v4</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <code className="whitespace-nowrap">shadow-sm</code>
      </td>
      <td>
        <code className="whitespace-nowrap">shadow-xs</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">shadow</code>
      </td>
      <td>
        <code className="whitespace-nowrap">shadow-sm</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">drop-shadow-sm</code>
      </td>
      <td>
        <code className="whitespace-nowrap">drop-shadow-xs</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">drop-shadow</code>
      </td>
      <td>
        <code className="whitespace-nowrap">drop-shadow-sm</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">blur-sm</code>
      </td>
      <td>
        <code className="whitespace-nowrap">blur-xs</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">blur</code>
      </td>
      <td>
        <code className="whitespace-nowrap">blur-sm</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">backdrop-blur-sm</code>
      </td>
      <td>
        <code className="whitespace-nowrap">backdrop-blur-xs</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">backdrop-blur</code>
      </td>
      <td>
        <code className="whitespace-nowrap">backdrop-blur-sm</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">rounded-sm</code>
      </td>
      <td>
        <code className="whitespace-nowrap">rounded-xs</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">rounded</code>
      </td>
      <td>
        <code className="whitespace-nowrap">rounded-sm</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">outline-none</code>
      </td>
      <td>
        <code className="whitespace-nowrap">outline-hidden</code>
      </td>
    </tr>
    <tr>
      <td>
        <code className="whitespace-nowrap">ring</code>
      </td>
      <td>
        <code className="whitespace-nowrap">ring-3</code>
      </td>
    </tr>
  </tbody>
</table>

}

#### Updated shadow, radius, and blur scales

We've renamed the default shadow, radius and blur scales to make sure every utility has a named value. The "bare" versions still work for backward compatibility, but the <code><em>{'<utility>'}</em>-sm</code> utilities will look different unless updated to their respective <code><em>{'<utility>'}</em>-xs</code> versions.

To update your project for these changes, replace all the v3 utilities with their v4 versions:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<input class="shadow-sm" />
<!-- [!code ++:2] -->
<input class="shadow-xs" />

<!-- [!code --:2] -->
<input class="shadow" />
<!-- [!code ++:2] -->
<input class="shadow-sm" />
```

#### Renamed outline utility

The `outline` utility now sets `outline-width: 1px` by default to be more consistent with border and ring utilities. Furthermore all `outline-<number>` utilities default `outline-style` to `solid`, omitting the need to combine them with `outline`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<input class="outline outline-2" />
<!-- [!code ++:2] -->
<input class="outline-2" />
```

The `outline-none` utility previously didn't actually set `outline-style: none`, and instead set an invisible outline that would still show up in forced colors mode for accessibility reasons.

To make this more clear we've renamed this utility to `outline-hidden` and added a new `outline-none` utility that actually sets `outline-style: none`.

To update your project for this change, replace any usage of `outline-none` with `outline-hidden`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<input class="focus:outline-none" />
<!-- [!code ++:2] -->
<input class="focus:outline-hidden" />
```

#### Default ring width change

In v3, the `ring` utility added a `3px` ring. We've changed this in v4 to be `1px` to make it consistent with borders and outlines.

To update your project for this change, replace any usage of `ring` with `ring-3`:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<input class="ring ring-blue-500" />
<!-- [!code ++:2] -->
<input class="ring-3 ring-blue-500" />
```

### Space-between selector

We've changed the selector used by the [`space-x-*` and `space-y-*` utilities](/docs/margin#adding-space-between-children) to address serious performance issues on large pages:

```css
/* [!code filename:CSS] */
/* Before */
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
}

/* Now */
.space-y-4 > :not(:last-child) {
  margin-bottom: 1rem;
}
```

You might see changes in your project if you were ever using these utilities with inline elements, or if you were adding other margins to child elements to tweak their spacing.

If this change causes any issues in your project, we recommend migrating to a flex or grid layout and using `gap` instead:

{/* prettier-ignore */}
```html
<!-- [!code filename:HTML] -->
<div class="space-y-4 p-4"> <!-- [!code --] -->
<div class="flex flex-col gap-4 p-4"> <!-- [!code ++] -->
  <label for="name">Name</label>
  <input type="text" name="name" />
</div>
```

### Divide selector

We've changed the selector used by the [`divide-x-*` and `divide-y-*` utilities](/docs/border-width#between-children) to address serious performance issues on large pages:

```css
/* [!code filename:CSS] */
/* Before */
.divide-y-4 > :not([hidden]) ~ :not([hidden]) {
  border-top-width: 4px;
}

/* Now */
.divide-y-4 > :not(:last-child) {
  border-bottom-width: 4px;
}
```

You might see changes in your project if you were ever using these utilities with inline elements, if you were adding other margins/padding to child elements to tweak their spacing, or adjusting the borders of specific child elements.

### Using variants with gradients

In v3, overriding part of a gradient with a variant would "reset" the entire gradient, so in this example the `to-*` color would be transparent in dark mode instead of yellow:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:dark:from-blue-500] -->
<div class="bg-gradient-to-r from-red-500 to-yellow-400 dark:from-blue-500">
  <!-- ... -->
</div>
```

In v4, these values are preserved which is more consistent with how other utilities in Tailwind work.

This means you may need to explicitly use `via-none` if you want to "unset" a three-stop gradient back to a two-stop gradient in a specific state:

```html
<!-- [!code filename:HTML] -->
<!-- [!code classes:dark:via-none] -->
<div class="bg-linear-to-r from-red-500 via-orange-400 to-yellow-400 dark:via-none dark:from-blue-500 dark:to-teal-400">
  <!-- ... -->
</div>
```

### Container configuration

In v3, the `container` utility had several configuration options like `center` and `padding` that no longer exist in v4.

To customize the `container` utility in v4, extend it using the `@utility` directive:

```css
/* [!code filename:CSS] */
@utility container {
  margin-inline: auto;
  padding-inline: 2rem;
}
```

### Default border color

In v3, the `border-*` and `divide-*` utilities used your configured `gray-200` color by default. We've changed this to `currentColor` in v4 to make Tailwind less opinionated and match browser defaults.

To update your project for this change, make sure you specify a color anywhere you're using a `border-*` or `divide-*` utility:

```html
<!-- [!code classes:border-gray-200] -->
<div class="border border-gray-200 px-2 py-3 ...">
  <!-- ... -->
</div>
```

Alternatively, add these base styles to your project to preserve the v3 behavior:

```css
/* [!code filename:CSS] */
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    border-color: var(--color-gray-200, currentColor);
  }
}
```

### Default ring width and color

We've changed the width of the `ring` utility from 3px to 1px and changed the default color from `blue-500` to `currentColor` to make things more consistent the `border-*`, `divide-*`, and `outline-*` utilities.

To update your project for these changes, replace any use of `ring` with `ring-3`:

```html
<!-- prettier-ignore -->
<button class="focus:ring ..."> <!-- [!code --] -->
<button class="focus:ring-3 ..."> <!-- [!code ++] -->
  <!-- ... -->
</button>
```

Then make sure to add `ring-blue-500` anywhere you were depending on the default ring color:

```html
<!-- [!code classes:focus:ring-blue-500] -->
<button class="focus:ring-3 focus:ring-blue-500 ...">
  <!-- ... -->
</button>
```

Alternatively, add these theme variables to your CSS to preserve the v3 behavior:

```css
/* [!code filename:CSS] */
@theme {
  --default-ring-width: 3px;
  --default-ring-color: var(--color-blue-500);
}
```

Note though that these variables are only supported for compatibility reasons, and are not considered idiomatic usage of Tailwind CSS v4.0.

### Preflight changes

We've made a couple small changes to the base styles in Preflight in v4:

#### New default placeholder color

In v3, placeholder text used your configured `gray-400` color by default. We've simplified this in v4 to just use the current text color at 50% opacity.

You probably won't even notice this change (it might even make your project look better), but if you want to preserve the v3 behavior, add this CSS to your project:

```css
/* [!code filename:CSS] */
@layer base {
  input::placeholder,
  textarea::placeholder {
    color: var(--color-gray-400);
  }
}
```

#### Buttons use the default cursor

Buttons now use `cursor: default` instead of `cursor: pointer` to match the default browser behavior.

If you'd like to continue using `cursor: pointer` by default, add these base styles to your CSS:

```css
/* [!code filename:CSS] */
@layer base {
  button:not(:disabled),
  [role="button"]:not(:disabled) {
    cursor: pointer;
  }
}
```

#### Dialog margins removed

Preflight now resets margins on `<dialog>` elements to be consistent with how other elements are reset.

If you still want dialogs to be centered by default, add this CSS to your project:

```css
/* [!code filename:CSS] */
@layer base {
  dialog {
    margin: auto;
  }
}
```

#### Hidden attribute takes priority

Display classes like `block` or `flex` no longer take priority over the `hidden` attribute on an element. Remove the `hidden` attribute if you want an element to be visible to the user. Note that this does not apply to `hidden="until-found"`.

### Using a prefix

Prefixes now look like variants and are always at the beginning of the class name:

```html
<!-- [!code classes:tw:bg-red-500,tw:flex,tw:hover:bg-red-600] -->
<div class="tw:flex tw:bg-red-500 tw:hover:bg-red-600">
  <!-- ... -->
</div>
```

When using a prefix, you should still configure your theme variables as if you aren't using a prefix:

```css {{ filename: "app.css" }}
@import "tailwindcss" prefix(tw);

@theme {
  --font-display: "Satoshi", "sans-serif";

  --breakpoint-3xl: 120rem;

  --color-avocado-100: oklch(0.99 0 0);
  --color-avocado-200: oklch(0.98 0.04 113.22);
  --color-avocado-300: oklch(0.94 0.11 115.03);

  /* ... */
}
```

The generated CSS variables _will_ include a prefix to avoid conflicts with any existing variables in your project:

```css {{ filename: "dist.css" }}
:root {
  --tw-font-display: "Satoshi", "sans-serif";

  --tw-breakpoint-3xl: 120rem;

  --tw-color-avocado-100: oklch(0.99 0 0);
  --tw-color-avocado-200: oklch(0.98 0.04 113.22);
  --tw-color-avocado-300: oklch(0.94 0.11 115.03);

  /* ... */
}
```

### The important modifier

In v3 you could mark a utility as important by placing an `!` at the beginning of the utility name (but after any variants). In v4 you should place the `!` at the very end of the class name instead:

```html
<!-- [!code classes:bg-red-500!,flex!,hover:bg-red-600/50!] -->
<div class="flex! bg-red-500! hover:bg-red-600/50!">
  <!-- ... -->
</div>
```

The old way is still supported for compatibility but is deprecated.

### Adding custom utilities

In v3, any custom classes you defined within `@layer utilities` or `@layer components` would get picked up by Tailwind as a true utility class and would automatically work with variants like `hover`, `focus`, or `lg` with the difference being that `@layer components` would always come first in the generated stylesheet.

In v4 we are using native cascade layers and no longer hijacking the `@layer` at-rule, so we've introduced the `@utility` API as a replacement:

```css
/* [!code filename:CSS] */
/* [!code --:6] */
@layer utilities {
  .tab-4 {
    tab-size: 4;
  }
}
/* [!code ++:4] */
@utility tab-4 {
  tab-size: 4;
}
```

Custom utilities are now also sorted based on the amount of properties they define. This means that component utilities like this `.btn` can be overwritten by other Tailwind utilities without additional configuration:

```css
/* [!code filename:CSS] */
/* [!code --:8] */
@layer components {
  .btn {
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: ButtonFace;
  }
}
/* [!code ++:6] */
@utility btn {
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  background-color: ButtonFace;
}
```

Learn more about registering custom utilities in the [adding custom utilities documentation](/docs/adding-custom-styles#adding-custom-utilities).

### Variant stacking order

In v3, stacked variants were applied from right to left, but in v4 we've updated them to apply left to right to look more like CSS syntax.

To update your project for this change, reverse the order of any order-sensitive stacked variants in your project:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<!-- prettier-ignore -->
<ul class="py-4 first:*:pt-0 last:*:pb-0">
<!-- [!code ++:2] -->
<ul class="py-4 *:first:pt-0 *:last:pb-0">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>
```

You likely have very few of these if any—the direct child variant (`*`) and any typography plugin variants (`prose-headings`) are the most likely ones you might be using, and even then it's only if you've stacked them with other variants.

### Variables in arbitrary values

In v3 you were able to use CSS variables as arbitrary values without `var()`, but recent updates to CSS mean that this can often be ambiguous, so we've changed the syntax for this in v4 to use parentheses instead of square brackets.

To update your project for this change, replace usage of the old variable shorthand syntax with the new variable shorthand syntax:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<div class="bg-[--brand-color]"></div>
<!-- [!code ++:2] -->
<div class="bg-(--brand-color)"></div>
```

### Arbitrary values in grid and object-position utilities

Commas were previously replaced with spaces in the `grid-cols-*`, `grid-rows-*`, and `object-*` utilities inside arbitrary values. This special behavior existed in Tailwind CSS v3 for compatibility with v2. This compatibility no longer exists in v4.0 and underscores must be used to represent spaces.

To update your project for this change, replace usage of commas that were intended to be spaces with underscores:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<div class="grid-cols-[max-content,auto]"></div>
<!-- [!code ++:2] -->
<div class="grid-cols-[max-content_auto]"></div>
```

### Hover styles on mobile

In v4 we've updated the `hover` variant to only apply when the primary input device supports hover:

```css
/* [!code filename:CSS] */
@media (hover: hover) {
  .hover\:underline:hover {
    text-decoration: underline;
  }
}
```

This can create problems if you've built your site in a way that depends on touch devices triggering hover on tap. If this is an issue for you, you can override the `hover` variant with your own variant that uses the old implementation:

```css
/* [!code filename:CSS] */
@custom-variant hover (&:hover);
```

Generally though we recommend treating hover functionality as an enhancement, and not depending on it for your site to work since touch devices don't truly have the ability to hover.

### Transitioning outline-color

The `transition` and `transition-colors` utilities now include the `outline-color` property.

This means if you were adding an outline with a custom color on focus, you will see the color transition from the default color. To avoid this, make sure you set the outline color unconditionally, or explicitly set it for both states:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<button class="transition hover:outline-2 hover:outline-cyan-500"></button>
<!-- [!code ++:2] -->
<button class="outline-cyan-500 transition hover:outline-2"></button>
```

### Individual transform properties

The `rotate-*`, `scale-*`, and `translate-*` utilities are now based on the individual `rotate`, `scale`, and `translate` properties in CSS. Normally this shouldn't affect the behavior but there's a couple of cases to look out for:

#### Resetting Transforms

You previously would've been able to "reset" your rotate, scale, and translate utilities via `transform-none`. This no longer works and you will need to reset the individual properties instead:

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<button class="scale-150 focus:transform-none"></button>
<!-- [!code ++:2] -->
<button class="scale-150 focus:scale-none"></button>
```

#### Transitions

If you customize the list of transitioned properties and include `transform` (e.g. by writing `transition-[opacity,transform]`) then these utilities will no longer transition. To fix this, include the individual properties in the list. For example, if you want to transition changes when using `opacity-*` and `scale-*` utilities you should use `transition-[opacity,scale]` instead.

```html
<!-- [!code filename:HTML] -->
<!-- [!code --:2] -->
<button class="transition-[opacity,transform] hover:scale-150"></button>
<!-- [!code ++:2] -->
<button class="transition-[opacity,scale] hover:scale-150"></button>
```

### Disabling core plugins

In v3 there was a `corePlugins` option you could use to completely disable certain utilities in the framework. This is no longer supported in v4.

### Using the theme() function

Since v4 includes CSS variables for all of your theme values, we recommend using those variables instead of the `theme()` function whenever possible:

```css
/* [!code filename:CSS] */
.my-class {
  /* [!code --:2] */
  background-color: theme(colors.red.500);
  /* [!code ++:2] */
  background-color: var(--color-red-500);
}
```

For cases where you still need to use the `theme()` function (like in media queries where CSS variables aren't supported), you should use the CSS variable name instead of the old dot notation:

```css
/* [!code filename:CSS] */
@media (width >= theme(screens.xl)) { /* [!code --] */
@media (width >= theme(--breakpoint-xl)) { /* [!code ++] */
  /* ... */
}
```

### Using a JavaScript config file

JavaScript config files are still supported for backward compatibility, but they are no longer detected automatically in v4.

If you still need to use a JavaScript config file, you can load it explicitly using the `@config` directive:

```css
/* [!code filename:CSS] */
@config "../../tailwind.config.js";
```

The `corePlugins`, `safelist`, and `separator` options from the JavaScript-based config are not supported in v4.0. To safelist utilities in v4 use [`@source inline()`](/docs/detecting-classes-in-source-files#safelisting-specific-utilities).

### Theme values in JavaScript

In v3 we exported a `resolveConfig` function that you could use to turn your JavaScript-based config into a flat object that you could use in your other JavaScript.

We've removed this in v4 in hopes that people can use the CSS variables we generate directly instead, which is much simpler and will significantly reduce your bundle size.

For example, the popular [Motion](https://motion.dev/docs/react-quick-start) library for React lets you animate to and from CSS variable values:

```jsx
// [!code filename:JSX]
// [!code word:var(--color-blue-500)]
<motion.div animate={{ backgroundColor: "var(--color-blue-500)" }} />
```

If you need access to a resolved CSS variable value in JS, you can use `getComputedStyle` to get the value of a theme variable on the document root:

```js
// [!code filename:spaghetti.js]
let styles = getComputedStyle(document.documentElement);
let shadow = styles.getPropertyValue("--shadow-xl");
```

### Using @apply with Vue, Svelte, or CSS modules

In v4, stylesheets that are bundled separately from your main CSS file (e.g. CSS modules files, `<style>` blocks in Vue, Svelte, or Astro, etc.) do not have access to theme variables, custom utilities, and custom variants defined in other files.

To make these definitions available in these contexts, use [`@reference`](/docs/functions-and-directives#reference-directive) to import them without duplicating any CSS in your bundle:

```html
<!-- [!code filename:Vue] -->
<template>
  <h1>Hello world!</h1>
</template>

<style>
  /* [!code highlight:2] */
  @reference "../../app.css";

  h1 {
    @apply text-2xl font-bold text-red-500;
  }
</style>
```

Alternatively, you can use your CSS theme variables directly instead of using `@apply` at all, which will also improve performance since Tailwind won't need to process these styles:

```html
<!-- [!code filename:Vue] -->
<template>
  <h1>Hello world!</h1>
</template>

<style>
  h1 {
    /* [!code highlight:2] */
    color: var(--text-red-500);
  }
</style>
```

You can find more documentation on [using Tailwind with CSS modules](/docs/compatibility#css-modules).

### Using Sass, Less, and Stylus

Tailwind CSS v4.0 is not designed to be used with CSS preprocessors like Sass, Less, or Stylus. Think of Tailwind CSS itself as your preprocessor — you shouldn't use Tailwind with Sass for the same reason you wouldn't use Sass with Stylus. Because of this it is not possible to use Sass, Less, or Stylus for your stylesheets or `<style>` blocks in Vue, Svelte, Astro, etc.

Learn more in the [compatibility documentation](/docs/compatibility#sass-less-and-stylus).


---

# user-select

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/user-select*

| Clase | Propiedades CSS |
| :--- | :--- |
| `select-none` | `user-select: none;` |
| `select-text` | `user-select: text;` |
| `select-all` | `user-select: all;` |
| `select-auto` | `user-select: auto;` |

## Examples

### Disabling text selection

Use the `select-none` utility to prevent selecting text in an element and its children:

  {
    <div className="flex justify-center">
      <div className="dark:highlight-white/5 inline-flex rounded-lg bg-white px-4 py-3 text-center font-sans text-sm font-semibold text-gray-900 ring-1 ring-gray-900/5 select-none dark:bg-gray-800 dark:text-gray-200 dark:ring-0">
        The quick brown fox jumps over the lazy dog.
      </div>
    </div>
  }

```html
<!-- [!code classes:select-none] -->
<div class="select-none ...">The quick brown fox jumps over the lazy dog.</div>
```

### Allowing text selection

Use the `select-text` utility to allow selecting text in an element and its children:

  {
    <div className="flex justify-center">
      <div className="dark:highlight-white/5 inline-flex rounded-lg bg-white px-4 py-3 text-center font-sans text-sm font-semibold text-gray-900 ring-1 ring-gray-900/5 select-text dark:bg-gray-800 dark:text-gray-200 dark:ring-0">
        The quick brown fox jumps over the lazy dog.
      </div>
    </div>
  }

```html
<!-- [!code classes:select-text] -->
<div class="select-text ...">The quick brown fox jumps over the lazy dog.</div>
```

### Selecting all text in one click

Use the `select-all` utility to automatically select all the text in an element when a user clicks:

  {
    <div className="flex justify-center">
      <div className="dark:highlight-white/5 inline-flex rounded-lg bg-white px-4 py-3 text-center font-sans text-sm font-semibold text-gray-900 ring-1 ring-gray-900/5 select-all dark:bg-gray-800 dark:text-gray-200 dark:ring-0">
        The quick brown fox jumps over the lazy dog.
      </div>
    </div>
  }

```html
<!-- [!code classes:select-all] -->
<div class="select-all ...">The quick brown fox jumps over the lazy dog.</div>
```

### Using auto select behavior

Use the `select-auto` utility to use the default browser behavior for selecting text:

  {
    <div className="flex justify-center">
      <div className="dark:highlight-white/5 inline-flex rounded-lg bg-white px-4 py-3 text-center font-sans text-sm font-semibold text-gray-900 ring-1 ring-gray-900/5 select-auto dark:bg-gray-800 dark:text-gray-200 dark:ring-0">
        The quick brown fox jumps over the lazy dog.
      </div>
    </div>
  }

```html
<!-- [!code classes:select-auto] -->
<div class="select-auto ...">The quick brown fox jumps over the lazy dog.</div>
```

### Responsive design


---

# vertical-align

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/vertical-align*

| Clase | Propiedades CSS |
| :--- | :--- |
| `align-baseline` | `vertical-align: baseline;` |
| `align-top` | `vertical-align: top;` |
| `align-middle` | `vertical-align: middle;` |
| `align-bottom` | `vertical-align: bottom;` |
| `align-text-top` | `vertical-align: text-top;` |
| `align-text-bottom` | `vertical-align: text-bottom;` |
| `align-sub` | `vertical-align: sub;` |
| `align-super` | `vertical-align: super;` |
| `align-(<custom-property>)` | `vertical-align: var(<custom-property>);` |
| `align-[<value>]` | `vertical-align: <value>;` |

## Examples

### Aligning to baseline

Use the `align-baseline` utility to align the baseline of an element with the baseline of its parent:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-baseline">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-baseline] -->
<span class="inline-block align-baseline">The quick brown fox...</span>
```

### Aligning to top

Use the `align-top` utility to align the top of an element and its descendants with the top of the entire line:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-top">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-top] -->
<span class="inline-block align-top">The quick brown fox...</span>
```

### Aligning to middle

Use the `align-middle` utility to align the middle of an element with the baseline plus half the x-height of the parent:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-middle">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-middle] -->
<span class="inline-block align-middle">The quick brown fox...</span>
```

### Aligning to bottom

Use the `align-bottom` utility to align the bottom of an element and its descendants with the bottom of the entire line:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-bottom">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-bottom] -->
<span class="inline-block align-bottom">The quick brown fox...</span>
```

### Aligning to parent top

Use the `align-text-top` utility to align the top of an element with the top of the parent element's font:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-text-top">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-text-top] -->
<span class="inline-block align-text-top">The quick brown fox...</span>
```

### Aligning to parent bottom

Use the `align-text-bottom` utility to align the bottom of an element with the bottom of the parent element's font:

  {
    <div className="relative mx-auto max-w-md leading-none">
      <span className="inline-block h-8 w-0 align-text-bottom">
        <span className="absolute top-0 h-8 w-full border-t border-b border-dashed border-pink-400/50"></span>
        <span className="absolute top-0 h-4 w-full border-b border-dashed border-pink-400/50"></span>
      </span>
      <span className="relative z-10 px-4 font-medium text-gray-700 dark:text-gray-200">
        The quick brown fox jumps over the lazy dog.
      </span>
    </div>
  }

```html
<!-- [!code classes:align-text-bottom] -->
<span class="inline-block align-text-bottom">The quick brown fox...</span>
```

### Using a custom value

### Responsive design


---

# visibility

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/visibility*

| Clase | Propiedades CSS |
| :--- | :--- |
| `visible` | `visibility: visible;` |
| `invisible` | `visibility: hidden;` |
| `collapse` | `visibility: collapse;` |

## Examples

### Making elements invisible

Use the `invisible` utility to hide an element, but still maintain its place in the document, affecting the layout of other elements:

  {
    <div className="grid grid-cols-1">
      
      <div className="col-start-1 row-start-1 grid grid-cols-3 gap-4 font-mono text-sm leading-6 font-bold text-white">
        <div className="flex items-center justify-center rounded-lg bg-cyan-500 p-4">01</div>
        <div className="invisible flex items-center justify-center rounded-lg bg-cyan-500 p-4">02</div>
        <div className="flex items-center justify-center rounded-lg bg-cyan-500 p-4">03</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:invisible] -->
<div class="grid grid-cols-3 gap-4">
  <div>01</div>
  <div class="invisible ...">02</div>
  <div>03</div>
</div>
```

To completely remove an element from the document, use the [display](/docs/display#hidden) property instead.

### Collapsing elements

Use the `collapse` utility to hide table rows, row groups, columns, and column groups as if they were set to `display: none`, but without impacting the size of other rows and columns:

  {
    <div className="py-8">
      <div className="mb-3 pl-4 text-sm font-medium text-gray-500 dark:text-gray-400">Showing all rows</div>
      <table className="w-full border-collapse border-y border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Invoice #
            </th>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Client
            </th>
            <th className="border border-gray-300 px-4 py-3 text-right font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Amount
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #100
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Pendant Publishing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $2,000.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #101
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Kruger Industrial Smoothing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $545.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #102
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              J. Peterman
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $10,000.25
            </td>
          </tr>
        </tbody>
      </table>
      <div className="mt-10 mb-3 pl-4 text-sm font-medium text-gray-500 dark:text-gray-400">
        Hiding a row using <code className="text-xs text-gray-700 dark:text-gray-300">`collapse`</code>
      </div>
      <table className="w-full border-collapse border-y border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Invoice #
            </th>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Client
            </th>
            <th className="border border-gray-300 px-4 py-3 text-right font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Amount
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #100
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Pendant Publishing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $2,000.00
            </td>
          </tr>
          <tr className="collapse">
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #101
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Kruger Industrial Smoothing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $545.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #102
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              J. Peterman
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $10,000.25
            </td>
          </tr>
        </tbody>
      </table>
      <div className="mt-10 mb-3 pl-4 text-sm font-medium text-gray-500 dark:text-gray-400">
        Hiding a row using <code className="text-xs text-gray-700 dark:text-gray-300">`hidden`</code>
      </div>
      <table className="w-full border-collapse border-y border-gray-400 bg-white text-sm dark:border-gray-500 dark:bg-gray-800">
        <thead className="bg-gray-50 dark:bg-gray-700">
          <tr>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Invoice #
            </th>
            <th className="border border-gray-300 px-4 py-3 text-left font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Client
            </th>
            <th className="border border-gray-300 px-4 py-3 text-right font-semibold text-gray-900 first:border-l-0 last:border-r-0 dark:border-gray-600 dark:text-gray-200">
              Amount
            </th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #100
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Pendant Publishing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $2,000.00
            </td>
          </tr>
          <tr className="hidden">
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #101
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              Kruger Industrial Smoothing
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $545.00
            </td>
          </tr>
          <tr>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              #102
            </td>
            <td className="border border-gray-300 px-4 py-3 text-gray-500 first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              J. Peterman
            </td>
            <td className="border border-gray-300 px-4 py-3 text-right text-gray-500 tabular-nums first:border-l-0 last:border-r-0 dark:border-gray-700 dark:text-gray-400">
              $10,000.25
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  }

```html
<!-- [!code classes:collapse] -->
<table>
  <thead>
    <tr>
      <th>Invoice #</th>
      <th>Client</th>
      <th>Amount</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>#100</td>
      <td>Pendant Publishing</td>
      <td>$2,000.00</td>
    </tr>
    <tr class="collapse">
      <td>#101</td>
      <td>Kruger Industrial Smoothing</td>
      <td>$545.00</td>
    </tr>
    <tr>
      <td>#102</td>
      <td>J. Peterman</td>
      <td>$10,000.25</td>
    </tr>
  </tbody>
</table>
```

This makes it possible to dynamically toggle rows and columns without affecting the table layout.

### Making elements visible

Use the `visible` utility to make an element visible:

  {
    <div className="grid grid-cols-3 gap-4 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">01</div>
      <div className="visible flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">02</div>
      <div className="flex items-center justify-center rounded-lg bg-fuchsia-500 p-4">03</div>
    </div>
  }

```html
<!-- [!code classes:visible] -->
<div class="grid grid-cols-3 gap-4">
  <div>01</div>
  <div class="visible ...">02</div>
  <div>03</div>
</div>
```

This is mostly useful for undoing the `invisible` utility at different screen sizes.

### Responsive design


---

# white-space

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/white-space*

| Clase | Propiedades CSS |
| :--- | :--- |
| `whitespace-normal` | `white-space: normal;` |
| `whitespace-nowrap` | `white-space: nowrap;` |
| `whitespace-pre` | `white-space: pre;` |
| `whitespace-pre-line` | `white-space: pre-line;` |
| `whitespace-pre-wrap` | `white-space: pre-wrap;` |
| `whitespace-break-spaces` | `white-space: break-spaces;` |

## Examples

### Normal

Use the `whitespace-normal` utility to cause text to wrap normally within an element. Newlines and spaces will be collapsed:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-normal"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

```html
<!-- [!code classes:whitespace-normal] -->
<!-- prettier-ignore -->
<p class="whitespace-normal">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### No Wrap

Use the `whitespace-nowrap` utility to prevent text from wrapping within an element. Newlines and spaces will be collapsed:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-nowrap"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

```html
<!-- [!code classes:whitespace-nowrap] -->
<!-- prettier-ignore -->
<p class="overflow-auto whitespace-nowrap">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### Pre

Use the `whitespace-pre` utility to preserve newlines and spaces within an element. Text will not be wrapped:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-pre"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

```html
<!-- [!code classes:whitespace-pre] -->
<!-- prettier-ignore -->
<p class="overflow-auto whitespace-pre">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### Pre Line

Use the `whitespace-pre-line` utility to preserve newlines but not spaces within an element. Text will be wrapped normally:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-pre-line"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

```html
<!-- [!code classes:whitespace-pre-line] -->
<!-- prettier-ignore -->
<p class="whitespace-pre-line">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### Pre Wrap

Use the `whitespace-pre-wrap` utility to preserve newlines and spaces within an element. Text will be wrapped normally:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-pre-wrap"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

{/* prettier-ignore */}
```html
<!-- [!code classes:whitespace-pre-wrap] -->
<!-- prettier-ignore -->
<p class="whitespace-pre-wrap">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### Break Spaces

Use the `whitespace-break-spaces` utility to preserve newlines and spaces within an element. White space at the end of lines will not hang, but will wrap to the next line:

  {
    <div className="mx-auto max-w-sm border-x border-x-pink-400/30 py-8 text-gray-900 dark:text-gray-200">
      <p
        className="whitespace-break-spaces"
        children={
          "Hey everyone!\n\nIt’s almost 2022       and we still don’t know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.\n\nYou will never know."
        }
      />
    </div>
  }

```html
<!-- [!code classes:whitespace-break-spaces] -->
<!-- prettier-ignore -->
<p class="whitespace-break-spaces">Hey everyone!

It's almost 2022       and we still don't know if there             are aliens living among us, or do we? Maybe the person writing this is an alien.

You will never know.</p>
```

### Responsive design


---

# width

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/width*

| Clase | Propiedades CSS |
| :--- | :--- |
| `w-<number>` | `width: calc(var(--spacing) * <number>);` |
| `w-<fraction>` | `width: calc(<fraction> * 100%);` |
| `w-3xs` | `width: var(--container-3xs); /* 16rem (256px) */` |
| `w-2xs` | `width: var(--container-2xs); /* 18rem (288px) */` |
| `w-xs` | `width: var(--container-xs); /* 20rem (320px) */` |
| `w-sm` | `width: var(--container-sm); /* 24rem (384px) */` |
| `w-md` | `width: var(--container-md); /* 28rem (448px) */` |
| `w-lg` | `width: var(--container-lg); /* 32rem (512px) */` |
| `w-xl` | `width: var(--container-xl); /* 36rem (576px) */` |
| `w-2xl` | `width: var(--container-2xl); /* 42rem (672px) */` |
| `w-3xl` | `width: var(--container-3xl); /* 48rem (768px) */` |
| `w-4xl` | `width: var(--container-4xl); /* 56rem (896px) */` |
| `w-5xl` | `width: var(--container-5xl); /* 64rem (1024px) */` |
| `w-6xl` | `width: var(--container-6xl); /* 72rem (1152px) */` |
| `w-7xl` | `width: var(--container-7xl); /* 80rem (1280px) */` |
| `w-auto` | `width: auto;` |
| `w-px` | `width: 1px;` |
| `w-full` | `width: 100%;` |
| `w-screen` | `width: 100vw;` |
| `w-dvw` | `width: 100dvw;` |
| `w-dvh` | `width: 100dvh;` |
| `w-lvw` | `width: 100lvw;` |
| `w-lvh` | `width: 100lvh;` |
| `w-svw` | `width: 100svw;` |
| `w-svh` | `width: 100svh;` |
| `w-min` | `width: min-content;` |
| `w-max` | `width: max-content;` |
| `w-fit` | `width: fit-content;` |
| `w-(<custom-property>)` | `width: var(<custom-property>);` |
| `w-[<value>]` | `width: <value>;` |
| `size-<number>` | `width: calc(var(--spacing) * <number>);\nheight: calc(var(--spacing) * <number>);` |
| `size-<fraction>` | `width: calc(<fraction> * 100%);\nheight: calc(<fraction> * 100%);` |
| `size-auto` | `width: auto;\nheight: auto;` |
| `size-px` | `width: 1px;\nheight: 1px;` |
| `size-full` | `width: 100%;\nheight: 100%;` |
| `size-dvw` | `width: 100dvw;\nheight: 100dvw;` |
| `size-dvh` | `width: 100dvh;\nheight: 100dvh;` |
| `size-lvw` | `width: 100lvw;\nheight: 100lvw;` |
| `size-lvh` | `width: 100lvh;\nheight: 100lvh;` |
| `size-svw` | `width: 100svw;\nheight: 100svw;` |
| `size-svh` | `width: 100svh;\nheight: 100svh;` |
| `size-min` | `width: min-content;\nheight: min-content;` |
| `size-max` | `width: max-content;\nheight: max-content;` |
| `size-fit` | `width: fit-content;\nheight: fit-content;` |
| `size-(<custom-property>)` | `width: var(<custom-property>);\nheight: var(<custom-property>);` |
| `size-[<value>]` | `width: <value>;\nheight: <value>;` |

## Examples

### Basic example

Use `w-<number>` utilities like `w-24` and `w-64` to set an element to a fixed width based on the spacing scale:

  {
    <div className="flex justify-center">
      <div className="space-y-4 text-center font-mono text-xs font-bold text-white">
        <div className="hidden w-96 rounded-lg bg-blue-500 px-4 py-2 sm:block">w-96</div>
        <div className="hidden w-80 rounded-lg bg-blue-500 px-4 py-2 sm:block">w-80</div>
        <div className="hidden w-64 rounded-lg bg-blue-500 px-4 py-2 sm:block">w-64</div>
        <div className="w-48 rounded-lg bg-blue-500 px-4 py-2">w-48</div>
        <div className="w-40 rounded-lg bg-blue-500 px-4 py-2">w-40</div>
        <div className="w-32 rounded-lg bg-blue-500 px-4 py-2">w-32</div>
        <div className="w-24 rounded-lg bg-blue-500 px-4 py-2">w-24</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:w-96,w-80,w-64,w-48,w-40,w-32,w-24] -->
<div class="w-96 ...">w-96</div>
<div class="w-80 ...">w-80</div>
<div class="w-64 ...">w-64</div>
<div class="w-48 ...">w-48</div>
<div class="w-40 ...">w-40</div>
<div class="w-32 ...">w-32</div>
<div class="w-24 ...">w-24</div>
```

### Using a percentage

Use `w-full` or `w-<fraction>` utilities like `w-1/2` and `w-2/5` to give an element a percentage-based width:

  {
    <div className="space-y-4 font-mono text-xs font-bold text-white">
      <div className="flex gap-x-4">
        <div className="w-1/2 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/2</div>
        <div className="w-1/2 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/2</div>
      </div>
      <div className="flex gap-x-4">
        <div className="w-2/5 rounded-lg bg-violet-500 px-4 py-2 text-center">w-2/5</div>
        <div className="w-3/5 rounded-lg bg-violet-500 px-4 py-2 text-center">w-3/5</div>
      </div>
      <div className="flex gap-x-4">
        <div className="w-1/3 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/3</div>
        <div className="w-2/3 rounded-lg bg-violet-500 px-4 py-2 text-center">w-2/3</div>
      </div>
      <div className="hidden gap-x-4 sm:flex">
        <div className="w-1/4 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/4</div>
        <div className="w-3/4 rounded-lg bg-violet-500 px-4 py-2 text-center">w-3/4</div>
      </div>
      <div className="hidden gap-x-4 sm:flex">
        <div className="w-1/5 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/5</div>
        <div className="w-4/5 rounded-lg bg-violet-500 px-4 py-2 text-center">w-4/5</div>
      </div>
      <div className="hidden gap-x-4 sm:flex">
        <div className="w-1/6 rounded-lg bg-violet-500 px-4 py-2 text-center">w-1/6</div>
        <div className="w-5/6 rounded-lg bg-violet-500 px-4 py-2 text-center">w-5/6</div>
      </div>
      <div className="w-full rounded-lg bg-violet-500 px-4 py-2 text-center font-mono text-white">w-full</div>
    </div>
  }

```html
<!-- [!code classes:w-1/2,w-2/5,w-3/5,w-1/3,w-2/3,w-1/4,w-3/4,w-1/5,w-4/5,w-1/6,w-5/6,w-full] -->
<div class="flex ...">
  <div class="w-1/2 ...">w-1/2</div>
  <div class="w-1/2 ...">w-1/2</div>
</div>
<div class="flex ...">
  <div class="w-2/5 ...">w-2/5</div>
  <div class="w-3/5 ...">w-3/5</div>
</div>
<div class="flex ...">
  <div class="w-1/3 ...">w-1/3</div>
  <div class="w-2/3 ...">w-2/3</div>
</div>
<div class="flex ...">
  <div class="w-1/4 ...">w-1/4</div>
  <div class="w-3/4 ...">w-3/4</div>
</div>
<div class="flex ...">
  <div class="w-1/5 ...">w-1/5</div>
  <div class="w-4/5 ...">w-4/5</div>
</div>
<div class="flex ...">
  <div class="w-1/6 ...">w-1/6</div>
  <div class="w-5/6 ...">w-5/6</div>
</div>
<div class="w-full ...">w-full</div>
```

### Using the container scale

Use utilities like `w-sm` and `w-xl` to set an element to a fixed width based on the container scale:

  {
    <div className="flex justify-center">
      <div className="space-y-4 text-center font-mono text-xs font-bold text-white">
        <div className="hidden w-xl rounded-lg bg-sky-500 px-4 py-2 sm:block">w-xl</div>
        <div className="hidden w-lg rounded-lg bg-sky-500 px-4 py-2 sm:block">w-lg</div>
        <div className="hidden w-md rounded-lg bg-sky-500 px-4 py-2 sm:block">w-md</div>
        <div className="w-sm rounded-lg bg-sky-500 px-4 py-2">w-sm</div>
        <div className="w-xs rounded-lg bg-sky-500 px-4 py-2">w-xs</div>
        <div className="w-2xs rounded-lg bg-sky-500 px-4 py-2">w-2xs</div>
        <div className="w-3xs rounded-lg bg-sky-500 px-4 py-2">w-3xs</div>
      </div>
    </div>
  }

```html
<!-- [!code classes:w-xl,w-lg,w-md,w-sm,w-xs,w-2xs,w-3xs] -->
<div class="w-xl ...">w-xl</div>
<div class="w-lg ...">w-lg</div>
<div class="w-md ...">w-md</div>
<div class="w-sm ...">w-sm</div>
<div class="w-xs ...">w-xs</div>
<div class="w-2xs ...">w-2xs</div>
<div class="w-3xs ...">w-3xs</div>
```

### Matching the viewport

Use the `w-screen` utility to make an element span the entire width of the viewport:

```html
<!-- [!code classes:w-screen] -->
<div class="w-screen">
  <!-- ... -->
</div>
```

Alternatively, you can match the width of the large, small or dynamic viewports using the `w-lvw`, `w-svw`, and `w-dvw` utilities.

### Resetting the width

Use the `w-auto` utility to remove an element's assigned width under a specific condition, like at a particular breakpoint:

```html
<!-- [!code classes:w-full,w-auto] -->
<div class="w-full md:w-auto">
  <!-- ... -->
</div>
```

### Setting both width and height

Use utilities like `size-px`, `size-4`, and `size-full` to set both the width and height of an element at the same time:

  {
    <div className="grid grid-flow-col justify-center gap-4 text-center font-mono text-xs font-bold text-white">
      <div className="grid size-16 items-center justify-center rounded-lg bg-indigo-500">size-16</div>
      <div className="grid size-20 items-center justify-center rounded-lg bg-indigo-500">size-20</div>
      <div className="grid size-24 items-center justify-center rounded-lg bg-indigo-500">size-24</div>
      <div className="hidden size-32 items-center justify-center rounded-lg bg-indigo-500 sm:grid">size-32</div>
      <div className="hidden size-40 items-center justify-center rounded-lg bg-indigo-500 md:grid">size-40</div>
    </div>
  }

```html
<!-- [!code classes:size-16,size-20,size-24,size-32,size-40] -->
<div class="size-16 ...">size-16</div>
<div class="size-20 ...">size-20</div>
<div class="size-24 ...">size-24</div>
<div class="size-32 ...">size-32</div>
<div class="size-40 ...">size-40</div>
```

### Using a custom value

### Responsive design

## Customizing your theme


---

# will-change

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/will-change*

| Clase | Propiedades CSS |
| :--- | :--- |
| `will-change-auto` | `will-change: auto;` |
| `will-change-scroll` | `will-change: scroll-position;` |
| `will-change-contents` | `will-change: contents;` |
| `will-change-transform` | `will-change: transform;` |
| `will-change-<custom-property>` | `will-change: var(<custom-property>);` |
| `will-change-[<value>]` | `will-change: <value>;` |

## Examples

### Optimizing with will change

Use the `will-change-scroll`, `will-change-contents` and `will-change-transform` utilities to optimize an element that's expected to change in the near future by instructing the browser to prepare the necessary animation before it actually begins:

```html
<!-- [!code classes:will-change-scroll] -->
<div class="overflow-auto will-change-scroll">
  <!-- ... -->
</div>
```

It's recommended that you apply these utilities just before an element changes, and then remove it shortly after it finishes using `will-change-auto`.

The `will-change` property is intended to be used as a last resort when dealing with **known performance problems**. Avoid using these utilities too much, or simply in anticipation of performance issues, as it could actually cause the page to be less performant.

### Using a custom value

<UsingACustomValue
  utility="will-change"
  name={
    <>
      <code>will-change</code> property
    </>
  }
  value="top,left"
  variable="properties"
/>


---

# word-break

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/word-break*

| Clase | Propiedades CSS |
| :--- | :--- |
| `break-normal` | `word-break: normal;` |
| `break-all` | `word-break: break-all;` |
| `break-keep` | `word-break: keep-all;` |

## Examples

### Normal

Use the `break-normal` utility to only add line breaks at normal word break points:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-normal text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:break-normal] -->
<p class="break-normal">The longest word in any of the major...</p>
```

### Break All

Use the `break-all` utility to add line breaks whenever necessary, without trying to preserve whole words:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-all text-gray-900 dark:text-gray-200">
      The longest word in any of the major English language dictionaries is{" "}
      <span className="font-bold">pneumonoultramicroscopicsilicovolcanoconiosis,</span> a word that refers to a lung
      disease contracted from the inhalation of very fine silica particles, specifically from a volcano; medically, it
      is the same as silicosis.
    </p>
  }

```html
<!-- [!code classes:break-all] -->
<p class="break-all">The longest word in any of the major...</p>
```

### Break Keep

Use the `break-keep` utility to prevent line breaks from being applied to Chinese/Japanese/Korean (CJK) text:

  {
    <p className="mx-auto max-w-xs border-x border-x-pink-400/30 py-8 break-keep text-gray-900 dark:text-gray-200">
      抗衡不屈不挠 (kànghéng bùqū bùnáo) 这是一个长词，意思是不畏强暴，奋勇抗争，坚定不移，永不放弃。
      <span className="font-bold">这个词通常用来描述那些在面对困难和挑战时坚持自己信念的人，</span>{" "}
      他们克服一切困难，不屈不挠地追求自己的目标。无论遇到多大的挑战，他们都能够坚持到底，不放弃，最终获得胜利。
    </p>
  }

```html
<!-- [!code classes:break-keep] -->
<p class="break-keep">抗衡不屈不挠...</p>
```

For non-CJK text the `break-keep` utility has the same behavior as the `break-normal` utility.

### Responsive design


---

# z-index

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/z-index*

| Clase | Propiedades CSS |
| :--- | :--- |
| `z-<number>` | `z-index: <number>;` |
| `z-auto` | `z-index: auto;` |
| `z-[<value>]` | `z-index: <value>;` |
| `z-(<custom-property>)` | `z-index: var(<custom-property>);` |

## Examples

### Basic example

Use the `z-<number>` utilities like `z-10` and `z-50` to control the stack order (or three-dimensional positioning) of an element, regardless of the order it has been displayed:

  {
    <div className="flex justify-center -space-x-3 font-mono text-sm leading-6 font-bold text-white">
      <div className="z-40 flex size-16 items-center justify-center rounded-full bg-pink-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        05
      </div>
      <div className="z-30 flex size-16 items-center justify-center rounded-full bg-pink-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        04
      </div>
      <div className="z-20 flex size-16 items-center justify-center rounded-full bg-pink-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        03
      </div>
      <div className="z-10 flex size-16 items-center justify-center rounded-full bg-pink-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        02
      </div>
      <div className="z-0 flex size-16 items-center justify-center rounded-full bg-pink-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        01
      </div>
    </div>
  }

```html
<!-- [!code classes:z-40,z-30,z-20,z-10,z-0] -->
<div class="z-40 ...">05</div>
<div class="z-30 ...">04</div>
<div class="z-20 ...">03</div>
<div class="z-10 ...">02</div>
<div class="z-0 ...">01</div>
```

### Using negative values

To use a negative z-index value, prefix the class name with a dash to convert it to a negative value:

  {
    <div className="isolate flex justify-center -space-x-3 font-mono text-sm leading-6 font-bold text-white">
      <div className="flex size-16 items-center justify-center rounded-full bg-fuchsia-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        01
      </div>
      <div className="flex size-16 items-center justify-center rounded-full bg-fuchsia-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        02
      </div>
      <div className="-z-10 flex size-16 items-center justify-center rounded-full bg-fuchsia-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        03
      </div>
      <div className="flex size-16 items-center justify-center rounded-full bg-fuchsia-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        04
      </div>
      <div className="flex size-16 items-center justify-center rounded-full bg-fuchsia-500 shadow-lg outline-2 outline-white dark:outline-[#11121E]">
        05
      </div>
    </div>
  }

```html
<!-- [!code classes:-z-10] -->
<div class="...">05</div>
<div class="...">04</div>
<div class="-z-10 ...">03</div>
<div class="...">02</div>
<div class="...">01</div>
```

### Using a custom value

### Responsive design


---

# zoom

*Sección: Tailwind Css | Origen: https://tailwindcss.com/docs/zoom*

| Clase | Propiedades CSS |
| :--- | :--- |
| `zoom-<number>` | `zoom: <number>%;` |
| `zoom-(<custom-property>)` | `zoom: var(<custom-property>);` |
| `zoom-[<value>]` | `zoom: <value>;` |

## Examples

### Basic example

Use `zoom-<number>` utilities like `zoom-75` and `zoom-125` to scale an element using the CSS `zoom` property:

```html
<!-- [!code classes:zoom-75,zoom-100,zoom-125] -->
<div class="zoom-75 ...">
  <!-- ... -->
</div>
<div class="zoom-100 ...">
  <!-- ... -->
</div>
<div class="zoom-125 ...">
  <!-- ... -->
</div>
```

### Using a custom value

### Applying on hover

### Responsive design
