v0.1 public beta early access on GitHub
Home / Components / bottom-sheet

Bottom SheetiOS

Gesture-driven bottom sheet with snap points, swipe-to-dismiss, drag handle and position-interpolated backdrop

$ npx lumioui add bottom-sheet
import { BottomSheet, BottomSheetContent } from "@/components/ui/bottom-sheet/bottom-sheet";
Parts: BottomSheetContent
Props10
BottomSheet
open boolean Controlled open state.
onOpenChange (open: boolean) => void
snapPoints? number[] Snap point heights in px, ascending. Sheet opens at the first point. Default: [320].
defaultSnap? number Index into `snapPoints` (sorted ascending) where the sheet opens. Default 0 — the lowest point.
onSnapChange? (index: number) => void Called with the snap-point index when a drag settles on a different snap point.
dragHandleOnly? boolean Restrict drag-to-dismiss to the grabber handle so sheet content keeps its own gestures (scrolling, sliders). Default true; set false to let the whole surface drag.
enableDismiss? boolean Allow swipe-down past the lowest snap point to dismiss. Default: true.
keyboardAware? boolean Wrap content in a KeyboardAvoidingView. Default: true (inputs stay visible).
children? React.ReactNode
BottomSheetContent
className? string
Bottom Sheetbottom-sheet.tsx
bottom-sheet/bottom-sheet.tsx open

Gesture-driven bottom sheet with snap points, swipe-to-dismiss, drag handle and position-interpolated backdrop