Review visual changes
A visual review is a decision about whether the current interface is correct. The screenshot diff is evidence; it does not decide for you.
1. Open the build
Open a project and choose a build from the branch or merge request you are reviewing. Builds with changes waiting for a decision are marked as needing review.
2. Start with the change list
Use the screenshot list to move through the build. Prioritize:
- Changed screenshots, where the current capture differs from the baseline.
- New screenshots, which need their first approved baseline.
- Removed screenshots, where a previously tracked screenshot disappeared.
Unchanged screenshots need no decision.
3. Understand the comparison
The review workspace lets you switch between the baseline, current capture, and highlighted difference. Use the view that answers the question fastest:
- Is the layout in the right place?
- Did content, copy, or a state change intentionally?
- Is the difference only caused by a dynamic value or test instability?
- Is something missing, clipped, or unexpectedly restyled?
Check the relevant viewport and browser when the project captures more than one.
4. Make a decision
Choose Approve when the change is expected. Choose Reject when the change should not ship; add a comment so the next person knows what needs fixing.
Approval does not update the baseline immediately. Decisions remain editable until the review is finished.
5. Finish the review
When all required screenshots have a decision, choose Finish review. pixmoat then publishes approved screenshots as the new baseline and reports the final result back to CI.
If the build is rejected, fix the implementation and run the tests again. Do not approve a difference only to make the pipeline green.
Common decisions
| What you see | What to do |
|---|---|
| A deliberate redesign or copy change | Approve it after checking the affected viewports. |
| A button, section, or image moved unexpectedly | Reject it and fix the implementation. |
| A timestamp, avatar, or other changing value | Stabilize or mask the test data, then rerun. |
| A first-time screenshot with no baseline | Approve only after confirming the page is correct. |
| A screenshot that should no longer exist | Approve the removal only when deleting it was intentional. |
When a diff looks suspicious
Check the current capture at the same viewport and browser as the baseline. If the change appears inconsistent between runs, look for animations, dynamic data, fonts, or network-dependent content before approving it. The Playwright integration guide includes masking and capture-stability options.