note · swiftui · animation · design
Matched Geometry Accessibility Checklist
Context
Matched geometry can make a transition feel elegant and spatially continuous. It can also become confusing if the user cannot tell what moved, where it went, or whether the motion respects their settings. This checklist keeps the effect grounded.
The snippet
@Environment(\.accessibilityReduceMotion) private var reduceMotion
let animation: Animation = reduceMotion ? .default : .spring(response: 0.35, dampingFraction: 0.85)
Why this works
The animation choice is now tied to the user’s preference. That lets the screen keep the same relationship between source and destination while making the motion gentler when needed. It also keeps the code honest: the fallback is explicit instead of hidden in a generic animation modifier.
Use this checklist:
- verify the source and destination are visually related
- confirm the moving element still makes sense at half speed or no motion
- test with Reduce Motion enabled
- keep text readable during the transition
- avoid animating unrelated layout changes at the same time
Use it when…
- a card becomes a detail view
- a thumbnail expands into a larger hero area
- users need to track what moved from one screen to the next
Avoid it when…
- the source and destination are not clearly the same object
- the effect is decorative rather than informative
- the transition already feels calm without special motion work
Takeaway: Matched geometry should clarify continuity, not just show off motion.