Visual overview
Use the workflow to follow the task, and the architecture map to separate responsibilities. These are conceptual maps; the guide below defines implementation details and verification limits.
- Define a visual acceptance check
- Capture the current screen
- Compare against the design
- Fix and recapture within budget
- Boundary 1Design target
- Boundary 2Runtime screenshot
- Boundary 3Review and repair
Connected responsibilities, not a required class hierarchy or an execution trace.
Context
Use this when the user asks for a screen to look premium, polished, more native, more accessible, more animated, or closer to a reference. Static Swift review can find many issues, but visual quality needs a loop that sees the app running.
The workflow is:
Design -> Build -> See -> Improve
Pattern
- Design: route to
ui-ux-designer,motion-designer,3d-experience-designer, oraccessibility-reviewerdepending on the requested surface. - Build: compile with Xcode and run the narrowest test target available.
- See: launch the app in the simulator, capture screenshots or video, and inspect the accessibility tree.
- Review: compare the artifact against the request, platform conventions, Dynamic Type, contrast, spacing, reduced motion, and tap targets.
- Improve: patch the SwiftUI/UIKit/RealityKit/Metal code and repeat until the stop condition is met.
Stop Conditions
Declare the stop condition before the first edit. Good examples:
GOAL: Checkout screen matches the provided reference while keeping native iOS controls.
CHECK: Build passes, home-to-checkout flow launches, screenshots captured at compact and large text sizes.
MAX: 3 visual passes.
ON-STALL: Return the best screenshot and the remaining issues.
Visual Review Checklist
| Area | Questions |
|---|---|
| Hierarchy | Is the primary action obvious within two seconds? Does visual weight match importance? |
| Spacing | Are margins, gutters, and component gaps consistent with tokens? |
| Typography | Does the screen use Dynamic Type and avoid fixed font sizes? |
| Color | Does contrast pass, and do semantic roles survive dark mode? |
| Motion | Does animation clarify state, avoid fighting layout, and honor Reduce Motion? |
| Haptics | Are haptics tied to meaningful state transitions, not decoration? |
| Accessibility | Are labels, traits, focus order, tap targets, and content size tested? |
| Runtime | Does the captured screenshot/video prove the actual app state? |
Artifact Naming
Use stable paths so iterations can be compared:
artifacts/visual/home-pass-01-compact.png
artifacts/visual/home-pass-01-accessibility-xxl.png
artifacts/visual/home-pass-02-compact.png
artifacts/visual/home-pass-02.mov
When visual diffing is added, compare the same route, device, appearance, locale, and content-size category. A screenshot from a different simulator configuration is not a clean comparison.
Anti-Patterns
// WRONG: "I made it premium" after editing SwiftUI.
Why: visual quality was not observed.
// RIGHT: build, launch, capture, review, then report with artifacts.
// WRONG: animate every entrance and every state change.
Why: excessive motion makes the app feel slower and can violate Reduce Motion.
// RIGHT: animate hierarchy changes, confirmations, and spatial continuity.
// WRONG: judge accessibility from a screenshot only.
Why: labels, traits, focus order, and hit targets are semantic/runtime facts.
// RIGHT: pair screenshot review with accessibility-tree inspection and Dynamic Type captures.