Learn · Comparison
Verification vs linting vs regression
Three adjacent practices, three different questions.
Design linting, visual regression, and design verification are often grouped together as “design quality tooling.” They answer different questions, take different inputs, and fail in different places. This article is the side-by-side.
The three questions
Design linting
Question Does the source use the tokens?
Input Source files: CSS, TS, JSX
Output Warnings, fixes, inline suggestions
Scope Token misuse, magic numbers, raw hex
Where it fails alone It cannot see what shipped. A linter that passes in CI does not protect the visitor who receives a different CSS bundle than the one linted.
Visual regression
Question Did the pixels change?
Input Screenshots, before and after
Output Pixel diffs, masked regions, flake flags
Scope Layout drift, unexpected reflow, removed elements
Where it fails alone It needs a baseline to diff against. New work has no baseline, and a pixel-perfect diff can mask a contract violation that happens to look the same.
Design verification
Question Does the live site keep the contract?
Input A live URL: the HTML and CSS its server sends
Output A letter grade and per-check findings
Scope Tokens, rules, behavior, and verification: all four contract layers
Where it fails alone It cannot inspect what it cannot fetch. Pages behind auth, paywalls, or bot challenges are scored on what the verifier can receive.
Why they layer
The argument
Linting catches token drift at authoring time. Regression catches pixel drift at shipping time. Verification catches contract drift at visitor time. Each one fails where the others succeed, which is why mature teams run all three. Verification needs only a URL and a published contract, so it can score a site you do not control.
Linting needs the source, and regression needs a baseline captured earlier. A visitor, a reviewer, a procurement team, or a design system author evaluating someone else’s site usually has only the URL. Of the three practices, verification is the one that takes a URL alone and returns a grade.