A platform-agnostic drawer layout. Pure JavaScript implementation on iOS and native implementation on Android. Why? Because the drawer layout is a useful component regardless of the platform! And if you can use it without changing any code, that's perfect

Usage no npm install needed!

<script type="module">
  import reactNativeDrawerLayout from '';


react-native-drawer-layout CircleCI styled with prettier

A platform-agnostic drawer layout. It uses a pure JavaScript implementation on every platform to ensure consistency. We try to keep it up to date with the implementation of DrawerLayoutAndroid and add features we consider necessary as well.

Add it to your project

  1. Run npm install react-native-drawer-layout --save
  2. Import the component by using one of these:
  • var DrawerLayout = require('react-native-drawer-layout').default;
  • import DrawerLayout from 'react-native-drawer-layout';
  1. Follow the DrawerLayoutAndroid docs -- the API is the same. Everything that differs is explained below


This includes the differences between our implementation and the official one DrawerLayoutAndroid. Every breaking change is (hopefully) hidden behind a feature flag, so that this implementation may also be used as polyfill.



To run the demo, please run npm install in the DrawerLayoutExample/ directory and start the demo up from there like any other React Native application.


React Native Version     react-native-drawer-layout Version
>= 11 & < 23 < 1.0
>= 23 >= 1.0 && < 2.0
>= 35 >= 2.0

If you experience any further restrictions with other versions, please let us know.


  • Currently, there is no support for setting the status bar color in iOS. If you know any workaround, we would be glad to see an idea or a PR.
  • The overlay to close the drawer has a zIndex of 1000 so setting a higher zIndex somewhere else may lead to inconsistencies.

Release Notes


Breaking changes:

  • This version may only be used with React Native >= 0.25


Breaking changes:


Please make sure to run the tests before proposing a PR by running npm test.