How to Compare Your Figma Design Against a Live Staging Site

Design & Figma
June 3rd, 2026
9 Minute Read

Design drift is silent and cumulative. Here's a step-by-step guide to comparing your Figma design against a staging site and catching every discrepancy before your client does.

The Figma file was approved six weeks ago. The client loved it. The developer built it faithfully — or at least, they did their best. But six weeks of back-and-forth, small iterations, last-minute copy changes, and "can we just tweak this section" requests have created something that looks almost right but isn't quite the thing that was approved.

This is design drift. And it's not a failure of skill or professionalism — it's an inevitable result of the handoff process when there's no systematic way to check that what's been built matches what was designed.

What Design Drift Actually Looks Like

Design drift isn't dramatic. It doesn't look broken. That's what makes it hard to catch. Here are the most common forms:

Type of Drift What Changed Visibility Risk
Font size H2 rendered at 36px instead of 40px Low — looks "fine" Medium
Colour value Brand primary is #1A5CFF, build uses #1B60FF Very low — nearly identical Low
Spacing & padding Section padding 80px in Figma, 60px in build Medium — feels "tighter" Medium
Font weight Body copy at weight 300 instead of approved 400 Medium — feels "lighter" Medium
Button style Border radius 4px vs 8px, shadow missing Medium — buttons look "flatter" Medium
Image crop / ratio Hero image 16:9 in design, 16:8 in build High — composition is off High
Component missing Testimonial section not built on mobile High — visible gap in layout High

The individual items in the low-to-medium risk category rarely matter on their own. Together, they create a site that doesn't look like the approved design — it just looks like a slightly worse version of it. Clients feel this even when they can't articulate it. "Something feels off" is design drift presenting itself.

Why You Can't Catch Drift by Eye Alone

The problem with visual comparison is that humans are excellent at perceiving what's roughly correct and poor at spotting specific numerical deviations. If you look at a button that should have 8px border radius and it has 6px, your eye sees "rounded button." Your brain fills in the rest.

The only reliable way to catch design drift is to compare specific values — not visual impressions. You need to check the actual computed CSS against the design specification, systematically, for every significant element on every page.

Figma Design Spec
font-family: "Neue Haas Grotesk";
font-size: 40px;
font-weight: 600;
line-height: 1.1;
color: #0F0E0B;
letter-spacing: -0.03em;
Live Build (Computed CSS)
font-family: "Neue Haas Grotesk";
font-size: 40px 36px; ← drift
font-weight: 600;
line-height: 1.1 1.2; ← drift
color: #0F0E0B;
letter-spacing: -0.03em -0.02em; ← drift

These changes are invisible at a glance. Measured side-by-side, they're clear. The heading is 10% smaller than approved, the line height is looser, and the letter spacing is slightly off. Individually, each is minor. Together, this headline doesn't feel like the approved design.

The Manual Method: Overlay Comparison

The traditional manual approach uses a browser extension like Pixelay or PerfectPixel to overlay a Figma screenshot on top of the live page and look for misalignment.

1

Export the Figma frame as a PNG

Select the frame, export at 1x or 2x. Make sure you're exporting the approved version, not a draft.

2

Install an overlay extension (Pixelay, PerfectPixel)

These Chrome extensions let you place a semi-transparent image on top of your live browser window.

3

Upload the PNG and align it to the page

Match the viewport width to your Figma canvas width. Adjust opacity to around 50% so both layers are visible.

4

Scan for misalignment visually

Look for edges that don't line up, text that sits higher or lower than expected, spacing that appears different.

5

Log and report each issue

Screenshot the misalignment, describe the expected vs. actual value, and send to the developer with specific guidance.

This method works. It's better than nothing and better than pure visual inspection. The limitations: it's slow (page by page, element by element), it's subjective (you're eyeballing, not measuring), it produces screenshots rather than structured reports, and it requires re-exporting from Figma every time the design changes.

The Things Overlay Comparison Misses

