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
| Class | Styles | Use case |
|---|---|---|
gap-1 → gap-6 | gap: var(--space-*); | Set equal row and column spacing. |
gap-x-1 → gap-x-6 | column-gap: var(--space-*); | Control horizontal spacing only. |
gap-y-1 → gap-y-6 | row-gap: var(--space-*); | Control vertical spacing only. |
Spacing scale
The numeric gap scale maps directly to FrontAlign spacing tokens.
| Class | Token | Default value |
|---|---|---|
gap-1 | var(--space-xs) | 0.25rem |
gap-2 | var(--space-sm) | 0.5rem |
gap-3 | var(--space-md) | 1rem |
gap-4 | var(--space-lg) | 1.5rem |
gap-5 | var(--space-xl) | 2rem |
gap-6 | var(--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.
| Prefix | Min width | Example |
|---|---|---|
sm: | 576px | sm:gap-3 |
md: | 768px | md:gap-x-4 |
lg: | 1024px | lg:gap-y-5 |
xl: | 1280px | xl: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 for | Use 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, andis-grid. - Use margin utilities when the spacing belongs outside a standalone element.
- Responsive variants follow FrontAlign's mobile-first breakpoint system.