Vue Gap Utilities

Gap

Space children of a flex or grid container from the container itself with our gap utilities.

ClassStyles
.gap-0gap: var(--cui-spacer-0);
.gap-1gap: var(--cui-spacer-1);
.gap-2gap: var(--cui-spacer-2);
.gap-3gap: var(--cui-spacer-3);
.gap-4gap: var(--cui-spacer-4);
.gap-5gap: var(--cui-spacer-5);
.gap-6gap: var(--cui-spacer-6);
.gap-7gap: var(--cui-spacer-7);
.gap-8gap: var(--cui-spacer-8);
.gap-9gap: var(--cui-spacer-9);
.gap-10gap: var(--cui-spacer-10);
.gap-11gap: var(--cui-spacer-11);
.gap-12gap: var(--cui-spacer-12);
.row-gap-0row-gap: var(--cui-spacer-0);
.row-gap-1row-gap: var(--cui-spacer-1);
.row-gap-2row-gap: var(--cui-spacer-2);
.row-gap-3row-gap: var(--cui-spacer-3);
.row-gap-4row-gap: var(--cui-spacer-4);
.row-gap-5row-gap: var(--cui-spacer-5);
.row-gap-6row-gap: var(--cui-spacer-6);
.row-gap-7row-gap: var(--cui-spacer-7);
.row-gap-8row-gap: var(--cui-spacer-8);
.row-gap-9row-gap: var(--cui-spacer-9);
.row-gap-10row-gap: var(--cui-spacer-10);
.row-gap-11row-gap: var(--cui-spacer-11);
.row-gap-12row-gap: var(--cui-spacer-12);
.column-gap-0column-gap: var(--cui-spacer-0);
.column-gap-1column-gap: var(--cui-spacer-1);
.column-gap-2column-gap: var(--cui-spacer-2);
.column-gap-3column-gap: var(--cui-spacer-3);
.column-gap-4column-gap: var(--cui-spacer-4);
.column-gap-5column-gap: var(--cui-spacer-5);
.column-gap-6column-gap: var(--cui-spacer-6);
.column-gap-7column-gap: var(--cui-spacer-7);
.column-gap-8column-gap: var(--cui-spacer-8);
.column-gap-9column-gap: var(--cui-spacer-9);
.column-gap-10column-gap: var(--cui-spacer-10);
.column-gap-11column-gap: var(--cui-spacer-11);
.column-gap-12column-gap: var(--cui-spacer-12);

Overview

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.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
vue
<div style="grid-template-columns: 1fr 1fr" class="d-grid gap-4">
  <div class="p-3">Grid item 1</div>
  <div class="p-3">Grid item 2</div>
  <div class="p-3">Grid item 3</div>
  <div class="p-3">Grid item 4</div>
</div>

Support includes responsive options for all of CoreUI’s grid breakpoints, as well as thirteen sizes from the $spacers map (0–12). There is no .gap-auto utility class as it’s effectively the same as .gap-0.

gap only applies inside a flex or grid container. On a plain block layout it does nothing — reach for space between there.

row-gap

row-gap sets the vertical space between children items in the specified container.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
vue
<div style="grid-template-columns: 1fr 1fr" class="d-grid gap-0 row-gap-4">
  <div class="p-3">Grid item 1</div>
  <div class="p-3">Grid item 2</div>
  <div class="p-3">Grid item 3</div>
  <div class="p-3">Grid item 4</div>
</div>

column-gap

column-gap sets the horizontal space between children items in the specified container.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
vue
<div style="grid-template-columns: 1fr 1fr" class="d-grid gap-0 column-gap-4">
  <div class="p-3">Grid item 1</div>
  <div class="p-3">Grid item 2</div>
  <div class="p-3">Grid item 3</div>
  <div class="p-3">Grid item 4</div>
</div>

Customizing

Sass variables

Gap 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
);

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

scss
"gap": (
  responsive: true,
  property: gap,
  class: gap,
  values: $utilities-spacers
),
"row-gap": (
  responsive: true,
  property: row-gap,
  class: row-gap,
  values: $utilities-spacers
),
"column-gap": (
  responsive: true,
  property: column-gap,
  class: column-gap,
  values: $utilities-spacers
),