Spacing Utilities
Material UI provides a spacing system for consistent margin and padding throughout your application.Default Spacing
The default spacing unit is 8px:Custom Spacing
Number-based Spacing
Set a custom base unit:Array-based Spacing
Define an array of spacing values:Function-based Spacing
Use a custom function:String-based Spacing
Use a string template:Spacing in sx Prop
Use spacing values directly in thesx prop:
Spacing Properties
Margin Properties
m- margin (all sides)mt- margin-topmr- margin-rightmb- margin-bottomml- margin-leftmx- margin-left & margin-rightmy- margin-top & margin-bottommargin- full CSS property namemarginTop,marginRight,marginBottom,marginLeftmarginX,marginYmarginInline,marginInlineStart,marginInlineEndmarginBlock,marginBlockStart,marginBlockEnd
Padding Properties
p- padding (all sides)pt- padding-toppr- padding-rightpb- padding-bottompl- padding-leftpx- padding-left & padding-rightpy- padding-top & padding-bottompadding- full CSS property namepaddingTop,paddingRight,paddingBottom,paddingLeftpaddingX,paddingYpaddingInline,paddingInlineStart,paddingInlineEndpaddingBlock,paddingBlockStart,paddingBlockEnd
Negative Spacing
Use negative values for negative margins:Responsive Spacing
Use responsive values with breakpoints:Using Spacing in styled()
Combining Multiple Spacing Values
Thespacing function accepts multiple arguments:
CSS Variables for Spacing
With CSS variables enabled:String Values
Pass string values directly:Zero Spacing
Special handling for zero with CSS variables:Spacing Scale Recommendation
Material Design recommends an 8px spacing scale:Common Patterns
Card Spacing
Stack Spacing
Grid Spacing
Source Reference
The spacing implementation can be found at:packages/mui-system/src/spacing/spacing.js:185- Spacing keys:
packages/mui-system/src/spacing/spacing.js:47 createUnarySpacing:packages/mui-system/src/spacing/spacing.js:95