Back to Tailwindcss

Inline Size

src/docs/inline-size.mdx

latest7.3 KB
Original Source

import { ApiTable } from "@/components/api-table.tsx"; import { CustomizingYourSpacingScale, ResponsiveDesign, UsingACustomValue } from "@/components/content.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx";

export const title = "inline-size"; export const description = "Utilities for setting the inline size of an element.";

<ApiTable rows={[ ["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:

<Figure> <Example> { <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> } </Example>
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>
</Figure>

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:

<Figure> <Example> { <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> } </Example>
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>
</Figure>

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:

<Figure> <Example> { <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> } </Example>
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>
</Figure>

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

<UsingACustomValue utility="inline" value="5px" name="inline size" variable="inline-size" />

Responsive design

<ResponsiveDesign property="inline-size" defaultClass="inline-1/2" featuredClass="inline-full" />

Customizing your theme

<CustomizingYourSpacingScale utility="inline" />