Foundation
Spacing units
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
vads-spacing-neg-15
-120px
units-neg-15 namespaced for VADS.
vads-spacing-neg-10
-80px
units-neg-10 namespaced for VADS.
vads-spacing-neg-9
-72px
units-neg-9 namespaced for VADS.
vads-spacing-neg-8
-64px
units-neg-8 namespaced for VADS.
vads-spacing-neg-7
-56px
units-neg-7 namespaced for VADS.
vads-spacing-neg-6
-48px
units-neg-6 namespaced for VADS.
vads-spacing-neg-5
-40px
units-neg-5 namespaced for VADS.
vads-spacing-neg-4
-32px
units-neg-4 namespaced for VADS.
vads-spacing-neg-3
-24px
units-neg-3 namespaced for VADS.
vads-spacing-neg-2p5
-20px
units-neg-2p5 namespaced for VADS.
vads-spacing-neg-2
-16px
units-neg-2 namespaced for VADS.
vads-spacing-neg-1p5
-12px
units-neg-1p5 namespaced for VADS.
vads-spacing-neg-1
-8px
units-neg-1 namespaced for VADS.
vads-spacing-neg-0p5
-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
4px
uswds-system-spacing-05
units-0p5 namespaced for VADS.
vads-spacing-1
8px
uswds-system-spacing-1
units-1 namespaced for VADS.
vads-spacing-1p5
12px
uswds-system-spacing-105
units-1p5 namespaced for VADS.
vads-spacing-2
16px
uswds-system-spacing-2
units-2 namespaced for VADS.
vads-spacing-2p5
20px
uswds-system-spacing-205
units-2p5 namespaced for VADS.
vads-spacing-3
24px
uswds-system-spacing-3
units-3 namespaced for VADS.
vads-spacing-4
32px
uswds-system-spacing-4
units-4 namespaced for VADS.
vads-spacing-5
40px
uswds-system-spacing-5
units-5 namespaced for VADS.
vads-spacing-6
48px
uswds-system-spacing-6
units-6 namespaced for VADS.
vads-spacing-7
56px
uswds-system-spacing-7
units-7 namespaced for VADS.
vads-spacing-8
64px
uswds-system-spacing-8
units-8 namespaced for VADS.
vads-spacing-9
72px
uswds-system-spacing-9
units-9 namespaced for VADS.
vads-spacing-10
80px
uswds-system-spacing-10
units-10 namespaced for VADS.
vads-spacing-15
120px
uswds-system-spacing-15
units-15 namespaced for VADS.
Semantic
vads-spacing-inset-s
16px
vads-spacing-2 Small spacing within an item (internal padding).
vads-spacing-vertical-stack-default
16px
vads-spacing-vertical-stack-s Default spacing between vertically stacked items.
vads-spacing-vertical-stack-s
16px
vads-spacing-2 Small spacing between items in a stack.
vads-spacing-inset-m
24px
vads-spacing-3 Medium spacing within an item (internal padding).
vads-spacing-vertical-stack-m
24px
vads-spacing-3 Medium spacing between items in a stack.
vads-forms-spacing-vertical-stack-default
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
32px
vads-spacing-4 Large spacing within an item (internal padding).
vads-spacing-vertical-stack-l
32px
vads-spacing-4 Large spacing between items in a stack.
Layout
vads-site-margins-mobile-width
16px
uswds-system-spacing-2 Standard margins width for mobile (default) breakpoint.
vads-site-margins-width
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.
Output CSS as REM units (recommended)
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;
}