Vue Padding Utilities

Padding

Assign responsive-friendly padding values to an element or a subset of its sides with shorthand classes.

ClassStyles
.p-0padding: var(--cui-spacer-0);
.p-1padding: var(--cui-spacer-1);
.p-2padding: var(--cui-spacer-2);
.p-3padding: var(--cui-spacer-3);
.p-4padding: var(--cui-spacer-4);
.p-5padding: var(--cui-spacer-5);
.p-6padding: var(--cui-spacer-6);
.p-7padding: var(--cui-spacer-7);
.p-8padding: var(--cui-spacer-8);
.p-9padding: var(--cui-spacer-9);
.p-10padding: var(--cui-spacer-10);
.p-11padding: var(--cui-spacer-11);
.p-12padding: var(--cui-spacer-12);
.pt-0padding-top: var(--cui-spacer-0);
.pt-1padding-top: var(--cui-spacer-1);
.pt-2padding-top: var(--cui-spacer-2);
.pt-3padding-top: var(--cui-spacer-3);
.pt-4padding-top: var(--cui-spacer-4);
.pt-5padding-top: var(--cui-spacer-5);
.pt-6padding-top: var(--cui-spacer-6);
.pt-7padding-top: var(--cui-spacer-7);
.pt-8padding-top: var(--cui-spacer-8);
.pt-9padding-top: var(--cui-spacer-9);
.pt-10padding-top: var(--cui-spacer-10);
.pt-11padding-top: var(--cui-spacer-11);
.pt-12padding-top: var(--cui-spacer-12);
.pb-0padding-bottom: var(--cui-spacer-0);
.pb-1padding-bottom: var(--cui-spacer-1);
.pb-2padding-bottom: var(--cui-spacer-2);
.pb-3padding-bottom: var(--cui-spacer-3);
.pb-4padding-bottom: var(--cui-spacer-4);
.pb-5padding-bottom: var(--cui-spacer-5);
.pb-6padding-bottom: var(--cui-spacer-6);
.pb-7padding-bottom: var(--cui-spacer-7);
.pb-8padding-bottom: var(--cui-spacer-8);
.pb-9padding-bottom: var(--cui-spacer-9);
.pb-10padding-bottom: var(--cui-spacer-10);
.pb-11padding-bottom: var(--cui-spacer-11);
.pb-12padding-bottom: var(--cui-spacer-12);
.ps-0padding-inline-start: var(--cui-spacer-0);
.ps-1padding-inline-start: var(--cui-spacer-1);
.ps-2padding-inline-start: var(--cui-spacer-2);
.ps-3padding-inline-start: var(--cui-spacer-3);
.ps-4padding-inline-start: var(--cui-spacer-4);
.ps-5padding-inline-start: var(--cui-spacer-5);
.ps-6padding-inline-start: var(--cui-spacer-6);
.ps-7padding-inline-start: var(--cui-spacer-7);
.ps-8padding-inline-start: var(--cui-spacer-8);
.ps-9padding-inline-start: var(--cui-spacer-9);
.ps-10padding-inline-start: var(--cui-spacer-10);
.ps-11padding-inline-start: var(--cui-spacer-11);
.ps-12padding-inline-start: var(--cui-spacer-12);
.pe-0padding-inline-end: var(--cui-spacer-0);
.pe-1padding-inline-end: var(--cui-spacer-1);
.pe-2padding-inline-end: var(--cui-spacer-2);
.pe-3padding-inline-end: var(--cui-spacer-3);
.pe-4padding-inline-end: var(--cui-spacer-4);
.pe-5padding-inline-end: var(--cui-spacer-5);
.pe-6padding-inline-end: var(--cui-spacer-6);
.pe-7padding-inline-end: var(--cui-spacer-7);
.pe-8padding-inline-end: var(--cui-spacer-8);
.pe-9padding-inline-end: var(--cui-spacer-9);
.pe-10padding-inline-end: var(--cui-spacer-10);
.pe-11padding-inline-end: var(--cui-spacer-11);
.pe-12padding-inline-end: var(--cui-spacer-12);
.px-0padding-inline: var(--cui-spacer-0);
.px-1padding-inline: var(--cui-spacer-1);
.px-2padding-inline: var(--cui-spacer-2);
.px-3padding-inline: var(--cui-spacer-3);
.px-4padding-inline: var(--cui-spacer-4);
.px-5padding-inline: var(--cui-spacer-5);
.px-6padding-inline: var(--cui-spacer-6);
.px-7padding-inline: var(--cui-spacer-7);
.px-8padding-inline: var(--cui-spacer-8);
.px-9padding-inline: var(--cui-spacer-9);
.px-10padding-inline: var(--cui-spacer-10);
.px-11padding-inline: var(--cui-spacer-11);
.px-12padding-inline: var(--cui-spacer-12);
.py-0padding-block: var(--cui-spacer-0);
.py-1padding-block: var(--cui-spacer-1);
.py-2padding-block: var(--cui-spacer-2);
.py-3padding-block: var(--cui-spacer-3);
.py-4padding-block: var(--cui-spacer-4);
.py-5padding-block: var(--cui-spacer-5);
.py-6padding-block: var(--cui-spacer-6);
.py-7padding-block: var(--cui-spacer-7);
.py-8padding-block: var(--cui-spacer-8);
.py-9padding-block: var(--cui-spacer-9);
.py-10padding-block: var(--cui-spacer-10);
.py-11padding-block: var(--cui-spacer-11);
.py-12padding-block: var(--cui-spacer-12);

