awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
gorhom avatar

gorhom/react-native-bottom-sheet

0
View on GitHub↗
9,003 stars·950 forks·TypeScript·MIT·14 viewsgorhom.dev/react-native-bottom-sheet↗

React Native Bottom Sheet

This is a bottom sheet component library for React Native that provides gesture-driven panels sliding up from the bottom of the screen. The library is built around configurable snap points, dynamic sizing, keyboard awareness, modal presentation, and synchronized scrolling, with native driver animation offloaded to the native thread for smooth performance.

The library distinguishes itself through deep gesture and animation control, including custom gesture handler overrides, scroll-gesture synchronization, and dynamic snap point recalculation when content size or keyboard visibility changes. It supports modal presentation wrappers with stack navigation integration, portal-based overlay rendering outside the parent component tree, and cross-platform compatibility including web mobile rendering without code changes. The dismissal system offers drag-to-dismiss with configurable thresholds and forced close animations, while the animation system supports spring and timing curves with accessibility-aware motion overrides.

The component handles keyboard events automatically, adjusting sheet position to keep input fields visible on both iOS and Android. It integrates with React Navigation for presenting sheets as navigable screens or modals, and supports embedding stack navigators within the sheet for multi-screen flows. Scrollable content integration synchronizes virtualized lists with sheet pan gestures, including over-drag behavior at scroll boundaries and pull-to-refresh on scrollable content inside the sheet. Snap points can be managed dynamically, with programmatic control through exposed methods and animated values, and the sheet can auto-size to content height without requiring fixed snap points. Visual customization covers the sheet background, handle, backdrop, footer, and animated UI elements like tab bars and onboarding sliders.

