Skip to main content

Spacing Utilities

NuvoUI provides a complete set of spacing utilities to control margins, padding, gaps, and spacing between elements. These utilities follow a consistent naming pattern and allow for responsive adjustments at different breakpoints.

Configuration

The spacing system is built on configurable variables:

Parent Selector

All spacing utilities are scoped under the VAR.$parent-selector which can be configured:

Utility Class Generation

Spacing utility classes are only generated if VAR.$generate-utility-classes is set to true:

Spacing Scale

The spacing system uses a map of predefined spacing values:

Default Unit

The default unit is used when converting unitless values:

Breakpoints

Responsive spacing variants are based on these breakpoint values:

Spacing Types Overview

NuvoUI provides four main types of spacing utilities:

Directional Control

All spacing utilities support directional variants to control which sides receive spacing:

Responsive Spacing

All spacing utilities can be applied conditionally at different breakpoints by adding @{breakpoint} suffix:

Common Patterns

Auto Margins for Alignment

Inset Positioning

Child Spacing

Visual Spacing Scale

This shows the different spacing sizes available in the system:

Layout Examples Using Spacing

Card Layout

Form Layout

Spacing Utilities Reference Tables

Padding Classes

ClassCSS PropertyDescription
.p-{size}padding: {size}Padding on all sides
.px-{size}padding-left/right: {size}Horizontal padding
.py-{size}padding-top/bottom: {size}Vertical padding
.pt-{size}padding-top: {size}Top padding
.pr-{size}padding-right: {size}Right padding
.pb-{size}padding-bottom: {size}Bottom padding
.pl-{size}padding-left: {size}Left padding

Margin Classes

ClassCSS PropertyDescription
.m-{size}margin: {size}Margin on all sides
.mx-{size}margin-left/right: {size}Horizontal margin
.my-{size}margin-top/bottom: {size}Vertical margin
.mt-{size}margin-top: {size}Top margin
.mr-{size}margin-right: {size}Right margin
.mb-{size}margin-bottom: {size}Bottom margin
.ml-{size}margin-left: {size}Left margin
.mx-automargin-left/right: autoHorizontal centering
.ml-automargin-left: autoPush element to right
.mr-automargin-right: autoPush element to left

Gap and Space Classes

ClassCSS PropertyDescription
.gap-{size}gap: {size}Gap in both directions
.gap-x-{size}column-gap: {size}Horizontal gap
.gap-y-{size}row-gap: {size}Vertical gap
.space-x-{size}margin-left: {size} on siblingsHorizontal space between children
.space-y-{size}margin-top: {size} on siblingsVertical space between children

Inset Classes

ClassCSS PropertyDescription
.inset-{size}inset: {size}Position on all sides
.inset-x-{size}left/right: {size}Horizontal inset
.inset-y-{size}top/bottom: {size}Vertical inset
.inset-autoinset: autoAutomatic inset

SCSS Mixins Reference

NuvoUI provides comprehensive SCSS mixins for all spacing types:

Padding Mixins

MixinDescriptionParameters
@include p($val)Sets padding on all sides$val: Padding value
@include px($val)Sets horizontal padding$val: Padding value
@include py($val)Sets vertical padding$val: Padding value
@include pt($val)Sets top padding$val: Padding value
@include pr($val)Sets right padding$val: Padding value
@include pb($val)Sets bottom padding$val: Padding value
@include pl($val)Sets left padding$val: Padding value

Margin Mixins

MixinDescriptionParameters
@include m($val)Sets margin on all sides$val: Margin value
@include mx($val)Sets horizontal margin$val: Margin value
@include my($val)Sets vertical margin$val: Margin value
@include mt($val)Sets top margin$val: Margin value
@include mr($val)Sets right margin$val: Margin value
@include mb($val)Sets bottom margin$val: Margin value
@include ml($val)Sets left margin$val: Margin value
@include mx-autoCenters element horizontallyNone
@include ml-autoPushes element to the rightNone
@include mr-autoPushes element to the leftNone

Gap Mixins

MixinDescriptionParameters
@include gap($val)Sets gap for grid/flex children$val: Gap value
@include gap-x($val)Sets horizontal gap$val: Gap value
@include gap-y($val)Sets vertical gap$val: Gap value

Space Mixins

MixinDescriptionParameters
@include space-x($val)Adds horizontal spacing between children$val: Space value
@include space-y($val)Adds vertical spacing between children$val: Space value

Inset Mixins

MixinDescriptionParameters
@include inset($val)Sets inset on all sides$val: Inset value
@include inset-x($val)Sets horizontal inset$val: Inset value
@include inset-y($val)Sets vertical inset$val: Inset value
@include inset-autoSets inset to autoNone
@include inset-x-autoSets horizontal inset to autoNone
@include inset-y-autoSets vertical inset to autoNone

Example SCSS Usage

See Also

  • Padding - For more details on padding utilities
  • Margin - For more details on margin and auto-margin utilities
  • Gaps - For more details on gap and spacing utilities