0.3.2 • Published 4 months ago

react-smooth-sheet v0.3.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

TimePicker Demo

🎛️ BottomSheet

A fully responsive and highly customizable bottom sheet component for React applications, designed to provide smooth interactions, seamless animations, and an intuitive user experience. Easily adaptable to various use cases, it supports gesture-based controls, dynamic styling, and effortless integration into any project.

Table of Contents

Installation

You can install the package using npm or yarn:

npm install react-smooth-sheet

or

yarn add react-smooth-sheet

Introduction

BottomSheet is a highly versatile and intuitive React component built to deliver a seamless and interactive bottom sheet experience. Designed with flexibility in mind, it offers extensive customization options, smooth animations, and gesture-based interactions. Whether used for modals, action sheets, or additional UI elements, BottomSheet ensures effortless integration while maintaining optimal performance and responsiveness across all devices.

Key Features:

  • Responsive Design: Adapts to various screen sizes and devices.
  • Customizable Colors: Easily change the color scheme to match your app.
  • Smooth Animations: Enjoy smooth transitions and animations.

Features

  • Toggle visibility with a parent state.
  • Customize overlay opacity and blur.
  • Change the background color of the sheet.
  • Accept custom content as children.

What's New

v0.1.7

  • Reduce package size.
  • Cleaned up unused code .
  • Remove Webpack

v0.1.8

  • Created Custom Hooks.
  • Component-Based Refactoring.
  • Organized Files & Directories

v0.1.9

  • Bugs Fixed.

For more details, see CHANGELOG.md.

Example

import React, { useState } from "react";
import BottomSheet from "react-smooth-sheet";

function App() {
  const [isOpen, setIsOpen] = useState(false);

  return (
    <div className='App'>
      <button onClick={() => setIsOpen(true)}>Open BottomSheet</button>
      <BottomSheet
        isOpen={isOpen}
        sendDataToParent={(open) => setIsOpen(open)}
        overlayDark={1}
        overlayBlur={2}
        backgroundColor={"lightGray"}
      >
        <div style={{ display: "flex", flexDirection: "column" }}>
          <div>Your content </div>
        </div>
      </BottomSheet>
    </div>
  );
}

export default App;

props

PropTypeDefaultDescription
sendDataToParentfunctionfalseFunction to send the state to the parent component.
isOpenbooleanfalseDetermines if the bottom sheet is open or closed.
overlayDarknumber0Sets the opacity of the overlay.
overlayBlurnumber2Sets the blur effect for the overlay.
backgroundColorstring"lightGray"Sets the background color of the bottom sheet.

API

Functions

  • BottomSheetShow(): Shows the BottomSheet.
  • BottomSheetHide(): Hides the BottomSheet.

Events

  • onTouchStart: Detects the touch start event.
  • onTouchMove: Detects the touch move event.
  • onTouchEnd: Detects the touch end event.

Tips and Tricks

Ensure the isOpen prop is managed by the parent component to control the visibility. Use the sendDataToParent function to update the parent state when the BottomSheet is closed.

FAQ

Q: How can I customize the BottomSheet? A: You can customize it using the props provided like overlayOpacity, overlayBlur, and backgroundColor. Q: How do I close the BottomSheet? A: Use the sendDataToParent function to change the state in the parent component.

Contributing

Contributions are welcome! Please create an issue or a pull request.

Contact Information

For any questions or feedback, please contact me via:

Email: hossein.azp94@gmail.com

LinkedIn: https://www.linkedin.com/in/hosseinazadpour

License

This project is licensed under the MIT License - see the LICENSE file for details.

Links

https://github.com/HosseinAzadpour/react-smooth-sheet

0.3.0

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.2.7

4 months ago

0.1.8

4 months ago

0.2.6

4 months ago

0.1.7

5 months ago

0.2.9

4 months ago

0.1.9

4 months ago

0.3.2

4 months ago

0.2.3

4 months ago

0.3.1

4 months ago

0.2.2

4 months ago

0.2.5

4 months ago

0.2.4

4 months ago

0.1.6

11 months ago

0.1.5

11 months ago

0.1.4

11 months ago

0.1.3

11 months ago

0.1.2

11 months ago

0.1.1

11 months ago

0.1.0

11 months ago