Fluid Transitions for React Navigation
Alternatives To Fluidtransitions
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
362 years ago21October 10, 202140mitObjective-C
A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations. And you don't need to write any line of code for it, it all happens automatically.
Fluidtransitions2,7784022 years ago25April 30, 201975mitJavaScript
Fluid Transitions for React Navigation
Guillotinemenu Android2,716
5 years ago7Java
Neat library, that provides a simple way to implement guillotine-styled animation
React Awesome Slider2,60142136 months ago45February 21, 202076mitJavaScript
React content transition slider. Awesome Slider is a 60fps, light weight, performant component that renders an animated set of production ready UI general purpose sliders with fullpage transition support for NextJS and GatsbyJS. 🖥️ 📱
16 days ago3July 20, 202116otherKotlin
🚦 Cicerone is a lightweight library that makes the navigation in an Android app easy.
3 years ago25otherJavaScript
layerJS: Javascript UI composition framework
54 months ago6December 29, 202010otherHTML
Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.
React Navigation Shared Element1,181322 months ago17September 01, 202185mitTypeScript
React Navigation bindings for react-native-shared-element 💫
11 days ago18April 30, 202239mitKotlin
🛸 A pragmatic navigation library for Jetpack Compose
Scoop1,049214 years ago24November 18, 201614apache-2.0Java
:icecream: micro framework for building view based modular Android applications.
Alternatives To Fluidtransitions
Select To Compare

Alternative Project Comparisons

Fluid Transitions for React Navigation


This project aims to implement a simple yet powerful set of constructs for building fluid transitions between elements when navigating with React Navigation.

The library is JavaScript only - no linking required.


The library implements a new navigator component called FluidNavigator with the same interface and routing configuration as the StackNavigator. The library has a component called Transition which can be used to build different types of transitions that will automatically be run when navigating between screens using the regular navigation actions.

The Navigator's API is identical to the StackNavigator except that it does not support a header component. It can easily be integrated with redux and your existing navigation setups.

Medium article
React Native Animation Challenge #1


To install the library into your project, run yarn or npm:

yarn add react-navigation-fluid-transitions


npm i -S react-navigation-fluid-transitions

Note on versions: [email protected] is compatible with [email protected], while [email protected] is compatible with [email protected]. Future improvements and development will be on [email protected].


Examples are included in the project and should be runnable from the root of the project folder.

To start the example run the following commands from the terminal:

npm i or yarn

To start the project run

react-native run-ios or react-native run-android

Shared Element Transitions

This example shows how two elements can be set up to automatically transition between each other when navigating between screens. A more detailed edition of this example can be found in the file SharedElements.js.

Note that a shared transition happens between two elements that looks the same. The library animates position and scale between the two hence using different styles and content between the two elements will result in strange transitions.

const Screen1 = (props) => (
  <View style={styles.container}>
    <Text>Screen 1</Text>
    <View style={styles.screen1}>
      <Transition shared='circle'>
        <View style={styles.circle}/>
      onPress={() => props.navigation.navigate('screen2')}

const Screen2 = (props) => (
  <View style={styles.container}>
    <Text>Screen 2</Text>
    <View style={styles.screen2}>
      <Transition shared='circle'>
        <View style={styles.circle2}/>
      onPress={() => props.navigation.goBack()}

const Navigator = FluidNavigator({
  screen1: { screen: Screen1 },
  screen2: { screen: Screen2 },


The library also supports transitions for elements wrapped in the Transition component. You can provide appear/disappear transitions that will be animated during navigation.

The Transition element supports appear and disappear transitions (appear will be used if disappear is not set), and these can either be one of the predefined transitions - or functions where you provide your own transitions.

<Transition appear='scale' disappear='bottom'>
  <View style={styles.circle}/>

Transition Types

Name Description
scale Scales the element in and out
top Translates the element in/out from the top of the screen
bottom Translates the element in/out from the bottom of the screen
left Translates the element in/out from the left of the screen
right Translates the element in/out from the right of the screen
horizontal Translates the element in/out from the left/right of the screen
vertical Translates the element in/out from the top/bottom of the screen
flip Flips the element in/out

Custom transitions

It is easy to provide custom transitions - just add the transition function to your component's appear or disappear property. The following example creates a transition that will scale in from 88 times the original size of the wrapped component:

<Transition appear={myCustomTransitionFunction}>
  <View style={styles.circle}/>

myCustomTransitionFunction = (transitionInfo) => {
  const { progress, start, end } = transitionInfo;
  const scaleInterpolation = progress.interpolate({
    inputRange: [0, start, end, 1],
    outputRange: [88, 80, 1, 1],
  return { transform: [{ scale: scaleInterpolation }] };

Read more about the parameters and functionality for building custom transitions.





Some of the concepts in the library builds on ideas from @lintonye's pull request and suggestion found here: Shared element transition #941.


Christian Falch (@chrfalch), Yuuki Arisawa (@uk-ar), Joe Goodall (@joegoodall1), sonaye, David Chavez, muhaimincs, KingTayTay, pedrobullo, Nathan James, Filip Engberg, DadImScared, fabriziogiordano, kelset, rewieer, Dan Alloway, Alexander Zizzo, Monica He, Avi Patel, Julian Hundeloh, Luong Dang Hai, Peter Henderson


Fram X - a cross platform app company from Norway.

Popular Navigation Projects
Popular Transition Projects
Popular User Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
React Navigation
Custom Transitions