The true native bottom sheet experience π©
See the codeThe true native bottom sheet experience for your React Native Apps. π©




[!TIP] β¨ v4 is in beta! It rewrites the layout engine β the sheet now lays out synchronously per detent, so the container is sized to the sheet's visible height and tracks it in realtime while dragging.
auto detent with scrollables - The sheet now sizes itself to a ScrollView/FlatList's content heightscrollableRef - Pass a ScrollView/FlatList ref to wire nested scrolling, keyboard insets, and auto detent sizingSheet layout from /navigation/expo-routerTrueSheetOverlay - Render toasts, dialogs, and other overlays above your sheets β no more FullWindowOverlay/Modal workaroundsdimColor and dimOpacitynpx expo install @lodev09/react-native-true-sheet@beta
See the Migration Guide to upgrade. v3 is still supported for React Native 0.81-0.86 (Expo SDK 54-57) and remains the latest release on npm.
[!IMPORTANT] Version 3.0+ requires React Native's New Architecture (Fabric) For the old architecture, use version 2.x. See the Migration Guide for upgrading.
| TrueSheet | React Native | Expo SDK |
|---|---|---|
| 4.0+ | 0.82+ | 55+ |
| 3.7 - 3.11 | 0.81-0.86 | 54-57 |
| 3.6 | 0.80 | 52-53 |
npx expo install @lodev09/react-native-true-sheet
yarn add @lodev09/react-native-true-sheet
cd ios && pod install
These install v3. For v4, append @beta β see π What's New in v4.
import { TrueSheet } from "@lodev09/react-native-true-sheet"
export const App = () => {
const sheet = useRef<TrueSheet>(null)
// Present the sheet β
const present = async () => {
await sheet.current?.present()
console.log('horray! sheet has been presented π©')
}
// Dismiss the sheet β
const dismiss = async () => {
await sheet.current?.dismiss()
console.log('Bye bye π')
}
return (
<View>
<Button onPress={present} title="Present" />
<TrueSheet
ref={sheet}
detents={['auto', 1]}
>
<Button onPress={dismiss} title="Dismiss" />
</TrueSheet>
</View>
)
}
Skills are reusable AI capabilities that give your AI coding agent knowledge about TrueSheet. With the right skill loaded, your agent can pick the right patterns, avoid common mistakes, and generate correct code without you having to explain the library every time.
npx skills add lodev09/react-native-true-sheet
This will install the TrueSheet Usage skill into your project.
Yes it is! Checkout @lugg/maps, a universal maps library for React Native that I'm developing at Lugg.
See the contributing guide to learn how to contribute to the repository and the development workflow.
Made with β€οΈ by @lodev09
3,240 followers Β· starred Apr 2024
4,534 followers Β· starred Apr 2024
115 followers Β· starred Apr 2024
69 followers Β· starred Aug 2025
The true native bottom sheet experience π©
See the codeThe true native bottom sheet experience for your React Native Apps. π©




[!TIP] β¨ v4 is in beta! It rewrites the layout engine β the sheet now lays out synchronously per detent, so the container is sized to the sheet's visible height and tracks it in realtime while dragging.
auto detent with scrollables - The sheet now sizes itself to a ScrollView/FlatList's content heightscrollableRef - Pass a ScrollView/FlatList ref to wire nested scrolling, keyboard insets, and auto detent sizingSheet layout from /navigation/expo-routerTrueSheetOverlay - Render toasts, dialogs, and other overlays above your sheets β no more FullWindowOverlay/Modal workaroundsdimColor and dimOpacitynpx expo install @lodev09/react-native-true-sheet@beta
See the Migration Guide to upgrade. v3 is still supported for React Native 0.81-0.86 (Expo SDK 54-57) and remains the latest release on npm.
[!IMPORTANT] Version 3.0+ requires React Native's New Architecture (Fabric) For the old architecture, use version 2.x. See the Migration Guide for upgrading.
| TrueSheet | React Native | Expo SDK |
|---|---|---|
| 4.0+ | 0.82+ | 55+ |
| 3.7 - 3.11 | 0.81-0.86 | 54-57 |
| 3.6 | 0.80 | 52-53 |
npx expo install @lodev09/react-native-true-sheet
yarn add @lodev09/react-native-true-sheet
cd ios && pod install
These install v3. For v4, append @beta β see π What's New in v4.
import { TrueSheet } from "@lodev09/react-native-true-sheet"
export const App = () => {
const sheet = useRef<TrueSheet>(null)
// Present the sheet β
const present = async () => {
await sheet.current?.present()
console.log('horray! sheet has been presented π©')
}
// Dismiss the sheet β
const dismiss = async () => {
await sheet.current?.dismiss()
console.log('Bye bye π')
}
return (
<View>
<Button onPress={present} title="Present" />
<TrueSheet
ref={sheet}
detents={['auto', 1]}
>
<Button onPress={dismiss} title="Dismiss" />
</TrueSheet>
</View>
)
}
Skills are reusable AI capabilities that give your AI coding agent knowledge about TrueSheet. With the right skill loaded, your agent can pick the right patterns, avoid common mistakes, and generate correct code without you having to explain the library every time.
npx skills add lodev09/react-native-true-sheet
This will install the TrueSheet Usage skill into your project.
Yes it is! Checkout @lugg/maps, a universal maps library for React Native that I'm developing at Lugg.
See the contributing guide to learn how to contribute to the repository and the development workflow.
Made with β€οΈ by @lodev09
3,240 followers Β· starred Apr 2024
4,534 followers Β· starred Apr 2024
115 followers Β· starred Apr 2024
69 followers Β· starred Aug 2025