Bottom sheet
Bottom sheet for an Expo app, compared: True Sheet, or none - Expo Go support and what each option installs.
Hey - here's how bottom sheets work in ReadyNative.
This category owns a native bottom sheet: a panel that slides up from the bottom edge with snap
points (detents), a grabber and swipe-to-dismiss, drawn by the platform. Nothing in the core
tree imports a sheet library, so the none option has no shim to keep in step: screens that open
a sheet import it from their own module.
Pick True Sheet when a screen needs a real native sheet: auto detents that fit the content,
fixed heights such as 0.5 or 1, a grabber, and built-in keyboard handling. It is a native
module (@lodev09/react-native-true-sheet) and needs a dev build - Expo Go can't load it. Pick
none when a plain sheet is enough: the @/ui Sheet (an @expo/ui BottomSheet) runs in
Expo Go, and nothing else in the tree depends on the native sheet.
minimal and default pick none, saas picks True Sheet. Both options are in Starter and Pro.
Options
One option per category - --sheet <option> picks it:
bun run setup --sheet true-sheet| Option | Label | Expo Go | Hint |
|---|---|---|---|
true-sheet | True Sheet (default) | no - dev build required | native iOS and Android bottom sheets with snap points · dev build required (no Expo Go) |
none | No bottom sheet | yes | no native sheet library; @/ui Sheet (@expo/ui) still works in Expo Go |
No consent sheet
The "No consent sheet" option of the ReadyNative Expo template: consent.get() reads all-true; analytics and crash SDKs start as before.
True Sheet
Set up True Sheet for bottom sheet in an Expo app with ReadyNative: native iOS and Android bottom sheets with snap points · dev build required (no Expo Go)