Even with a thorough overlay comparison, certain types of drift are nearly impossible to catch visually:

  • Font weight differences — 500 vs 600 looks the same at small sizes
  • Letter spacing — minor differences in tracking are almost invisible without measuring
  • Colour values that are close but not exact — your eye can't distinguish #1A5CFF from #1B60FF
  • Line height on multi-line text — subtle but affects the entire rhythm of the page
  • Z-index and layering issues — elements that appear correct in one viewport but overlap incorrectly in another
  • Mobile drift — overlay tools work primarily at desktop viewport sizes

A Better Approach: Value-Level Comparison

The most reliable design parity check compares actual computed CSS values from the live build against the design specification from Figma, rather than relying on visual overlay. This means for every significant element, you're comparing numbers to numbers, not images to images.

In practice, this means either:

  • Using browser DevTools to inspect computed styles element by element and cross-referencing against Figma's inspect panel (accurate but extremely slow)
  • Using a tool that connects to your Figma file and automatically reads both the design spec and the live computed styles (fast and comprehensive)
How Frank Does This

Frank connects to your Figma file, maps each page to its corresponding frame, and automatically cross-references colours, fonts, and spacing between the design spec and the live staging build. Instead of eyeballing overlays or manually inspecting computed styles, you get a structured report of exactly what has drifted and by how much — ready to send to the developer with one click. Try it during our beta →

What to Do When You Find Drift

Finding drift is only useful if the information gets to the developer in a format they can act on. A screenshot with a red circle and the comment "this looks wrong" is not a useful bug report. A good design parity issue report includes:

  • The element — which component, section, or page element is affected
  • The expected value — what the Figma spec says it should be (with the exact number)
  • The actual value — what the live build currently renders (with the exact computed value)
  • The viewport — whether this is a desktop, tablet, or mobile issue
  • A screenshot or reference — a visual that shows where the element is on the page


The developer can then fix it in one pass, without a follow-up round of clarification. That's the goal: one round of review, one round of fixes, not three rounds of "which element do you mean?"

Practical Tip

When reporting a colour drift issue, always include the exact hex codes — not "it looks a bit different." The developer needs a specific value to fix it to, not a direction. Same for font sizes, spacing values, and border radii. Numbers fix things; adjectives don't.

Making Design Parity Part of Every Project

The mistake most agencies make is treating design parity as a one-time check at the end of a project. The better approach is to run a comparison check at three points:

  • Mid-build — when the core structure and components are in place but before content is populated. Catch structural drift early when it's cheapest to fix.
  • Pre-launch — the full parity check on the complete site before client review. This is your QA gate.
  • After client revisions — any round of revisions can introduce new drift. A quick check after the final round of changes before going live is essential.

Join the Beta: Help Us Build Design Parity Right

Frank's Figma parity feature is one of the things we're actively developing with beta users right now. If you join the beta, you'll be using it on real projects and telling us where it works, where it doesn't, and what we're missing.


That direct line to the product makes beta membership genuinely valuable — you're not just getting free access to a tool, you're shaping what the tool becomes. And when Frank moves to paid plans, every beta user keeps their founding rate. No future member will get that price.

More from Frank

QA & Process

Why Manual QA Doesn't Scale for Web Agencies

June 5th, 2026
7 Minute Read
Client Management

How to Get Client Sign-Off on a Staging Site (Without the Endless Back-and-Forth)

June 4th, 2026
8 Minute Read
Client Management

Your Client Is Not Your QA Team

June 2nd, 2026
7 Minute Read

Done reading? Now stop doing QA manually.

Frank catches the lorem ipsum, broken links, and Figma drift so you don't have to. Free during beta — join the list and we'll let you in when your spot's ready.

Legend

You're on the list.

We'll be in touch when your spot is ready. In the meantime, feel free to share Frank with anyone who'd find it useful.
Something went wrong. Try again, or email us at support@usefrank.io
  • Free during beta
  • No credit card required
  • Cancel or leave any time