Skip to content

Compare

This section compares this project with other visual testing tools. Each tool has its own page: what it is, what it does better, what this project does better, and when to choose it.

Every claim about another tool comes from that tool’s documentation, with a link and the date we read it. The tools change, so check the linked page before you decide. If a claim is out of date, open an issue.

“This project” means vitest-plugin-vis and storybook-addon-vis, which share one engine. “Not documented” means the tool’s documentation page that we read does not mention the feature. Each tool name links to its page, where the claims are cited.

Tool Runs in Automatic snapshots Per-theme snapshots Comparison Thresholds Masking Animations Review UI Baselines Cost
This project Vitest Browser Mode, Storybook Yes Yes pixel, ssim Yes mask takes selectors, locators or elements, with both providers animations: 'disabled' finishes or cancels CSS animations, default 'allow' Vis panel in Storybook Local files Open source
Vitest visual regression Vitest Browser Mode Not documented Not documented pixelmatch, custom comparators Yes screenshotOptions.mask, with the Playwright provider animations defaults to "disabled", with the Playwright provider A/B slider in Vitest UI mode Local files Not stated
Playwright Playwright Test Not documented Not documented pixelmatch threshold, maxDiffPixels, maxDiffPixelRatio mask takes locators animations defaults to "disabled" Not documented Local files Not stated
Chromatic Cloud browsers Not documented Through Storybook globals Not documented Not documented Not documented SteadySnap freezes dynamic content Hosted review Not stated Free plan with 5,000 billed snapshots a month, paid plans from $179 a month
Lost Pixel Its own runner, against Storybook, Ladle, Histoire or pages Not documented Not documented pixelmatch or odiff threshold mask with a CSS selector Not documented mask with a CSS selector Not documented mask with a CSS selector
Storybook test-runner Jest and Playwright, against a running Storybook Through your own postVisit hook Not documented Not documented Not documented Not documented Not documented Not documented Local files Not stated