All Projects β†’ nomi9995 β†’ React Native Bottomsheet Reanimated

nomi9995 / React Native Bottomsheet Reanimated

Licence: mit
React Native bottom sheet with fully native 60 FPS animations and awesome user experience

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Native Bottomsheet Reanimated

React Native Bottom Sheet
A performant interactive bottom sheet with fully configurable options πŸš€
Stars: ✭ 2,695 (+3268.75%)
Mutual labels:  modal, bottomsheet, bottom-sheet
react-spring-bottom-sheet
Accessible ♿️, Delightful ✨, & Fast πŸš€
Stars: ✭ 604 (+655%)
Mutual labels:  modal, bottom-sheet, bottomsheet
BottomSheetBehavior
BottomSheetBehavior is an android library extracted from the Google I/O 2018 application source code.
Stars: ✭ 12 (-85%)
Mutual labels:  bottom-sheet, bottomsheet
Ubottomsheet
iPhone Maps App bottom sheet - A Protocol Oriented Approach
Stars: ✭ 259 (+223.75%)
Mutual labels:  bottomsheet, bottom-sheet
React Native Dating App
Dating app - Exponent and React Native
Stars: ✭ 352 (+340%)
Mutual labels:  expo, mobile
Expo
An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
Stars: ✭ 15,550 (+19337.5%)
Mutual labels:  expo, mobile
Expo And Typescript
Showcase of an Expo app written in TypeScript.
Stars: ✭ 222 (+177.5%)
Mutual labels:  expo, mobile
Body Scroll Lock
Body scroll locking that just works with everything 😏
Stars: ✭ 3,357 (+4096.25%)
Mutual labels:  mobile, modal
Bottomsheet
BottomSheet dialog library for Android
Stars: ✭ 219 (+173.75%)
Mutual labels:  mobile, bottomsheet
React Native Raw Bottom Sheet
Add Your Own Component To Bottom Sheet Whatever You Want (Android and iOS)
Stars: ✭ 771 (+863.75%)
Mutual labels:  modal, bottom-sheet
React Native Actions Sheet
A Cross Platform(Android & iOS) ActionSheet with a flexible api, native performance and zero dependency code for react native. Create anything you want inside ActionSheet.
Stars: ✭ 412 (+415%)
Mutual labels:  modal, bottom-sheet
Ecoleta
Projecto construΓ­do durante o Next Level Week 1 - Ecoleta by @Rocketseat
Stars: ✭ 46 (-42.5%)
Mutual labels:  expo, mobile
React Native Nav Transition
React Native Nav Transition
Stars: ✭ 154 (+92.5%)
Mutual labels:  expo, mobile
Reason Expo
ReasonML bindings for Expo
Stars: ✭ 140 (+75%)
Mutual labels:  expo, mobile
Tua Body Scroll Lock
πŸ” Body scroll locking that just works with everything
Stars: ✭ 236 (+195%)
Mutual labels:  mobile, modal
Cupertino Pane
πŸŽ‰πŸ“±Multi-functional panes and boards for next generation progressive applications
Stars: ✭ 267 (+233.75%)
Mutual labels:  mobile, modal
React Native Scroll Bottom Sheet
Cross platform scrollable bottom sheet with virtualisation support, native animations at 60 FPS and fully implemented in JS land πŸ”₯
Stars: ✭ 1,226 (+1432.5%)
Mutual labels:  bottomsheet, bottom-sheet
React Drag Drawer
A responsive mobile drawer that is draggable on mobile, and falls back to a modal on desktop
Stars: ✭ 135 (+68.75%)
Mutual labels:  mobile, modal
Firebase Instagram
πŸ“Έ Instagram clone with Firebase Cloud Firestore, Expo, and React Native 😁😍
Stars: ✭ 389 (+386.25%)
Mutual labels:  expo, mobile
One Punch Fitness
A "One Punch Man"-inspired workout app!
Stars: ✭ 64 (-20%)
Mutual labels:  expo, mobile

react-native-bottomsheet-reanimated

Highly configurable component imitating native bottom sheet behavior, with fully native 60 FPS animations!

Built from scratch with react-native-interactable-reanimated and react-native-reanimated.

Usable with Expo with no extra native dependencies!

Installation

Open a Terminal in the project root and run:

yarn add react-native-bottomsheet-reanimated

or if you use npm:

npm install react-native-bottomsheet-reanimated

If you are using Expo, you are done.

If you don't use Expo, install and link react-native-gesture-handler and react-native-reanimated.

Usage

import BottomSheet from 'react-native-bottomsheet-reanimated';

class Example extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <BottomSheet
          bottomSheerColor="#FFFFFF"
          ref="BottomSheet"
          initialPosition={'50%'} //200, 300
          snapPoints={['50%', '100%']}
          isBackDrop={true}
          isBackDropDismissByPress={true}
          isRoundBorderWithTipHeader={true}
          // backDropColor="red"
          // isModal
          // containerStyle={{backgroundColor:"red"}}
          // tipStyle={{backgroundColor:"red"}}
          // headerStyle={{backgroundColor:"red"}}
          // bodyStyle={{backgroundColor:"red",flex:1}}
          header={
            <View>
              <Text style={styles.text}>Header</Text>
            </View>
          }
          body={
            <View style={styles.body}>
              <Text style={styles.text}>Body</Text>
            </View>
          }
        />
      </View>
    );
  }
}

Props

name required default description
snapPoints yes E.g. [300, 200, 0]. Points for snapping of bottom sheet coomponent. They define distance from bottom of the screen. Might be number or percent (as string e.g. '20%') for points or percents of screen height from bottom. Note: Array values must be in descending order.
initialPosition no 0 Determines initial position point of bottom sheet. The value outside of snap points.
body no Method for rendering scrollable content of bottom sheet.
header no Method for rendering non-scrollable header of bottom sheet.
isBackDrop no false for show backdrop behind the bottom sheet.
isBackDropDismissByPress no false enable to move bottomsheet to first snappoint by pressing backdrop.
isRoundBorderWithTipHeader no false give round with tip header style to bottomsheet.
isModal no false to make bottom sheet like modal.
isAnimatedYFromParent no If true then give animated value to animatedValueY props.
animatedValueY no If isAnimatedYFromParent will be true then it will give animtedY value to animatedValueY props.
bottomSheerColor no #ffffff for background color of bottom sheet.
tipStyle no for change style of tip. it is dependted on isRoundBorderWithTipHeader.
headerStyle no for change style of header.
bodyStyle no for change style of body.
dragEnabled no true for enable/disable drag

Methods

snapTo(index)

Imperative method on for snapping to snap point in given index. E.g.

// Snap to the snap point at index 0 (e.g. 450 in [450, 300, 0])
this.refs.BottomSheet.current.snapTo(0);

Here this.refs.BottomSheet refers to the ref passed to the BottomSheet component.

Example

More complex examples can be found in the Example folder. To view the examples in the Expo app, open a Terminal and run:

yarn
cd Example
yarn
expo start

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Numan
Numan

πŸš‡ πŸ’»
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].