Spacing
Shorthand responsive margin and padding utility classes to modify an element’s appearance.
Margin and Padding
Assign margin or padding to an element or a subset of its sides with shorthand classes. Includes support for individual properties, all properties, and vertical and horizontal properties. Classes are generated from a Sass map with values ranging from 0.25rem to 2rem.
Notation
The classes are named using the format: {property}{sides}{-breakpoint}-{size}.
Where property is one of:
m- for classes that setmarginp- for classes that setpadding
Where breakpoint is one of the responsive breakpoints, if above the minimum xs size. Please refer to how our breakpoint nomenclature is used.
Where sides is one of:
- blank - for classes that set a
marginorpaddingon all 4 sides of the element t- for classes that setmargin-toporpadding-topb- for classes that setmargin-bottomorpadding-bottoms- for classes that setmarginorpaddingon thestartsidee- for classes that setmarginorpaddingon theendsidex- for classes that set both*-leftand*-righty- for classes that set both*-topand*-bottom
The start/end sides are designated as follows depending on which version of the Figuration CSS you are using. The default figuration.*.css uses the ltr mode, where figuration-rtl.*.css uses the rtl mode.
- For
left-to-rightmode (ltr- default);startrefers to theleftsideendrefers to therightside
- For
right-to-leftmode (rtl);startrefers to therightsideendrefers to theleftside
Where size is one of:
0- for classes that eliminate themarginorpaddingby setting it to00_25- for classes that set the property to$spacer * 0.250_5- for classes that set the property to$spacer * 0.51- for classes that set the property to$spacer1_5- for classes that set the property to$spacer * 1.52- for classes that set the property to$spacer * 2auto- for classes that set themarginto auto
(You can add more sizes by adding entries to the $spacers Sass map variable.)
Examples
Here are some representative examples of these classes:
.mt-0 {
margin-top: 0 !important;
}
.ms-1 {
margin-left: $spacer !important;
}
.mt-md-1 {
margin-top: $spacer !important;
}
.px-1_5 {
padding-left: ($spacer * 1.5) !important;
padding-right: ($spacer * 1.5) !important;
}
.p-2 {
padding: ($spacer * 2) ($spacer * 2) !important;
}
Horizontal Centering
Additionally, we also include an .mx-auto class for horizontally centering fixed-width block level content— an element with display: block; and a defined width—by setting the horizontal margins to auto.
<div class="mx-auto" style="width: 200px;">
Centered element
</div>
Negative Margins
In CSS, the margin properties can utilize negative values (padding cannot). Negative margin utilities are for every non-zero size listed above (e.g., 0_25, 0_5, 1, 1_5, 2). These utilities can also be used for customizing the grid column gutters across breakpoints.
The syntax is nearly the same as the default, positive margin utilities, but with the addition of n before the requested size. Here's an example class that's the opposite of .mt-0_25:
.mt-n0_25 {
margin-top: -0.25rem !important;
}
Here is a comparison and example of customizing the grid at the medium (md) breakpoint and above. The the .col horizontal padding is increased with .px-md-2 and then counteracted that with negative horizontal margin .mx-md-n2 on the parent .row.
<div class="row mb-1">
<div class="col">Standard horizontal column padding</div>
<div class="col">Standard horizontal column padding</div>
</div>
<div class="row mx-md-n2">
<div class="col px-md-2">Custom horizontal column padding</div>
<div class="col px-md-2">Custom horizontal column padding</div>
</div>
In some cases, you may also have to adjust the padding on the parent container of the .row element to prevent horizontal scrollbars from occuring. For example, using the custom negative margin example above, you may find the need to use .px-md-2 on the parent .container-fluid.
<div class="container-fluid px-md-2">
<div class="row mx-md-n2">
<div class="col px-md-2">Custom horizontal column padding</div>
<div class="col px-md-2">Custom horizontal column padding</div>
</div>
</div>
Gap
When using display: grid, you can make use of gap utilities on the parent grid container. This can save on having to add margin utilities to individual grid items (children of a display: grid container). Gap utilities based on the $spacers Sass map, and are available in responsive variants.
Browser Compatibility
The gap CSS property is not fully supported in older browsers, and not supported at all in Internet Explorer 11 and below. For support details, see Can I Use.
<div class="d-grid gap-1">
<div class="p-0_25 bg-light border">Grid item 1</div>
<div class="p-0_25 bg-light border">Grid item 2</div>
<div class="p-0_25 bg-light border">Grid item 3</div>
</div>
SASS Reference
Variables
The available Customization options, or Sass variables, that can be customized for this grouping of utility classes.
| Name | Type | Default | Description |
|---|---|---|---|
$enable-utility-spacing |
boolean | true |
Enable the generation of the spacing utility classes. |
$enable-utility-spacing-padding |
boolean | true |
Enable the generation of the padding utility classes. |
$enable-utility-spacing-margin |
boolean | true |
Enable the generation of the margin utility classes. |
$enable-utility-spacing-margin-auto |
boolean | true |
Enable the generation of the auto maring utility classes. |
$enable-utility-spacing-margin-negative |
boolean | true |
Enable the generation of the negative margin utility classes. |
$enable-utility-spacing-gap |
boolean | true |
Enable the generation of the gap utility classes. |
$spacer |
string | 1rem |
Base spacer dimension. |
$spacers |
map |
|
Map of sizing append names and rules to be generated. |
$spacers-gap |
string | $spacers |
Map of gap sizing rules to be generated. |
$spacers-padding |
map | $spacers |
Map of padding sizing rules to be generated. |
$spacers-margin |
map | $spacers |
Map of margin sizing rules to be generated. |
$spacers-margin-negative |
map | $spacers |
Map of negative margin sizing rules to be generated. |
$spacers-margin-negative-prepend |
string | n |
The string prepended to the name to designate negative margin classes. |
Mixins
No mixins available.