GoodScool Header Component
The 8pt Grid Explained — GoodScool Blog
Craft · 6 min read · March 2026

The 8pt Grid.
Not a rule. A decision-making system.

Every professional design team uses it. Most junior designers have heard of it. Almost nobody explains why it actually works — or how to use it for every spacing decision you'll ever make.

Megha Arora
Megha Arora
Lead Product Designer · Ex-Samsung
Reading progress
0%

Before the grid, there was chaos

Open a design file made by someone who doesn't know about the 8pt grid. You'll see padding values like 13px, 17px, 22px. Gaps of 11px. Margins of 19px. Nothing is obviously wrong, but something feels off. The design looks slightly cramped in one place, slightly too spaced in another.

This isn't a talent problem. It's a system problem. Without a consistent spatial framework, every spacing decision is made from scratch — and human beings are terrible at making the same arbitrary decision the same way twice.

⚠️
Common mistake

Eyeballing spacing for each element individually. It creates designs that look "almost right" but never feel truly polished — because nothing is proportionally consistent.

The 8pt grid solves this by giving you a simple constraint: every spacing value must be a multiple of 8. That's it. 8, 16, 24, 32, 40, 48, 64, 80, 96. Every padding, every gap, every margin, every size.

Why 8? Why not 5 or 10?

This is the question everyone asks. The answer has two parts: screen physics and human proportion.

Most screens — phones, tablets, laptops — have display resolutions that scale in multiples of 2. The common scaling factors are 1×, 1.5×, 2×, 3×. A value of 8 divides cleanly into all of these. That means your design renders crisp at every resolution without fractional pixel values blurring your edges. A value of 5 or 10 doesn't divide as cleanly.

"
The 8pt grid doesn't constrain creativity. It eliminates low-value decisions — so your mental energy goes to the things that actually matter.

The human proportion argument is subtler. Our visual system perceives space in relative terms, not absolute ones. The difference between 8px and 16px (doubling) is perceived as meaningful. The difference between 13px and 14px is not. By working in multiples of 8, you create spacing relationships that the eye can actually sense and respond to.

💡
The deeper insight

You're not choosing between 8px and 9px. You're choosing between one unit of space and two units of space. The grid makes your decisions semantic, not arbitrary.

Your complete spacing scale

Here's the full token set you'll use for 95% of all spacing decisions. Each token has a specific semantic role — which is what separates a designer who uses the grid from one who truly understands it.

8pt Spacing Scale All values in pixels
space-1
4px Icon gap, inline tag padding, tiny nudges
space-2
8px Button padding (vertical), small gaps
space-3
16px Card inner padding, list item spacing
space-4
24px Between related components
space-5
32px Section sub-group spacing
space-6
48px Between distinct sections
space-7
64px Major section padding
space-8
96px Hero / page-level breathing room

The before/after you need to see

Here are two versions of the same card. One is designed without the grid. One uses it. The content is identical. The difference is only in the spacing values.

Same card. Different spacing discipline. Interactive
Without the grid
Get started
✗ padding: 13px, gap: 7px, radius: 6px
With the 8pt grid
Get started
✓ padding: 16px, gap: 8px, radius: 8px

The second card feels more settled, more intentional. Not dramatically different — which is exactly the point. Good spacing is invisible. Bad spacing creates a nagging feeling that something is off without being able to name it.

Try it — the spacing playground

Here's an interactive version. Toggle between grid-valid and grid-invalid spacing and feel the difference yourself.

Spacing playground — click to compare
Continue →
padding: 16px · gap: 8px
✓ On-grid

Setting up the grid in Figma

Here's exactly how to configure your Figma file so the grid does the work for you.

Step 1: Set your nudge values

In Figma, go to Preferences → Nudge Amount. Set "Small nudge" to 1px and "Big nudge" to 8px. Now pressing Shift + arrow moves elements exactly one grid unit. This is the single most important Figma setting for a grid-conscious designer.

Step 2: Add a layout grid

Select your frame and add a grid under the Design panel. Set type to "Grid", size to 8, and opacity to around 10%. You'll now see a soft grid that makes misalignment obvious at a glance.

Design Tokens · CSS
/* Your 8pt spacing scale as CSS custom properties */
:root {
  --space-1: 4px;   /* micro — icon gaps, badge padding */
  --space-2: 8px;   /* xs — button padding, tag spacing */
  --space-3: 16px;  /* sm — card padding, list gaps */
  --space-4: 24px;  /* md — between related elements */
  --space-5: 32px;  /* lg — sub-section spacing */
  --space-6: 48px;  /* xl — between sections */
  --space-7: 64px;  /* 2xl — major section padding */
  --space-8: 96px;  /* 3xl — hero, full-page breathing room */
}
Pro tip

Give your tokens semantic names, not numeric ones. --space-card-inner is more useful than --space-3 because you understand its purpose at a glance without memorising the scale.

When 4px is fine (and when to break the grid)

The 8pt grid has one common extension: a 4px half-unit for very tight, micro-spacing situations. Think of the gap between an icon and its label, the vertical padding inside a chip tag, or the space between a label and its input field. These situations call for precision tighter than 8px.

Using 4px here is not breaking the grid — it's a sanctioned subdivision. The rule is: only use 4px for micro-spacing within components, never for the gaps between them.

As for breaking the grid entirely — the honest answer is almost never. In eight years of product design across consumer apps, enterprise tools and startup products, I have encountered maybe five situations that genuinely required an off-grid value. Every other time, a designer who thought they needed 13px actually just needed to reconsider whether the spacing should be 8px or 16px.

"
When you think you need 13px, you don't. You need to decide whether the space should be one unit or two. The grid doesn't constrain your design — it forces a better decision.

The real benefit nobody talks about

We've talked about visual consistency. But the 8pt grid has a benefit that's arguably more important in a professional context: it makes design decisions defensible.

When a developer asks "why is this padding 16px?", the answer "because it's two grid units, which is our standard card inner padding" is a professional answer. It references a system. It's repeatable. It can be encoded into a design token.

When the answer is "it just looked right to me" — that's a guess. Guesses erode trust. Systems build it.

This is the same reason surgeons follow checklists and pilots run pre-flight procedures. Not because they don't trust their expertise — but because systems prevent the kinds of errors that happen when you rely purely on intuition, every single time.

🎯
The takeaway

Start today. Open your current design file. Change every spacing value to the nearest multiple of 8. It takes 20 minutes. The design will look noticeably more resolved — and you'll never go back.

Spacing 8pt Grid Figma Design Systems Layout
Read next
Typography scales — how to set type that communicates hierarchy without guessing

The 8pt grid is covered in depth in Module 1.2 — The Science of Layout inside Zero to Hero in UI/UX Design, along with column grids, modular grids, and vertical rhythm. See the full course →

One Response

Leave a Reply

Your email address will not be published. Required fields are marked *