2016-09-09 06:48:17 +02:00
---
layout: docs
title: Spacing
2020-11-08 19:56:02 +01:00
description: Bootstrap includes a wide range of shorthand responsive margin, padding, and gap utility classes to modify an element's appearance.
2016-09-09 06:48:17 +02:00
group: utilities
2017-05-28 20:25:59 +02:00
toc: true
2016-09-09 06:48:17 +02:00
---
2020-11-08 19:56:02 +01:00
## Margin and padding
2016-11-25 23:01:06 +01:00
2017-05-28 20:25:59 +02:00
Assign responsive-friendly `margin` or `padding` values 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 built from a default Sass map ranging from `.25rem` to `3rem` .
2016-11-25 23:01:06 +01:00
v5.2.0 design refresh, plus responsive offcanvas classes (#35736)
* Add responsive offcanvas classes
- Updates navbar-expand classes to de-dupe some styles—these shouldn't interfere now.
- Adds some JS to the offcanvas component to help with responsiveness
Co-Authored-By: GeoSot <geo.sotis@gmail.com>
* Redesign homepage, docs, and examples
Homepage:
- New Bootstrap purple navbar
- Redesigned masthead
- Rewrote and redesigned homepage content
- Replace Copy text with icons like Bootstrap Icons site across all ClipboardJS instances
- Fixed padding issues in site footer
- Match homepage button styles to examples page, use gap instead of tons of responsive margin utils
Docs:
- New navbar, no more subnav. Migrated search and version picker into the main navbar and refreshed the design of it all, including the responsive toggles.
- New sidebar navigation is always expanded, and now features Bootstrap Icons alongside section headings
- Sidebar navigation autoscrolls to active link for better usability
- Subnav and navbar padding issues ironed out
- Enhanced the version picker in anticipation of v5.2: we can now link right to the same page in the previous version.
- Redesign callouts to add more color to our pages
- Collapse table of contents on mobile
- Cleanup and redesign button styles with CSS variables
- Update design for subnav version dropdown
- Update highlight and example to be full-width until md
- Improve the Added In badges
- Turn the ToC into a well on mobile
- Redesign code snippets to better house two action buttons
Examples:
- Redesign Examples page layout
- Add new example for responsive offcanvases in navbars
* Convert offcanvas to CSS vars
* Feat: add resize handler to Offcanvas.js.
If we could use as default the `.offcanvas` class without modifiers, we then, could add a simplified selector
The selector itself, ignores the .offcanvas class as it doesn't have any responsive behavior
The `aria-modal` addon is to protect us, selection backdrop elements
* Separate examples code, Add some selectors, fix stackblitz btn
Co-authored-by: GeoSot <geo.sotis@gmail.com>
2022-04-18 07:17:50 +02:00
{{< callout > }}
**Using the CSS Grid layout module?** Consider using [the gap utility ](#gap ) instead.
{{< / callout > }}
2020-11-08 19:56:02 +01:00
### Notation
2016-11-01 05:13:05 +01:00
2020-04-13 23:40:47 +02:00
Spacing utilities that apply to all breakpoints, from `xs` to `xxl` , have no breakpoint abbreviation in them. This is because those classes are applied from `min-width: 0` and up, and thus are not bound by a media query. The remaining breakpoints, however, do include a breakpoint abbreviation.
2016-11-01 05:13:05 +01:00
2020-04-13 23:40:47 +02:00
The classes are named using the format `{property}{sides}-{size}` for `xs` and `{property}{sides}-{breakpoint}-{size}` for `sm` , `md` , `lg` , `xl` , and `xxl` .
2016-09-09 06:48:17 +02:00
Where *property* is one of:
2020-05-14 07:33:49 +02:00
- `m` - for classes that set `margin`
- `p` - for classes that set `padding`
2016-09-09 06:48:17 +02:00
Where *sides* is one of:
2020-05-14 07:33:49 +02:00
- `t` - for classes that set `margin-top` or `padding-top`
- `b` - for classes that set `margin-bottom` or `padding-bottom`
2021-03-31 00:56:30 +02:00
- `s` - (start) for classes that set `margin-left` or `padding-left` in LTR, `margin-right` or `padding-right` in RTL
- `e` - (end) for classes that set `margin-right` or `padding-right` in LTR, `margin-left` or `padding-left` in RTL
2020-05-14 07:33:49 +02:00
- `x` - for classes that set both `*-left` and `*-right`
- `y` - for classes that set both `*-top` and `*-bottom`
- blank - for classes that set a `margin` or `padding` on all 4 sides of the element
2016-09-09 06:48:17 +02:00
Where *size* is one of:
2020-05-14 07:33:49 +02:00
- `0` - for classes that eliminate the `margin` or `padding` by setting it to `0`
- `1` - (by default) for classes that set the `margin` or `padding` to `$spacer * .25`
- `2` - (by default) for classes that set the `margin` or `padding` to `$spacer * .5`
- `3` - (by default) for classes that set the `margin` or `padding` to `$spacer`
- `4` - (by default) for classes that set the `margin` or `padding` to `$spacer * 1.5`
- `5` - (by default) for classes that set the `margin` or `padding` to `$spacer * 3`
- `auto` - for classes that set the `margin` to auto
2016-09-09 06:48:17 +02:00
(You can add more sizes by adding entries to the `$spacers` Sass map variable.)
2020-11-08 19:56:02 +01:00
### Examples
2016-11-01 05:13:05 +01:00
2016-09-09 06:48:17 +02:00
Here are some representative examples of these classes:
2020-10-19 11:56:49 +02:00
```scss
2016-09-09 07:16:28 +02:00
.mt-0 {
2016-09-09 06:48:17 +02:00
margin-top: 0 !important;
}
2020-06-09 15:44:20 +02:00
.ms-1 {
2017-03-05 21:20:44 +01:00
margin-left: ($spacer * .25) !important;
2016-09-09 06:48:17 +02:00
}
2016-09-09 07:16:28 +02:00
.px-2 {
2017-03-05 21:20:44 +01:00
padding-left: ($spacer * .5) !important;
padding-right: ($spacer * .5) !important;
2016-09-09 06:48:17 +02:00
}
2016-09-09 07:16:28 +02:00
.p-3 {
2017-03-05 22:07:38 +01:00
padding: $spacer !important;
2016-09-09 06:48:17 +02:00
}
2020-10-19 11:56:49 +02:00
```
2016-09-09 06:48:17 +02:00
### Horizontal centering
2017-10-30 22:53:57 +01:00
2016-11-23 20:28:17 +01:00
Additionally, Bootstrap also includes an `.mx-auto` class for horizontally centering fixed-width block level content—that is, content that has `display: block` and a `width` set—by setting the horizontal margins to `auto` .
2016-09-09 06:48:17 +02:00
< div class = "bd-example" >
2016-09-09 07:16:28 +02:00
< div class = "mx-auto" style = "width: 200px; background-color: rgba(86,61,124,.15);" >
2016-09-09 06:48:17 +02:00
Centered element
< / div >
< / div >
2020-10-19 11:56:49 +02:00
```html
2016-09-09 07:16:28 +02:00
< div class = "mx-auto" style = "width: 200px;" >
2016-09-09 06:48:17 +02:00
Centered element
< / div >
2020-10-19 11:56:49 +02:00
```
2018-07-09 02:28:37 +02:00
2020-11-08 19:56:02 +01:00
## Negative margin
2018-07-09 02:28:37 +02:00
2020-04-15 06:36:35 +02:00
In CSS, `margin` properties can utilize negative values (`padding` cannot). These negative margins are **disabled by default** , but can be enabled in Sass by setting `$enable-negative-margins: true` .
2018-07-09 02:28:37 +02:00
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-1` :
2020-10-19 11:56:49 +02:00
```scss
2018-07-09 02:28:37 +02:00
.mt-n1 {
margin-top: -0.25rem !important;
}
2020-10-19 11:56:49 +02:00
```
2020-11-08 19:56:02 +01:00
## Gap
2022-11-16 03:51:44 +01:00
When using `display: grid` or `display: flex` , you can make use of `gap` utilities on the parent element. This can save on having to add margin utilities to individual children of a grid or flex container. Gap utilities are responsive by default, and are generated via our utilities API, based on the `$spacers` Sass map.
Add dark mode support (#35857)
* Add dark mode to docs
* Minor fix: missing space indentation
* Minor fix: revert utilities/z-index added-in modification
* Remove prev: and next: from doc because extracted to another PR
* Use .bg-body-tertiary in all Utilities > Overflow examples
* fix example
* Fix up spacing examples
* Update box-shadow Sass variables and utilities to auto-adjust to color modes
* Remove unused docs class
* Refactor form styles to use CSS variable for background images on .form-check and .form-switch
* Fix docs selector
* Rename shortcut for clarity
* Heading consistency
* Reintroduce missing 4th grid item in Utilities > Spacing example
* Fix bundlewatch
* .bd-callout* rendering is OK so removing comments in the code
* Update scss/_utilities.scss
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Fix gutters example styling
* Fix text colors on background utils docs
* redesign and fix up position marker example, which doesn't show nicely in darkmode but at least isn't broken
* fix some color utils examples
* Deprecate mixin notice
* Deprecate notice for list-group-item-variant() mixin
* Revamp new link CSS vars
* Use map-keys in some each Sass files
* Remove list-group-item-variant mixin ref in sass loop desc
* Display CSS vars scoped to our built-in dark mode
* Revert previous commit
* Fix list group variant link
* Fix typo
* Remove imports of alert/list-group mixins in scss/_mixins.scss
* Small formatting + comments removal in scss/_content.scss
* Fix alert links colors
* fix dropdown border-radius mixin
* fix link color and underline again, this time using CSS var override for color var and fallback value for the underline
* fix colors on docs navbar for dark mode
* remove two changes
* missing ref
* another link underline fix, just use sass vars for link decoration for now
* missing color bg docs, plus move dropdown override to scss
* more changes from review
* fix some examples, drop unused docs navbar styles, update docs navbar color mode to use mixin
* Few fixes around type
- Restored CSS variable for color on headings, this time with a fallback value
- In conjunction, restored and wrapped the default CSS var with a null value check
- Split headings and paragraphs docs in Reboot, elaborated on them
* Restyle custom details > summary element in docs
* Rewrite some migration docs
* fix form checks
* Fix up some navbar styling, tweak docs callout
* Fix select images, mostly for validation styling
* Clean up some migration notes, document some new form control CSS vars, mention new variables-dark in sass docs
* Update site/content/docs/5.2/components/scrollspy.md
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Apply suggestions from code review
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* mention form control css vars in migration guide
* Tweak grid and flex docs background examples
* clarify some docs
* fix some more things
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
2022-11-29 07:30:26 +01:00
{{< example class = "bd-example-cssgrid" > }}
< div class = "grid gap-3" >
< div class = "p-2 g-col-6" > Grid item 1< / div >
< div class = "p-2 g-col-6" > Grid item 2< / div >
< div class = "p-2 g-col-6" > Grid item 3< / div >
< div class = "p-2 g-col-6" > Grid item 4< / div >
2020-11-08 19:56:02 +01:00
< / div >
{{< / example > }}
Support includes responsive options for all of Bootstrap's grid breakpoints, as well as six sizes from the `$spacers` map (`0`– `5`). There is no `.gap-auto` utility class as it's effectively the same as `.gap-0` .
2021-02-11 04:29:59 +01:00
2022-11-16 03:51:44 +01:00
### row-gap
`row-gap` sets the vertical space between children items in the specified container.
Add dark mode support (#35857)
* Add dark mode to docs
* Minor fix: missing space indentation
* Minor fix: revert utilities/z-index added-in modification
* Remove prev: and next: from doc because extracted to another PR
* Use .bg-body-tertiary in all Utilities > Overflow examples
* fix example
* Fix up spacing examples
* Update box-shadow Sass variables and utilities to auto-adjust to color modes
* Remove unused docs class
* Refactor form styles to use CSS variable for background images on .form-check and .form-switch
* Fix docs selector
* Rename shortcut for clarity
* Heading consistency
* Reintroduce missing 4th grid item in Utilities > Spacing example
* Fix bundlewatch
* .bd-callout* rendering is OK so removing comments in the code
* Update scss/_utilities.scss
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Fix gutters example styling
* Fix text colors on background utils docs
* redesign and fix up position marker example, which doesn't show nicely in darkmode but at least isn't broken
* fix some color utils examples
* Deprecate mixin notice
* Deprecate notice for list-group-item-variant() mixin
* Revamp new link CSS vars
* Use map-keys in some each Sass files
* Remove list-group-item-variant mixin ref in sass loop desc
* Display CSS vars scoped to our built-in dark mode
* Revert previous commit
* Fix list group variant link
* Fix typo
* Remove imports of alert/list-group mixins in scss/_mixins.scss
* Small formatting + comments removal in scss/_content.scss
* Fix alert links colors
* fix dropdown border-radius mixin
* fix link color and underline again, this time using CSS var override for color var and fallback value for the underline
* fix colors on docs navbar for dark mode
* remove two changes
* missing ref
* another link underline fix, just use sass vars for link decoration for now
* missing color bg docs, plus move dropdown override to scss
* more changes from review
* fix some examples, drop unused docs navbar styles, update docs navbar color mode to use mixin
* Few fixes around type
- Restored CSS variable for color on headings, this time with a fallback value
- In conjunction, restored and wrapped the default CSS var with a null value check
- Split headings and paragraphs docs in Reboot, elaborated on them
* Restyle custom details > summary element in docs
* Rewrite some migration docs
* fix form checks
* Fix up some navbar styling, tweak docs callout
* Fix select images, mostly for validation styling
* Clean up some migration notes, document some new form control CSS vars, mention new variables-dark in sass docs
* Update site/content/docs/5.2/components/scrollspy.md
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Apply suggestions from code review
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* mention form control css vars in migration guide
* Tweak grid and flex docs background examples
* clarify some docs
* fix some more things
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
2022-11-29 07:30:26 +01:00
{{< example class = "bd-example-cssgrid" > }}
< div class = "grid gap-0 row-gap-3" >
< div class = "p-2 g-col-6" > Grid item 1< / div >
< div class = "p-2 g-col-6" > Grid item 2< / div >
< div class = "p-2 g-col-6" > Grid item 3< / div >
< div class = "p-2 g-col-6" > Grid item 4< / div >
2022-11-16 03:51:44 +01:00
< / div >
{{< / example > }}
### column-gap
`column-gap` sets the horizontal space between children items in the specified container.
Add dark mode support (#35857)
* Add dark mode to docs
* Minor fix: missing space indentation
* Minor fix: revert utilities/z-index added-in modification
* Remove prev: and next: from doc because extracted to another PR
* Use .bg-body-tertiary in all Utilities > Overflow examples
* fix example
* Fix up spacing examples
* Update box-shadow Sass variables and utilities to auto-adjust to color modes
* Remove unused docs class
* Refactor form styles to use CSS variable for background images on .form-check and .form-switch
* Fix docs selector
* Rename shortcut for clarity
* Heading consistency
* Reintroduce missing 4th grid item in Utilities > Spacing example
* Fix bundlewatch
* .bd-callout* rendering is OK so removing comments in the code
* Update scss/_utilities.scss
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Fix gutters example styling
* Fix text colors on background utils docs
* redesign and fix up position marker example, which doesn't show nicely in darkmode but at least isn't broken
* fix some color utils examples
* Deprecate mixin notice
* Deprecate notice for list-group-item-variant() mixin
* Revamp new link CSS vars
* Use map-keys in some each Sass files
* Remove list-group-item-variant mixin ref in sass loop desc
* Display CSS vars scoped to our built-in dark mode
* Revert previous commit
* Fix list group variant link
* Fix typo
* Remove imports of alert/list-group mixins in scss/_mixins.scss
* Small formatting + comments removal in scss/_content.scss
* Fix alert links colors
* fix dropdown border-radius mixin
* fix link color and underline again, this time using CSS var override for color var and fallback value for the underline
* fix colors on docs navbar for dark mode
* remove two changes
* missing ref
* another link underline fix, just use sass vars for link decoration for now
* missing color bg docs, plus move dropdown override to scss
* more changes from review
* fix some examples, drop unused docs navbar styles, update docs navbar color mode to use mixin
* Few fixes around type
- Restored CSS variable for color on headings, this time with a fallback value
- In conjunction, restored and wrapped the default CSS var with a null value check
- Split headings and paragraphs docs in Reboot, elaborated on them
* Restyle custom details > summary element in docs
* Rewrite some migration docs
* fix form checks
* Fix up some navbar styling, tweak docs callout
* Fix select images, mostly for validation styling
* Clean up some migration notes, document some new form control CSS vars, mention new variables-dark in sass docs
* Update site/content/docs/5.2/components/scrollspy.md
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Apply suggestions from code review
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* mention form control css vars in migration guide
* Tweak grid and flex docs background examples
* clarify some docs
* fix some more things
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
2022-11-29 07:30:26 +01:00
{{< example class = "bd-example-cssgrid" > }}
< div class = "grid gap-0 column-gap-3" >
< div class = "p-2 g-col-6" > Grid item 1< / div >
< div class = "p-2 g-col-6" > Grid item 2< / div >
< div class = "p-2 g-col-6" > Grid item 3< / div >
< div class = "p-2 g-col-6" > Grid item 4< / div >
2022-11-16 03:51:44 +01:00
< / div >
{{< / example > }}
2021-02-11 04:29:59 +01:00
## Sass
### Maps
Spacing utilities are declared via Sass map and then generated with our utilities API.
{{< scss-docs name = "spacer-variables-maps" file = "scss/_variables.scss" > }}
### Utilities API
Spacing utilities are declared in our utilities API in `scss/_utilities.scss` . [Learn how to use the utilities API. ]({{< docsref "/utilities/api#using-the-api" >}} )
{{< scss-docs name = "utils-spacing" file = "scss/_utilities.scss" > }}