afv-library/skills/applying-slds/guidance/utilities/margin.md
2026-06-12 10:55:46 +00:00

5.2 KiB

id title description summary artifact_type domain topic content_format complexity audience tasks refs tags keywords
slds.guidance.utilities.margin Margin Utilities SLDS margin utility classes for external spacing Utilities for external spacing. Includes directional (top/right/bottom/left), aggregate (horizontal/vertical/around), and variable density classes. Base unit 4px with sizes from xxx-small (2px) to xx-large (48px). reference utilities margin structured intermediate
implementer
implement
slds.guidance.utilities
slds.guidance.overview.utilities
slds.guidance.utilities.padding
slds.guidance.hooks.spacing
utilities
margin
spacing
external-spacing
slds-m
margin
external spacing
whitespace

Margin - External Spacing

External spacing between elements. Base unit: 4px.

Size Scale

Size Class Suffix Value Pixels
None none 0 0px
XXX Small xxx-small 0.125rem 2px
XX Small xx-small 0.25rem 4px
X Small x-small 0.5rem 8px
Small small 0.75rem 12px
Medium medium 1rem 16px
Large large 1.5rem 24px
X Large x-large 2rem 32px
XX Large xx-large 3rem 48px

Core Classes

Directional Margins

Class Purpose
slds-m-top_* Applies margin to the top edge
slds-m-right_* Applies margin to the right edge
slds-m-bottom_* Applies margin to the bottom edge
slds-m-left_* Applies margin to the left edge

Aggregate Margins

Class Purpose
slds-m-horizontal_* Applies margin to left and right edges
slds-m-vertical_* Applies margin to top and bottom edges
slds-m-around_* Applies margin to all four edges

Variable Density Classes

Class Purpose Comfy Compact
slds-var-m-top_* Variable density top margin Full size 50% size
slds-var-m-right_* Variable density right margin Full size 50% size
slds-var-m-bottom_* Variable density bottom margin Full size 50% size
slds-var-m-left_* Variable density left margin Full size 50% size
slds-var-m-horizontal_* Variable density horizontal margins Full size 50% size
slds-var-m-vertical_* Variable density vertical margins Full size 50% size
slds-var-m-around_* Variable density all sides Full size 50% size

Common Patterns

<!-- Card stack with consistent spacing -->
<div class="slds-card slds-m-bottom_medium">
  <!-- Card content -->
</div>
<div class="slds-card slds-m-bottom_medium">
  <!-- Card content -->
</div>
<div class="slds-card">
  <!-- Last card needs no bottom margin -->
</div>

<!-- Button group with horizontal spacing -->
<div class="slds-button-group">
  <button class="slds-button slds-button_neutral">Cancel</button>
  <button class="slds-button slds-button_brand slds-m-left_small">Save</button>
  <button class="slds-button slds-button_brand slds-m-left_small">Save & New</button>
</div>

<!-- Page sections with vertical rhythm -->
<section class="slds-m-vertical_large">
  <h2 class="slds-text-heading_medium slds-m-bottom_small">Section Title</h2>
  <div class="slds-m-bottom_medium">
    <!-- Section content -->
  </div>
</section>

<!-- Responsive form layout with variable density -->
<div class="slds-form-element slds-var-m-bottom_medium">
  <label class="slds-form-element__label">Field Label</label>
  <input class="slds-input" />
</div>
<div class="slds-form-element slds-var-m-bottom_medium">
  <label class="slds-form-element__label">Another Field</label>
  <input class="slds-input" />
</div>

<!-- Remove default margins when needed -->
<ul class="slds-m-around_none">
  <li>List item without inherited margins</li>
  <li>Another item</li>
</ul>

Implementation Guidelines

Standard Spacing Values

Context Recommended Class Size
Between cards/tiles slds-m-bottom_medium 16px
Between buttons slds-m-left_small 12px
Between form fields slds-m-bottom_medium 16px
Between page sections slds-m-vertical_large 24px
Icon to text slds-m-right_x-small 8px
Dense layouts slds-m-around_small 12px
Remove spacing slds-m-around_none 0px

Responsive Considerations

Use variable density classes for layouts that adapt to user preferences:

  • Desktop comfy mode: Full spacing values
  • Desktop compact mode: 50% reduced spacing
  • Mobile: Consider using smaller sizes by default

Best Practices

Use slds-m-bottom_medium (16px) between stacked components Use slds-m-left_small (12px) between inline buttons Use slds-m-vertical_large (24px) between major page sections Use slds-m-around_none to remove default element margins Use variable density classes (slds-var-m-*) for responsive layouts Apply margins to the element that needs spacing from its siblings

Don't use margins larger than xx-large (48px) Don't apply both top and bottom margins when one suffices Don't mix standard and variable density classes on the same element Don't use margin for internal spacing - use Padding Utilities instead