src/docs/padding.mdx
import { ApiTable } from "@/components/api-table.tsx"; import { CustomizingYourSpacingScale } from "@/components/content.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx"; import { ResponsiveDesign } from "@/components/content.tsx"; import { Stripes } from "@/components/stripes.tsx"; import { UsingACustomValue } from "@/components/content.tsx";
export const title = "padding"; export const description = "Utilities for controlling an element's padding.";
<ApiTable
rows={[
["p", "padding"],
["px", "padding-inline"],
["py", "padding-block"],
["ps", "padding-inline-start"],
["pe", "padding-inline-end"],
["pbs", "padding-block-start"],
["pbe", "padding-block-end"],
["pt", "padding-top"],
["pr", "padding-right"],
["pb", "padding-bottom"],
["pl", "padding-left"],
].flatMap(([prefix, property]) => [
[${prefix}-<number>, ${property}: calc(var(--spacing) * <number>);],
[${prefix}-px, ${property}: 1px;],
[${prefix}-(<custom-property>), ${property}: var(<custom-property>);],
[${prefix}-[<value>], ${property}: <value>;],
])}
/>
Use p-<number> utilities like p-4 and p-8 to control the padding on all sides of an element:
<!-- [!code classes:p-8] -->
<div class="p-8 ...">p-8</div>
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:
<!-- [!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>
Use px-<number> utilities like px-4 and px-8 to control the horizontal padding of an element:
<!-- [!code classes:px-8] -->
<div class="px-8 ...">px-8</div>
Use py-<number> utilities like py-4 and py-8 to control the vertical padding of an element:
<!-- [!code classes:py-8] -->
<div class="py-8 ...">py-8</div>
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:
<!-- [!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 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:
<!-- [!code classes:pbs-8] -->
<div class="pbs-8 ...">pbs-8</div>
<UsingACustomValue utilities={["p", "px", "pb"]} name="padding" variable="padding" value="5px" />
<CustomizingYourSpacingScale utilities={["p", "px", "py", "ps", "pe", "pbs", "pbe", "pt", "pr", "pb", "pl"]} />