Spacing
Utilities for controlling margin and padding with theme spacing scale.Import
API
The spacing module exports margin and padding functions that use the theme’s spacing scale. Fromspacing/spacing.js:255-268:
Theme Spacing
By default, the spacing scale uses an 8px unit:Spacing Transform
Fromspacing.js:95-183, the createUnaryUnit function handles spacing values:
Margin Properties
Fromspacing.js:47-68:
All Sides
Individual Sides
Horizontal and Vertical
Full Property Names
Logical Properties
Padding Properties
Fromspacing.js:70-91:
All Sides
Individual Sides
Horizontal and Vertical
Full Property Names
Logical Properties
Shorthand Mapping
Fromspacing.js:7-26:
Responsive Spacing
Negative Spacing
String Values
Pass custom values as strings:Common Patterns
Card Spacing
Section Spacing
Stack of Elements
Inline Spacing
Centered Container
Button Spacing
Form Field Spacing
Grid with Gaps
Header with Spacing
Footer Spacing
Spacing Scale
With default 8px spacing:| Value | Output |
|---|---|
0 | 0px |
0.5 | 4px |
1 | 8px |
2 | 16px |
3 | 24px |
4 | 32px |
5 | 40px |
6 | 48px |
8 | 64px |
10 | 80px |
12 | 96px |
16 | 128px |
Custom Spacing Function
Array-based Spacing
CSS Variables Spacing
With sx Prop
TypeScript
Available Properties
Margin
| Shorthand | Full Name | CSS Properties |
|---|---|---|
m | margin | margin |
mt | marginTop | margin-top |
mr | marginRight | margin-right |
mb | marginBottom | margin-bottom |
ml | marginLeft | margin-left |
mx | marginX | margin-left, margin-right |
my | marginY | margin-top, margin-bottom |
| - | marginInline | margin-inline |
| - | marginInlineStart | margin-inline-start |
| - | marginInlineEnd | margin-inline-end |
| - | marginBlock | margin-block |
| - | marginBlockStart | margin-block-start |
| - | marginBlockEnd | margin-block-end |
Padding
| Shorthand | Full Name | CSS Properties |
|---|---|---|
p | padding | padding |
pt | paddingTop | padding-top |
pr | paddingRight | padding-right |
pb | paddingBottom | padding-bottom |
pl | paddingLeft | padding-left |
px | paddingX | padding-left, padding-right |
py | paddingY | padding-top, padding-bottom |
| - | paddingInline | padding-inline |
| - | paddingInlineStart | padding-inline-start |
| - | paddingInlineEnd | padding-inline-end |
| - | paddingBlock | padding-block |
| - | paddingBlockStart | padding-block-start |
| - | paddingBlockEnd | padding-block-end |
Best Practices
- Use the spacing scale - Stick to theme spacing values for consistency
- Prefer shorthand - Use
p,m,px,pyfor brevity - Responsive spacing - Adjust spacing for different breakpoints
- Negative margins - Use sparingly for overlapping elements
- Auto margins - Use
mx="auto"for centering
Related
- Box Component - Using spacing with Box
- Grid - Grid gap utilities
- sx Prop - Advanced spacing with sx