Skip to content

Feature request: allow explicit override of reduced motion behavior #236

@moo-ko

Description

@moo-ko

Hi, sorry for the earlier confusion.

I previously opened an issue because the sheet animation seemed not to work on iPhone, but I later realized that Reduce Motion was enabled on my device, so I closed that report.

After looking into the source, I noticed this part of the implementation:

const shouldReduceMotion = useReducedMotion();
const reduceMotion = Boolean(prefersReducedMotion || shouldReduceMotion);

With this logic, passing prefersReducedMotion={false} does not appear to explicitly disable reduced motion behavior when the OS-level setting is enabled, because shouldReduceMotion is still included in the condition.

So this is not a bug report, but a feature request:

Would it be possible to support an explicit override so consumers can choose one of these behaviors?

  • follow user/device setting
  • always reduce motion
  • never reduce motion

For example, something like this:

const reduceMotion = prefersReducedMotion ?? shouldReduceMotion;

or an API similar to "user" | "always" | "never".

I understand and respect the accessibility reason for following the OS setting by default. I just wanted to ask because there are cases where app-level control would be helpful.

Thank you.

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