Features

  • Bottom Sheets - Provides a draggable, gesture-driven bottom sheet component with configurable snap points and smooth animations.
  • Gesture-Driven Snap Animations - Implements gesture-driven snap animations between predefined vertical positions with velocity thresholds.
  • Sheet Gesture Controls - Implements touch-based drag gestures to control sheet position, snapping, and dismissal.
  • Bottom Sheet Screen Presentations - Presents bottom sheets as navigable screens in a React Navigation stack.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
  • Bottom Sheet Screen Presentations - Integrates bottom sheets as standard screens or modals in React Navigation.
  • Bottom Sheet Scroll Integrations - Supports native scrolling for FlatList, SectionList, ScrollView, and views in the sheet.
  • Bottom Sheet Content Resizers - Automatically adjusts the bottom sheet height to fit the dynamic size of its content.
  • Bottom Sheet Content Resizers - Automatically adjusts the bottom sheet height to fit its dynamic content size.
  • Dynamic Sizing - Automatically resizes bottom sheets to match content height without requiring fixed snap points.
  • Dynamic Snap Point - Automatically resizes to content height and handles changing snap points after mounting.
  • Gesture-Driven - Supports drag-to-dismiss, pull-to-refresh, and synchronized scrolling with virtualized lists inside the sheet.
  • Keyboard-Aware - Moves the sheet and its content to prevent keyboard overlap.
  • Keyboard-Aware Behavior - Automatically adjusts bottom sheet position when the on-screen keyboard appears or changes height.
  • Modal - Presents the bottom sheet as a modal overlay with stack navigation support and keyboard-aware positioning.
  • Modal Presentations - Wraps bottom sheets with modal presentation for a native feel.
  • Navigation Integrations - Coordinates sheet open/close state with React Navigation stacks or navigators.
  • Scroll-Synchronized - Creates scrollable components that synchronize with the sheet's gesture-driven interactions.
  • Scrollable Content Integrations - Supports scrolling inside FlatList, SectionList, ScrollView, and View within the sheet.
  • Virtualized Lists - Renders virtualized lists inside a bottom sheet that respond to the sheet's drag gestures.
  • Portal Renderers - Renders sheet and backdrop outside the parent component tree using portal-based rendering.
  • Drag Dismissal Configurations - Closes the sheet when users drag it downward past a configurable threshold.
  • Gesture Handler Overrides - Ships a custom gesture handler override system for advanced bottom sheet interaction control.
  • Scroll-Gesture Synchronizations - Synchronizes scrollable content gestures with sheet pan gestures to prevent interaction conflicts.
  • Keyboard-Relative Positioning - Adjusts sheet vertical offset automatically when the keyboard appears or changes height.
  • Bottom Sheet Modal Presentations - Opens bottom sheets as full-screen modals blocking background interaction.
  • Modal Sheet Presentations - Displays bottom sheets as modal overlays that block background interaction and support dismissal gestures.
  • Modal Sheet Wrappers - Wraps bottom sheets in modal containers that block background interaction and support navigation stacks.
  • Native Animation Drivers - Offloads gesture and animation computations to the native thread for 60FPS performance.
  • Bottom Sheet Modal Presentations - Displays bottom sheets as modal overlays dismissible by dragging or tapping.
  • Bottom Sheet Content Resizers - Automatically adjusts the bottom sheet height to fit content while respecting a maximum size.
  • Sheet Scrollable Content - Embeds scrollable lists and views inside a bottom sheet with synchronized gesture handling.
  • Snap Points - Moves the bottom sheet between predefined vertical positions with smooth gesture-driven snapping animations.
  • Dynamic Snap Point Managers - Handles snap points that change dynamically after the bottom sheet is mounted.
  • Dynamic Snap Point Recalculations - Provides dynamic snap point recalculation when content size or keyboard visibility changes.
  • Gesture-Driven Snap Animations - Moves the sheet between predefined vertical positions with smooth gesture-driven transitions.
  • Bottom Sheet Content Resizers - Automatically resizes the bottom sheet height to match its content without requiring fixed snap points.
  • Pan Down to Close - Closes the sheet with a single downward pan gesture.
  • Accessibility Motion Overrides - Disables or forces sheet animations based on the device's reduce-motion accessibility setting.
  • Keyboard Occlusion Prevention - Automatically adjusts sheet position to prevent keyboard occlusion.
  • Keyboard-Aware Text Inputs - Provides a text input that adjusts the sheet position when the keyboard appears.
  • Keyboard Management - Shifts sheet content above the keyboard without manual offset calculations.
  • Keyboard Event Response Configurations - Configures bottom sheet behavior in response to keyboard events via props.
  • Animation Configuration - Applies spring or timing animation curves to sheet movements for tailored motion.
  • Programmatic Controls - Exposes methods and animated values for direct programmatic control of the sheet.
  • Stack Navigator Embeddings - Embeds a stack navigator inside a bottom sheet for multi-screen flows.
  • Virtualized List Integrations - Renders a performant virtualized list component that works seamlessly inside the sheet.
  • Isolated - Provides drag handles that move the sheet without scrolling content inside.
  • Cross-Platform Keyboard Event Trackers - Tracks keyboard events on iOS and Android to adjust sheet position.
  • Pull-to-Refresh Components - Enables standard pull-to-refresh gesture on scrollable content inside the sheet.
  • Pull-to-Refresh Inside Sheets - Triggers a refresh action when users pull down on scrollable content inside the sheet.
  • Over-Drag - Over-drags the sheet even when a scrollable view is at its boundary.
  • Custom Position Snappers - Moves the bottom sheet to a custom vertical position that may not be one of the predefined snap points.
  • Snap Point Index Navigators - Provides programmatic control to collapse the bottom sheet to its minimum height snap point.
  • Force Close Animations - Provides a forced close animation that completes without interruption.
  • Cross-Platform Rendering - Renders bottom sheets on web mobile platforms using the same API without code changes.
  • Gesture Handler Overrides - Ships gesture handler overrides for custom pan and scroll interactions.
  • Star history

    Star history chart for gorhom/react-native-bottom-sheetStar history chart for gorhom/react-native-bottom-sheet

    Frequently asked questions

    What does gorhom/react-native-bottom-sheet do?

    This is a bottom sheet component library for React Native that provides gesture-driven panels sliding up from the bottom of the screen. The library is built around configurable snap points, dynamic sizing, keyboard awareness, modal presentation, and synchronized scrolling, with native driver animation offloaded to the native thread for smooth performance.

    What are the main features of gorhom/react-native-bottom-sheet?

    The main features of gorhom/react-native-bottom-sheet are: Bottom Sheets, Gesture-Driven Snap Animations, Sheet Gesture Controls, Bottom Sheet Screen Presentations, Bottom Sheet Scroll Integrations, Bottom Sheet Content Resizers, Dynamic Sizing, Dynamic Snap Point.

    What are some open-source alternatives to gorhom/react-native-bottom-sheet?

    Open-source alternatives to gorhom/react-native-bottom-sheet include: osdnk/react-native-reanimated-bottom-sheet — React Native Reanimated Bottom Sheet is a cross-platform mobile component library that provides a gesture-driven… nysamnang/react-native-raw-bottom-sheet — React Native Raw Bottom Sheet is a cross-platform mobile UI component that renders custom sliding modal panels and… emilkowalski/vaul — Vaul is a React drawer component used to create accessible, draggable bottom sheets and slide-up panels. It serves as… slackhq/panmodal — PanModal is an iOS UI library used to create draggable bottom sheet modals that slide up from the bottom of the… jamesblasco/modal_bottom_sheet — Modal bottom sheet is a cross-platform mobile UI framework plugin for Flutter that renders advanced modal bottom… flipboard/bottomsheet — This is an Android bottom sheet component and modal interface designed to provide a dismissible sliding panel that…

    Open-source alternatives to React Native Bottom Sheet

    Similar open-source projects, ranked by how many features they share with React Native Bottom Sheet.
    • osdnk/react-native-reanimated-bottom-sheetosdnk avatar

      osdnk/react-native-reanimated-bottom-sheet

      3,342View on GitHub↗

      React Native Reanimated Bottom Sheet is a cross-platform mobile component library that provides a gesture-driven sliding bottom sheet component for iOS and Android applications. The component renders panels anchored to the bottom of the screen, allowing users to drag and snap them to predefined heights. The library supports touch tracking and drag behaviors across custom headers, content areas, and inner scrollable elements. Panel configuration covers height layout rules using pixel values and percentages, custom border radiuses, snap points, initial states, and imperative controller referenc

      TypeScript
      View on GitHub↗3,342
    • nysamnang/react-native-raw-bottom-sheetnysamnang avatar

      nysamnang/react-native-raw-bottom-sheet

      1,204View on GitHub↗

      React Native Raw Bottom Sheet is a cross-platform mobile UI component that renders custom sliding modal panels and action menus rising from the bottom of the screen. It provides a native application interface overlay designed for mobile app development to display custom content, menus, and forms. The component supports customizable sheet behavior, allowing developers to configure animation durations, custom dimensions, and visual styling for the root backdrop, container view, and draggable handles. Dismissal and interaction mechanics include backdrop mask interception, downward drag gestures,

      JavaScriptaction-sheetbottom-animatedbottom-drawer
      View on GitHub↗1,204
  • emilkowalski/vaulemilkowalski avatar

    emilkowalski/vaul

    8,426View on GitHub↗

    Vaul is a React drawer component used to create accessible, draggable bottom sheets and slide-up panels. It serves as a mobile-friendly alternative to traditional dialogs and modals by rendering content into a separate DOM node via a portal to avoid layout nesting issues. The library features configurable snap points that allow panels to lock into specific vertical heights during drag gestures. It supports hierarchical UI layering, enabling the use of nested drawers for complex navigation or multi-level menus. The component includes an accessibility layer with ARIA announcements and focus ma

    TypeScriptdialogdrawerreact
    View on GitHub↗8,426
  • slackhq/panmodalslackhq avatar

    slackhq/PanModal

    3,781View on GitHub↗

    PanModal is an iOS UI library used to create draggable bottom sheet modals that slide up from the bottom of the screen. It provides a programmatic interface for managing the layout, height, and state of these overlay panels, allowing content to be presented over a main view without navigating away from the current screen. The library includes a pan gesture coordinator that synchronizes touch movements between the draggable container and internal scrollable content. This ensures that sliding the modal and scrolling within its content do not conflict. The framework covers custom presentation l

    Swift
    View on GitHub↗3,781
  • See all 30 alternatives to React Native Bottom Sheet→