Skip to main content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Latest release: Component Library: v56.10.0 released on Aug 3, 2026 | Guidance: Sprint 4 released on Aug 4, 2026 | Figma: Changelog

Foundation

Spacing units

Spacing units are based on multiples of 8 to maintain a consistent rhythm when applied to margins, padding, and other dimensions.

Why multiples of 8?

The number 8 is easily broken down into smaller measurements before it approaches sub-pixel units. Additionally, many popular screen sizes are also divisible by 8.

Spacing tokens

The VA follows the USWDS spacing unit tokens and then adds additional semantic tokens.

Primitive

Token Value Notes vads-spacing-neg-15 -7.5rem (-120px) units-neg-15 namespaced for VADS. vads-spacing-neg-10 -5rem (-80px) units-neg-10 namespaced for VADS. vads-spacing-neg-9 -4.5rem (-72px) units-neg-9 namespaced for VADS. vads-spacing-neg-8 -4rem (-64px) units-neg-8 namespaced for VADS. vads-spacing-neg-7 -3.5rem (-56px) units-neg-7 namespaced for VADS. vads-spacing-neg-6 -3rem (-48px) units-neg-6 namespaced for VADS. vads-spacing-neg-5 -2.5rem (-40px) units-neg-5 namespaced for VADS. vads-spacing-neg-4 -2rem (-32px) units-neg-4 namespaced for VADS. vads-spacing-neg-3 -1.5rem (-24px) units-neg-3 namespaced for VADS. vads-spacing-neg-2p5 -1.25rem (-20px) units-neg-2p5 namespaced for VADS. vads-spacing-neg-2 -1rem (-16px) units-neg-2 namespaced for VADS. vads-spacing-neg-1p5 -0.75rem (-12px) units-neg-1p5 namespaced for VADS. vads-spacing-neg-1 -0.5rem (-8px) units-neg-1 namespaced for VADS. vads-spacing-neg-0p5 -0.25rem (-4px) units-neg-0p5 namespaced for VADS. vads-spacing-neg-2px -2px units-neg-0p25 namespaced for VADS. vads-spacing-neg-1px -1px units-neg-1px namespaced for VADS. vads-spacing-0 0
uswds-system-spacing-special-0
units-0 namespaced for VADS.
vads-spacing-1px 1px
uswds-system-spacing-1px
units-1px namespaced for VADS.
vads-spacing-2px 2px
uswds-system-spacing-2px
units-0p25 namespaced for VADS.
vads-spacing-0p5 0.25rem (4px)
uswds-system-spacing-05
units-0p5 namespaced for VADS.
vads-spacing-1 0.5rem (8px)
uswds-system-spacing-1
units-1 namespaced for VADS.
vads-spacing-1p5 0.75rem (12px)
uswds-system-spacing-105
units-1p5 namespaced for VADS.
vads-spacing-2 1rem (16px)
uswds-system-spacing-2
units-2 namespaced for VADS.
vads-spacing-2p5 1.25rem (20px)
uswds-system-spacing-205
units-2p5 namespaced for VADS.
vads-spacing-3 1.5rem (24px)
uswds-system-spacing-3
units-3 namespaced for VADS.
vads-spacing-4 2rem (32px)
uswds-system-spacing-4
units-4 namespaced for VADS.
vads-spacing-5 2.5rem (40px)
uswds-system-spacing-5
units-5 namespaced for VADS.
vads-spacing-6 3rem (48px)
uswds-system-spacing-6
units-6 namespaced for VADS.
vads-spacing-7 3.5rem (56px)
uswds-system-spacing-7
units-7 namespaced for VADS.
vads-spacing-8 4rem (64px)
uswds-system-spacing-8
units-8 namespaced for VADS.
vads-spacing-9 4.5rem (72px)
uswds-system-spacing-9
units-9 namespaced for VADS.
vads-spacing-10 5rem (80px)
uswds-system-spacing-10
units-10 namespaced for VADS.
vads-spacing-15 7.5rem (120px)
uswds-system-spacing-15
units-15 namespaced for VADS.

Semantic

Token Value Notes vads-spacing-inset-s 1rem (16px)
vads-spacing-2
Small spacing within an item (internal padding).
vads-spacing-vertical-stack-default 1rem (16px)
vads-spacing-vertical-stack-s
Default spacing between vertically stacked items.
vads-spacing-vertical-stack-s 1rem (16px)
vads-spacing-2
Small spacing between items in a stack.
vads-spacing-inset-m 1.5rem (24px)
vads-spacing-3
Medium spacing within an item (internal padding).
vads-spacing-vertical-stack-m 1.5rem (24px)
vads-spacing-3
Medium spacing between items in a stack.
vads-forms-spacing-vertical-stack-default 2rem (32px)
vads-spacing-vertical-stack-l
Default spacing between form fields. For non-form stacks, use vads-spacing-vertical-stack-default.
vads-spacing-inset-l 2rem (32px)
vads-spacing-4
Large spacing within an item (internal padding).
vads-spacing-vertical-stack-l 2rem (32px)
vads-spacing-4
Large spacing between items in a stack.

Layout

Token Value Notes vads-site-margins-mobile-width 1rem (16px)
uswds-system-spacing-2
Standard margins width for mobile (default) breakpoint.
vads-site-margins-width 2rem (32px)
uswds-system-spacing-4
Standard site margin width at and above vads-site-margins-breakpoint.
vads-grid-container-max-width 1024px
vads-breakpoint-desktop
Maximum width of the centered page grid container.
vads-site-margins-breakpoint 1024px
vads-breakpoint-desktop
Breakpoint for site margins to switch.

Using the spacing units

Use spacing unit tokens to keep spacing consistent throughout VA.gov. Tokens are the preferred approach for all margins, padding, and other spacing dimensions.

When you need a custom value outside the token system, use relative units (rem or em) for layout spacing such as margins, padding, and gaps. While pixels scale with page zoom, they don’t respond to user-set default font sizes in browser settings. Using relative units for layout spacing ensures your design adapts to user preferences, which is required for WCAG 2.2 AA SC 1.4.4 Resize Text. Pixels are still appropriate for non-scaling details like borders and box shadows.

In order to access the unit tokens in your project, you will need to import the variables file into your project. Here is how this site is doing that.

There are two ways of using the spacing tokens in your code.

Use units() to output spacing in rem. This is the recommended approach because rem units scale with user font size preferences and support accessible text resizing.

.foo {
  margin: units(5);
  padding: units(2.5);
}

will compile to:

.foo {
  margin: 4rem;
  padding: 2rem;
}

Output CSS as PX units

Use units-px() only when a pixel value is specifically required, such as for borders or box shadows that shouldn’t scale with text size. For margins, padding, and font sizes, prefer units() to support accessible text resizing.

.foo {
  margin: units-px(5);
  padding: units-px(2.5);
}

will compile to:

.foo {
  margin: 40px;
  padding: 20px;
}
Edit this page in GitHub (Permissions required)
Last updated: Jun 26, 2026