Design QA

How to Catch Design Mismatches Before Release: 5 Checkpoints

Last updated: October 10, 2026

A design mismatch is any difference between the approved design and what the browser renders: spacing, color, type, radius, a missing state, or the wrong component. To catch mismatches before release, check at five points (handoff, build, pull request, staging, and release), compare the build against the frame at each one, and file every miss as an issue that names the expected value.

Most teams find design mismatches the same way: a designer opens the staging link the day before release, or a client opens production the day after. In the UX Tools Design Delivery Survey, published by Zeplin, 90% of designers said the design does not match the final product, 80% said changes to designs are missed by developers, and 55% said developers use the wrong design system element. Figma's 2025 design statistics add the other half: 91% of developers and 92% of designers believe the handoff process could be improved.

Five smaller checks spread across the release beat one big review at the end: each check catches the mismatches that enter at its stage, so the staging pass finds the last few instead of the first forty. This guide covers what counts as a mismatch, why mismatches reach production, the five checkpoints, who runs each one, how to file a mismatch so it gets fixed, and which checks a scanner can run for you.

What Is a Design Mismatch?

A design mismatch is a place where the shipped UI differs from the approved design in a way the design did not intend. The button works; it is 8px rounded where the frame says 12px. Functional tests and code review let it through because the page loads, the colors are close, and nothing errors. Design QA finds it by comparing the build to the design.

Mismatch typeWhat it looks likeWhere it usually enters
SpacingPadding 12px instead of 16px; a 24px gap collapsed to 20pxBuild (values typed from the frame instead of a token)
TypographyWrong weight, line height or letter spacing; faux bold from a missing font weightBuild (web font loads a subset) and release (fallback font on production)
ColorA near-match hex instead of the token; hover color missingBuild
Radius, border, shadow8px radius where the frame says 12px; a 1px border rendered at 1.5px on a 2x displayBuild and pull request
Component statesHover, focus, disabled, loading, error or empty state never implementedHandoff (states never specified) and build
Wrong component or variantA secondary button where the frame uses tertiary; a card variant the system does not haveBuild (55% of designers report it, per the UX Tools survey)
ResponsiveLayout correct at 1280px; overflow or a clipped heading at 375pxPull request (reviewed at one width)
ContentPlaceholder copy, default empty-state text, a label that changed after handoffHandoff (copy changed later) and staging

Why Design Mismatches Reach Production

Design mismatches reach production for three reasons: the design changed after the developer last looked at it, the browser renders values differently than the design tool, and nobody compared the build to the frame before release.

The cost compounds. The NIST 2002 study of software testing infrastructure puts the relative cost of fixing a defect after release at 30 times the cost at the requirements stage and 6 times the cost during coding (Table 5-1, which NIST labels an example). A mismatch found in the pull request is a one-line CSS change. The same mismatch found by a client is a hotfix, a deploy, and a conversation.

How to Catch Design Mismatches Before Release: Five Checkpoints

Catching design mismatches before release means checking the build against the approved design at five points: handoff, build, pull request, staging, and release. Each checkpoint catches the mismatches that enter at that stage, and each takes five to thirty minutes.

1. Handoff: Freeze the Frame and Define Done

The handoff checkpoint prevents the mismatches that no later check can catch: the ones where the design itself was ambiguous. Before a ticket moves to development, the designer and developer agree on three things.

For the seven handoff practices that make this routine, see how to improve your design-to-dev handoff.

2. Build: Compare While You Code

The build checkpoint is the cheapest place to catch a mismatch, because the developer is already in the file. Keep the frame open next to the browser and check four things before opening the pull request.

3. Pull Request: Screenshots at Three Widths

The pull request checkpoint adds a second pair of eyes and a record. The developer attaches screenshots of the changed pages at 375, 768 and 1280px, and the reviewer compares them to the frame before reading the code.

4. Staging: The Design QA Pass

The staging checkpoint is the full comparison: the approved frame next to the staging build, at three widths, with every category of mismatch checked and every miss filed as an issue. A full pass over one page takes 15 to 30 minutes; a focused pass on the components that changed takes about five.

5. Release: Verify Production, Then Keep Scanning

The release checkpoint catches mismatches that only exist in production: a font that loads late and shifts the layout, an environment variable that changes a theme, a CDN that serves a stale stylesheet. Open the released pages at the same three widths and compare them to staging, not to the frame.

Who Runs Each Checkpoint

Each checkpoint has one owner: the designer at handoff, the developer during the build, the reviewer in the pull request, the designer or QA engineer on staging, and the release owner in production. When two people share a checkpoint, each assumes the other ran it.

