Hi ! when the system Reduce Motion accessibility s...
# compose-ios
a
Hi ! when the system Reduce Motion accessibility setting is enabled, every duration-based animation snaps instantly instead of animating: - Navigation 3 screen transitions (NavDisplay) hard cut instead of a slide. - ModalBottomSheet show/hide (both Material3 and composables.core) the sheet just appears instead of arriving. The cause seems to be androidx.compose.ui.platform.MotionDurationScaleImpl.scaleFactor returning 0 (it reads UIAccessibilityIsReduceMotionEnabled()), which zeroes the duration of all animations. The result feels broken compared to native iOS, where Reduce Motion doesn’t hard-cut… Is this a known issue, and is there a recommended way to handle it on iOS? Thanks! 🙏
Gentle bump 🙏 For the context on why this matters for me: we’re an app studio already shipping a CMP app in production, and we’re now deciding whether to standardize our whole stack on it. This is a blocker for that decision (our CEO uses Reduce Motion daily, so “every animation hard-cuts” is his first impression). Also it’s not just us. The KotlinConf app (also CMP) does the same hard-cut, while RN / Flutter feel softer like native iOS instead of cutting. Sorry to insist, this bug really landed on the worst possible person on our side 😅
c
Did you create a ticket in the issue tracker?
• This Slack is not an official support channel. It is a place where the community hangs out along with some members of the JetBrains and Kotlin team (suffix [JetBrains]).
https://kotlinlang.org/docs/slack-code-of-conduct.html#basic-usage-guidelines
a
Thanks for the heads-up, and sorry for posting it here! Not yet. I’ll file it in the issue tracker today :)
✌🏻 1
a
It's expected that the "Reduce Motion" setting will... well reduce animations. I would be very appreciate if you could file a ticket that compares behavioral for identical/close components between the iOS and Compose Multiplatform.
a
To be precise: it’s not that it reduces the animations, it fully snaps them, the transition jumps straight to the end state, zero interpolation. I’ll record a side by side video of the same component 👍 And add it to the ticket : https://youtrack.jetbrains.com/issue/CMP-10284/iOS-Reduce-Motion-hard-cuts-animations-NavDisplay-transitions-ModalBottomSheet-instead-of-reducing-them