Skip to content

Honor OS reduced-motion: collapse nav transitions to instant cuts #113

Description

@GenericJam

Neither platform layer checks the OS reduced-motion preference: grep finds no accessibilityReduceMotion (iOS) or animator-duration-scale/remove-animations handling (Android template) anywhere. All nav transitions (:push/:pop/:reset) animate regardless.

Proposed: gate at the native layer, not the BEAM — when iOS UIAccessibility.isReduceMotionEnabled or Android's animation-removal setting (Settings.Global.ANIMATOR_DURATION_SCALE == 0) is active, render every nav transition as :none while leaving the app's declared transitions untouched. That keeps app code motion-agnostic and matches how the web side handles it (useReducedMotion gating on every animation). Small, self-contained: one condition in iOS navTransition/navAnimation, one in the template's AnimatedContent transitionSpec.

Context: surfaced while choosing tab-switch transitions for a downstream app; :reset already provides a 250ms cross-fade on both platforms, so transition VARIETY is covered — respecting the user's motion preference is the remaining gap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions