Skip to content
TrademarkTrademark
Docs
Components

Drawer

Updated: October 20, 2026
View on GitHub
Soon
Not released yet. The published package does not include this yet, so it will not install today.

Drawer takes the same props as on the web (open, onClose, side, size, title, description, footer, showClose, closeOnClickaway, flush). It slides in from one edge and floats a step in from it, clear of the notch and the home indicator. Use it for an app's menu, a set of filters or a record's details; for a short task, a Dialog bottom sheet fits better. See the web Drawer for the same component in the browser.

A left drawer with an app's navigation over a bookings screen

Basic usage

The drawer is always controlled: keep open in state and close it in onClose. The close button, the Android back button and a tap on the backdrop all call onClose.

Side and size

side is the edge it slides from: right (the default), left, top or bottom. size is the width of a left or right drawer and the most a top or bottom one grows to: s 20rem, m 28rem, l 40rem, never wider than the screen less the inset. full covers the screen, less the inset.

Flush

flush drops the header and the padding, so the content reaches the edges, for media or a list. The close button floats in the corner; showClose={false} hides it.

Differences from the web

  • Focus props (initialFocusRef, returnFocusRef) are left out: React Native moves the screen reader into the drawer on its own.
  • It slides in over 240ms, and appears at once when the device's reduce-motion setting is on.
  • The Android back button closes it.

API reference

Prop
Type
Default
Description
openbooleanShows the drawer. Required.
onClose() => voidCalled by the close button, the back button and a tap on the backdrop. Required.
side"left" | "right" | "top" | "bottom""right"The edge it slides in from.
size"s" | "m" | "l" | "full""m"Width (left, right) or most height (top, bottom).
titleReactNodeThe heading.
descriptionReactNodeA line under the title.
footerReactNodeActions pinned under the scrolling content.
showClosebooleantrueShows the close button.
closeOnClickawaybooleantrueA tap on the backdrop closes it.
flushbooleanfalseNo header and no padding.
aria-labelstringThe name a screen reader announces when there is no title.
styleViewStyleStyle for the panel.
Edit this page on GitHub