Gap

Use gap utilities to control spacing between children inside Flexbox and Grid layouts. They create consistent internal rhythm without adding margins to each item manually.

Gap utilities are powered by FrontAlign spacing tokens, so the same scale works across navigation, button groups, forms, card grids and responsive page sections.

Quick reference

ClassStylesUse case
gap-1gap-6gap: var(--space-*);Set equal row and column spacing.
gap-x-1gap-x-6column-gap: var(--space-*);Control horizontal spacing only.
gap-y-1gap-y-6row-gap: var(--space-*);Control vertical spacing only.

Spacing scale

The numeric gap scale maps directly to FrontAlign spacing tokens.

ClassTokenDefault value
gap-1var(--space-xs)0.25rem
gap-2var(--space-sm)0.5rem
gap-3var(--space-md)1rem
gap-4var(--space-lg)1.5rem
gap-5var(--space-xl)2rem
gap-6var(--space-2xl)3rem

Because the scale uses design tokens, project-level spacing can be adjusted from the theme layer without rewriting layout markup.

Usage

Gap utilities work on Flexbox and Grid containers.

<div class="is-flex gap-3">
  <button class="button is-light">Cancel</button>
  <button class="button is-primary">Save</button>
</div>
<div class="is-grid grid-cols-3 gap-4">
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
</div>

Gap sets spacing between children only. It does not add outer spacing around the container.

Equal spacing

Use gap-* when row and column spacing should be the same.

<div class="is-grid grid-cols-3 gap-4">
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
</div>

Column spacing

Use gap-x-* when horizontal spacing needs to be different from vertical spacing.

<div class="is-grid grid-cols-3 gap-x-5 gap-y-2">
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
</div>

Row spacing

Use gap-y-* for vertical rhythm in stacked layouts such as forms.

<form class="is-grid gap-y-3">
  <input class="form-control" placeholder="Name">
  <input class="form-control" placeholder="Email">
  <button class="button is-primary">Submit</button>
</form>

Feature grid

Use a larger gap for section-level layouts.

<section class="is-grid grid-cols-1 md:grid-cols-3 gap-4">
  <article>Design tokens</article>
  <article>Runtime behavior</article>
  <article>Compiler engine</article>
</section>

Split layout

Use different horizontal and vertical gaps when a layout wraps.

<section class="is-grid grid-cols-1 lg:grid-cols-2 gap-y-4 gap-x-6">
  <div>Content</div>
  <div>Preview</div>
</section>

Responsive

Gap utilities include responsive variants for sm, md, lg, and xl breakpoints.

PrefixMin widthExample
sm:576pxsm:gap-3
md:768pxmd:gap-x-4
lg:1024pxlg:gap-y-5
xl:1280pxxl:gap-6

Responsive variants are mobile-first. A base gap applies immediately; a prefixed gap applies from its breakpoint and above.

<section class="is-grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 lg:gap-5">
  <article>Card</article>
  <article>Card</article>
  <article>Card</article>
</section>

Gap vs margin

Gap is usually better than margin when spacing children inside a Flexbox or Grid container.

Use gap forUse margin for
Spacing between layout children.Spacing around a standalone element.
Flexbox and Grid item separation.Document flow and section spacing.
Responsive internal layout rhythm.External component positioning.

Gap avoids edge-margin cleanup because it only applies between items.

Usage notes

  • Use gap-* for equal row and column spacing.
  • Use gap-x-* for column spacing only.
  • Use gap-y-* for row spacing only.
  • Gap utilities work best with is-flex, is-inline-flex, and is-grid.
  • Use margin utilities when the spacing belongs outside a standalone element.
  • Responsive variants follow FrontAlign's mobile-first breakpoint system.

FrontAlign