Overview

Assign responsive-friendly 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 8rem.

Unlike margin, padding takes no negative values and no auto, so there is no .p-n1 and no .px-auto.

Notation

Padding utilities that apply to all breakpoints, from xs to 2xl, 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.

The classes are named using the format p{sides}-{size} for xs and p{sides}-{breakpoint}-{size} for sm, md, lg, xl, and 2xl.

Where sides is one of:

  • t - for classes that set padding-top
  • b - for classes that set padding-bottom
  • s - (start) for classes that set padding-left in LTR, padding-right in RTL
  • e - (end) for classes that set padding-right in LTR, padding-left in RTL
  • x - for classes that set both padding-left and padding-right
  • y - for classes that set both padding-top and padding-bottom
  • blank - for classes that set a padding on all 4 sides of the element

Where size is one of:

  • 0 - for classes that eliminate the padding by setting it to 0
  • 1 - (by default) for classes that set the padding to $spacer * .25
  • 2 - (by default) for classes that set the padding to $spacer * .375
  • 3 - (by default) for classes that set the padding to $spacer * .5
  • 4 - (by default) for classes that set the padding to $spacer * .75
  • 5 - (by default) for classes that set the padding to $spacer
  • 6 - (by default) for classes that set the padding to $spacer * 1.25
  • 7 - (by default) for classes that set the padding to $spacer * 1.5
  • 8 - (by default) for classes that set the padding to $spacer * 1.75
  • 9 - (by default) for classes that set the padding to $spacer * 2
  • 10 - (by default) for classes that set the padding to $spacer * 2.25
  • 11 - (by default) for classes that set the padding to $spacer * 2.5
  • 12 - (by default) for classes that set the padding to $spacer * 3

(You can add more sizes by adding entries to the $spacers Sass map variable.)

Examples

Here are some representative examples of these classes:

.pt-0 {
  padding-top: 0;
}

.px-3 {
  padding-left: ($spacer * .5);
  padding-right: ($spacer * .5);
}

.p-5 {
  padding: $spacer;
}

Customizing

Sass variables

Padding utilities are generated from the $spacers map.

scss
$spacer: 1rem !default;
scss
$spacers: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$spacers: defaults(
  (
    0: 0,
    1: calc(var(--cui-spacer) * .25),
    2: calc(var(--cui-spacer) * .375),
    3: calc(var(--cui-spacer) * .5),
    4: calc(var(--cui-spacer) * .75),
    5: var(--cui-spacer),
    6: calc(var(--cui-spacer) * 1.25),
    7: calc(var(--cui-spacer) * 1.5),
    8: calc(var(--cui-spacer) * 1.75),
    9: calc(var(--cui-spacer) * 2),
    10: calc(var(--cui-spacer) * 2.25),
    11: calc(var(--cui-spacer) * 2.5),
    12: calc(var(--cui-spacer) * 3),
  ),
  $spacers
);

Padding utilities are declared in our utilities API in scss/_utilities.scss. Learn how to use the utilities API.

scss
"padding": (
  responsive: true,
  property: padding,
  class: p,
  values: $utilities-spacers
),
"padding-x": (
  responsive: true,
  property: padding-inline,
  class: px,
  values: $utilities-spacers
),
"padding-y": (
  responsive: true,
  property: padding-block,
  class: py,
  values: $utilities-spacers
),
"padding-top": (
  responsive: true,
  property: padding-top,
  class: pt,
  values: $utilities-spacers
),
"padding-end": (
  responsive: true,
  property: padding-inline-end,
  class: pe,
  values: $utilities-spacers
),
"padding-bottom": (
  responsive: true,
  property: padding-bottom,
  class: pb,
  values: $utilities-spacers
),
"padding-start": (
  responsive: true,
  property: padding-inline-start,
  class: ps,
  values: $utilities-spacers
),
// Gap utility