Web Support
Moti works on all platforms, including web. Make sure you've installed react-native-web
and done anything you need to get that working.
#
Expo Web supportThe following applies to React Native Web apps that do not use Next.js.
Since Moti uses Reanimated 2, we need its Babel plugin to be applied to Moti. Since Expo Web doesn't transpile modules by default, we'll need to tell it to transpile Moti.
First, install @expo/webpack-config
to your devDependencies
:
- npm
- Yarn
Next, create a custom webpack.config.js
in the root of your Expo app, and paste the contents below:
webpack.config.js
Your app will now run with Expo Web!
#
Known issues#
Spring animationsBy default, moti
uses type: 'spring'
for animations.
However, Reanimated 2's spring animations are currently glitchy on web.
#
Current workaround options (select one):- Use
react-native-web
between versions (0.15.2
through0.15.6
) for a temporary patch and the defaulttype: spring
will work on web. - Alternatively if you want to use springs, I recommend setting
overshootClamping: false
. This seems to solve it on web:
Thanks to pranshuchittora for discovering this workaround.
- Another solution is to use
timing
transitions instead of the defaultspring
.
You can configure your animation settings using the transition
prop of any Moti component.
- For using
react-native-web
> 0.15.6, check the status on an upcoming release that includes this pull request regarding Reanimated setNativeProps. It should be solved oncereact-native-web
resolves issue #1935.