Spacings - margins, paddings and gaps

In VUD we include a wide range of shorthand responsive margins, paddings and gaps to help you modify the appearance of an element/component.

Notation

The spacing utilities can be applied to all breakpoints, from xs to xxl, or to none.

The classes are named using the format {property}{sides}-{size} (eg. .mr-24 - margin-right: 2.4rem) and {property}{sides}-{breakpoint}-{size} (eg. .mr-md-24 - margin-right: 2.4rem for screens larger than 992px) for xs, sm, md, lg, xl, and xxl.

Where {property} is one of:

  • m - for classes that set margin
  • p - for classes that set padding
  • gap - for classes that set the gap (gutters between grid and flexbox items).

Where {sides} is one of:

  • t - for classes that set margin-top or padding-top
  • b - for classes that set margin-bottom or padding-bottom
  • l - for classes that set margin-left or padding-left
  • r - for classes that set margin-right or padding-right
  • x - for classes that set margin, padding and gap for both *-left and *-right
  • y - for classes that set margin, padding and gap for both *-top and *-bottom
  • blank - for classes that set a margin or padding on all 4 sides of the element

Where {size} is one of:

  • 0 - for classes that set the margin/padding/gap to 0
  • 2 - for classes that set the margin/padding/gap to 0.2rem (2px)
  • 4 - for classes that set the margin/padding/gap to 0.4rem (4px)
  • 6 - for classes that set the margin/padding/gap to 0.6rem (6px)
  • 8 - for classes that set the margin/padding/gap to 0.8rem (8px)
  • 10 - for classes that set the margin/padding/gap to 1rem (10px)
  • 12 - for classes that set the margin/padding/gap to 1.2rem (12px)
  • 16 - for classes that set the margin/padding/gap to 1.6rem (16px)
  • 24 - for classes that set the margin/padding/gap to 2.4rem (24px)
  • 32 - for classes that set the margin/padding/gap to 3.2rem (32px)
  • 40 - for classes that set the margin/padding/gap to 4rem (40px)
  • 48 - for classes that set the margin/padding/gap to 4.8rem (48px)
  • 64 - for classes that set the margin/padding/gap to 6.4rem (64px)
  • 96 - for classes that set the margin/padding/gap to 9.6rem (96px)
  • 128 - for classes that set the margin/padding/gap to 12.8rem (128px)
  • auto - for classes that set the margin to auto
					
<!-- margin top: 0px -->
<div class="mt-0"> ... </div>
<!-- margin top and bottom: 8px/0.8rem -->
<div class="my-8"> ... </div>
<!-- padding right and left: 12px/1.2rem -->
<div class="px-12"> ... </div>
<!-- padding left: 12px/1.2rem for @media (min-width: $screen-lg-min) -->
<div class="pl-lg-12"> ... </div>
<!-- gap: 12px/1.2rem -->
<div class="gap-12"> ... </div>

You are also able to use them as variables: $spacing-0, $spacing-2, $spacing-4, $spacing-6, $spacing-8, $spacing-10, $spacing-12, $spacing-16, $spacing-24, $spacing-32, $spacing-40, $spacing-48, $spacing-64, $spacing-96, $spacing-128, $spacing-auto

CSS Custom Properties

Spacing values are also available as CSS custom properties (CSS variables). Use these for consistent spacing throughout your stylesheets:

CSS Property Value Computed
--spacing-none var(--spacing-none) 0
--spacing-xxs var(--spacing-xxs) 2px
--spacing-xs var(--spacing-xs) 4px
--spacing-sm var(--spacing-sm) 8px
--spacing-md var(--spacing-md) 12px
--spacing-lg var(--spacing-lg) 16px
--spacing-xl var(--spacing-xl) 24px
--spacing-xxl var(--spacing-xxl) 32px
--spacing-xxxl var(--spacing-xxxl) 40px
--spacing-4xl var(--spacing-4xl) 48px
--spacing-5xl var(--spacing-5xl) 56px
--spacing-6xl var(--spacing-6xl) 64px
--spacing-7xl var(--spacing-7xl) 128px

Usage example

					
.my-component {
   padding: var(--spacing-md);
   margin-bottom: var(--spacing-lg);
   gap: var(--spacing-sm);
}

Negative margin

In CSS, margin properties can have negative values (padding cannot). The syntax for negative margins is nearly the same as the one for the positive margin, but with the addition of n before the requested size. Here's an example class: .mt-n4 which is margin-top: -0.4rem

					
<div class="mb-n24"> ... </div>
<div class="mb-sm-n12"> ... </div>
<!-- How this clasess will look in CSS --> .mt-0 { margin-top: 0 !important; } .mr-24 { margin-right: 2.4rem !important; } .px-12 { padding-right: 1.2rem !important; padding-left: 1.2rem !important; } .p-8 { padding: 0.8rem !important; } .ml-lg-4 { @media (min-width: $screen-md-min) { margin-left: 0.4rem !important; } } .mb-n24 { margin-bottom: -2.4rem !important; }

Additional examples

The following examples are also used by our Playwright CSS property assertion tests.

Spacings

Demonstrates margin, padding and gap helper classes.

Margin

.m-0
.m-16
.mt-8
.mx-auto
.mb-n24

Padding

.p-0
.p-16
.pt-8
.px-24
.py-12

Gap

Item 1
Item 2
Item 3

.gap-16

Item 1
Item 2
Item 3
Item 4
Item 5
Item 6

.gap-x-8.gap-y-24