Visual QA
June 17, 2026

How to check spacing differences between Figma and your browser

Spacing differences between a Figma design and a live page are the most common type of visual drift. They're also the hardest to catch by eye.
Isometric illustration of a layout slab hovering above a reference grid, with measurement indicators showing spacing offsets between element positions and grid lines

How to check spacing differences between Figma and your browser

Spacing differences between a Figma design and a live page are the most common type of visual drift. They're also the hardest to catch by eye. A heading that's 4px too close to the element above it, a card with 20px padding instead of 24px, a gap between grid items that's 12px instead of 16px. Each one is small. Together they make a page feel off without anyone being able to say exactly why.

Why spacing drifts

Figma and browsers calculate layout differently. Understanding where the gaps come from makes them easier to find and fix.

Box model differences. Figma uses auto layout with explicit padding and gap values. CSS uses the box model, where margin, padding, border, and content interact. A Figma frame with 24px padding translates cleanly to CSS padding. But if the developer uses margin instead, or if box-sizing isn't set to border-box, the rendered spacing will differ even though the intent was the same.

Responsive scaling. A Figma frame is a fixed width. A browser viewport is fluid. Elements that sit at exact positions in the design reflow in the browser. Text wraps differently. Flex containers distribute space differently than auto layout. The design shows one arrangement. The browser shows what the CSS actually produces at that viewport width.

Subpixel rounding. Figma allows fractional values. Browsers round to whole pixels for rendering. A 13.5px gap in Figma becomes 13px or 14px in the browser depending on the rendering engine. On high-density displays this is invisible. On standard displays it can shift alignment.

Inherited and cascading values. CSS inheritance means a parent's margin or padding can affect a child's position in ways that aren't visible in the Figma frame. A reset stylesheet, a global spacing utility, or a theme default can all introduce spacing that doesn't exist in the design.

Checking spacing manually with DevTools

The browser's built-in tools can show computed spacing for any element. In Chrome DevTools, select an element and check the Computed tab. It shows the final margin, padding, border, and content dimensions after all CSS rules have been applied.

The box model diagram in DevTools is useful for individual elements. Hover over an element and the overlay shows margin (orange), padding (green), and content (blue). You can read the values directly and compare them to the Figma design.

The limitation is speed. Checking one element takes a few seconds. Checking every element on a page takes a long time. And you need to keep the Figma file open alongside the browser to compare values, which means constant context-switching between two windows.

Checking spacing with a comparison tool

A property-level comparison tool reads spacing values from both the Figma frame and the live page, then reports where they differ. Instead of checking elements one by one, you get a list of every spacing difference on the page with the specific values from both sides.

The output looks like: "padding-top: 16px (implementation) vs 24px (design)." You know the element, the property, the actual value, and the expected value. No squinting at overlays. No toggling between Figma and DevTools.

This is faster for full-page checks, and it catches differences you'd likely miss manually. The 4px padding discrepancy on the third card in a grid isn't something most people would notice by eye. A property comparison flags it the same way it flags a 20px difference.

Common spacing findings and what causes them

Consistent offset across multiple elements. If every element on the page is 4px tighter than the design, the cause is usually a global style: a CSS reset, a base font-size change that affects rem-based spacing, or a theme default that overrides the intended values. Fix the root cause and multiple findings resolve at once.

Spacing correct on desktop, wrong on mobile. The responsive breakpoint introduces different CSS rules. The Figma design might show mobile spacing at 375px width, but the CSS media query triggers at 380px. The values are correct in the stylesheet but the breakpoint doesn't align with the design frame width.

One element off, everything else correct. Usually a specificity conflict. A utility class, an inline style, or a more specific selector is overriding the intended value. DevTools' Styles panel shows the cascade and which rule won.

Vertical spacing between sections differs from horizontal spacing within sections. This often comes from using margin for vertical spacing and padding for horizontal. The values might be set independently in the CSS but specified as a single spacing token in Figma.

Spacing is where design intent lives. Colour and typography are easy to check by eye. Spacing is not. A 4px difference changes how a page feels without being visible in a side-by-side comparison.

Uiprobe checks spacing, typography, colours, and dimensions between Figma and the live page in a single comparison. Every difference is reported with specific values from both sides. See how it works.

Related articles

Stop pixel-peeping by hand.

Free to start. No credit card. See your first comparison in under a minute.

Footer: NO CREDIT CARD · WORKS WITH ANY FIGMA SEAT

© 2026 · Built by UIPROBE