UNPKG

@ivteplo/html-sheet-element

Version:
106 lines (69 loc) 2.19 kB
# HTML Sheet Element HTML Custom Element for creating sheets. Displayed as a bottom sheet on mobile and a centered sheet on desktop. ## Features - There is a handle at the top of the sheet that can be used to open or close the sheet - The sheet can be closed using a button in the sheet header, using the `Esc` key, or by clicking outside the bottom sheet - This behavior is configurable. You can turn off the `Esc` or the click outside the sheet when you want. - API is similar to the `<dialog>` element's - Supports forms inside of it - Uses familiar method names and the same event names - There are many customization options ## Installation You can install this library from the npm registry: ```bash npm install @ivteplo/html-sheet-element ``` Or you can import it dynamically from a CDN: ```javascript const { SheetElement } = await import("https://unpkg.com/@ivteplo/html-sheet-element@1.0.0/build/index.js") ``` ## Usage Before being able to use the element in your HTML, you need to specify a tag name for it using JavaScript: ```javascript import { SheetElement } from "@ivteplo/html-sheet-element" // You can choose another tag name instead of `ui-sheet` SheetElement.defineAs("ui-sheet") ``` Then you can use the tag in your HTML: ```html <ui-sheet id="sheet"> <p>Hello World!</p> </ui-sheet> ``` To open a sheet, call the element's `showModal` method: ```javascript const sheet = document.querySelector("ui-sheet") sheet.showModal() ``` ## API Documentation You can find API documentation [here](./documentation/API.md). ## Development ### Prerequisites You need to have Git, Node.js, Deno, and any browser installed. ### Setup 1. Open your terminal 2. Clone this repository ```bash git clone https://github.com/ivteplo/html-sheet-element/ ``` 3. Navigate into the cloned directory ```bash cd html-sheet-element ``` 4. Install dependencies ```bash npm install ``` 5. Start the development server ```bash npm run dev ``` 6. Build the library ```bash npm run build ``` 7. Build the API documentation ```bash npm run docs:api ``` 8. Happy hacking :tada: