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.
Matrix
Section titled “Matrix”“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 |