Skip to main content

Spacing

latest

Space is not only vital to design, but part of BT's visual identity. Sufficient whitespace allows content to breathe and prevents overloading of the viewport.

Spacing scale

Arc uses a 4px subgrid, which means all space is a multiple of 4. You should design to multiples of 4 when designing or developing new components.

Vertical spacing

Vertical spacing is the space between two elements or components stacked vertically. It follows a more restrictive scale to ensure consistent vertical rhythm and balance with text content.

The scale is derived from Arc's typographic line-height scale and aligned to our 4px subgrid.

SizeExample
4px
8px
12px
16px
20px
24px
28px
32px
40px
48px
64px
96px
128px

Components

VerticalSpace

Use VerticalSpace to create spacing between two vertically stacked components using the Arc vertical spacing scale. Available in React.js and Figma.

View the VerticalSpace component

Upper content
Lower content

In Figma

  • Use auto layout with 4px increments where possible.
  • Use the VerticalSpace component to compose pages. This component appears hidden. Toggle visibility by toggling the Layout Grid (Menu > View > Layout Grid).
View the Figma setup guide

Usage guidelines

Design components to the 4px subgrid.

When designing a new component, use increments of 4px for the internal spacing. This helps keep it visually aligned with Arc components.

44px
Click me
50px
Click me

Give elements plenty of breathing room.

Use whitespace to allow elements to breathe, bringing greater clarity to the page. Cramming in too much content can overwhelm the user.

With Vertical Space
8px
This example has plenty of vertical space to give the elements breathing room.
8px
Without Vertical SpaceThis example doesn't have enough vertical space, resulting in a cluttered UI.

Avoid using custom vertical spacing values.

It's important to use the vertical spacing scale between two vertically stacked components. This ensures a consistent vertical rhythm and balances the space with text content.

32px
22px