CheckpointOwnerTimeCatches
HandoffDesigner, with the developer10 to 15 minutes per ticketMissing states, missing breakpoints, ambiguous frames
BuildDeveloperContinuousTyped values, lookalike components, missing states
Pull requestCode reviewer5 minutes per PRVariant drift, responsive breakage, values that read right and render wrong
StagingDesigner or QA engineer15 to 30 minutes per pageEverything the first three missed, at three widths
ReleaseRelease owner, then a scheduled scan5 minutes, then weeklyProduction-only differences, regressions from later deploys

On a team without QA engineers, the designer who made the frame runs staging and the developer who built the page fixes misses in the same sitting. For the roles question in more depth, see who should own design QA.

How to File a Design Mismatch

A design mismatch report needs six things: the page URL, the viewport width, the element, the expected value from the frame, the actual value from the browser, and a screenshot. With those six a developer can fix it without asking a question.

For the template and the reason behind each field, see bug report template: what developers actually need.

What to Automate at Each Checkpoint

Part of each checkpoint needs a person's judgment. The rest is a comparison a scanner can run on the live page, and running the scan first leaves the person with the judgment calls. OverlayQA runs these scans from the Workflows tab in the Chrome extension, or from Team Review in the dashboard on any public URL with no extension (Components still needs the extension):

CheckpointManual checkOverlayQA workflow
Build and pull request: tokensRead computed colors, spacing, type and radius against the token listDesign Tokens: scan this page for hard-coded colors, spacing, type and radius that should be design tokens
Pull request and staging: wrong component or variantCompare every instance of a component by eyeComponents: scan this page for components styled inconsistently, instances of the same element that drift apart
Staging: states, responsive, contentClick everything and read everything at three widthsAuto Review: design inconsistencies, missing interactive states, form problems, responsive gaps, dead UI and leftover placeholder content
Staging: contrast and target sizeCheck every text color and every tap targetAccessibility Audit: axe-core WCAG checks with violations grouped by severity
Build and staging: values against the frameHold the frame next to the page and inspect element by elementVisual Comparison: compare a Figma frame or an exported image against the live page with opacity and scrub controls, and inspect any element; AI Visual Comparison lists the differences it finds
Release: the next deployRe-run the staging pass after every releaseScheduled scans: a weekly re-scan with a baseline report on enrollment and a delta report after each later run

Every finding becomes an issue with the selector, computed CSS, screenshot, URL, viewport and browser attached, in the same list as the mismatches a person filed, and syncs two ways with Jira, Linear, Notion, Asana and Trello. What stays manual: whether the frame is the right frame, alignment judgment, animation feel, and whether the copy reads right.

Detect design mismatches, accessibility violations and design token drift on any live page with AI analysis, CSS extraction and accessibility auditing. Every issue carries the selector, computed CSS, screenshot and viewport, and exports to Jira, Linear, Notion, Asana or Trello.

Frequently Asked Questions

What is a design mismatch?

A design mismatch is a difference between the approved design and the shipped UI that the design did not intend: spacing, typography, color, radius, a missing component state, the wrong component variant, a responsive layout that breaks at one width, or content that changed after handoff. The UI still works, which is why functional testing and code review let mismatches through.

How do you catch design mismatches before release?

Check the build against the approved frame at five points: handoff (freeze the frame, specify states and breakpoints), build (tokens and computed values against the frame), pull request (screenshots at 375, 768 and 1280px), staging (a full design QA pass with every miss filed as an issue), and release (a production check, then a weekly scheduled scan). Each checkpoint catches the mismatches that enter at that stage.

Who is responsible for catching design mismatches?

One owner per checkpoint: the designer at handoff, the developer during the build, the code reviewer in the pull request, the designer or QA engineer on staging, and the release owner in production. On small teams the designer who made the frame runs the staging pass and the developer who built the page fixes misses in the same sitting.

What is the difference between a design mismatch and a visual bug?

A visual bug is anything that renders wrong, including things no design specified: overlapping text, a broken image, a layout that collapses. A design mismatch is the subset where a design exists and the build differs from it: the right component in the wrong size, color or state. Visual regression testing catches changes from the last screenshot; design QA catches differences from the design. For which bugs each one catches and misses, see design QA vs visual regression testing.

Can design mismatches be detected automatically?

Partly. A scanner can find token substitutions, inconsistent component instances, missing interactive states, responsive gaps, leftover placeholder content and contrast failures on the live page, and can compare a Figma frame or image against the page and list the differences. Whether the frame is the right frame, alignment judgment and animation feel still need a person.