UNPKG

pure-modal

Version:

A lightweight, accessible, vanilla JavaScript modal component

72 lines (60 loc) 2.74 kB
<p align="center"> <img width="100" height="100" src="https://i.imgur.com/mfvfVlh.png" /> </p> # Pure-modal A lightweight, accessible, vanilla JavaScript modal component. ## Demo and documentation https://romanslonov.github.io/pure-modal/ ## Basic usage #### 1. Add modal markup on your page and give it unique ID. ```html <div class="modal" id="modal1" role="dialog" aria-labelledby="modal-1" aria-describedby="basic-modal" tabindex="-1" style="display: none;"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Modal title 1</h5> <button type="button" class="modal-close" data-dismiss="modal" aria-label="Close"> <svg width="16" height="16" viewBox="0 0 40 40"> <path stroke-linecap="round" class="close-x" d="M 10,10 L 30,30 M 30,10 L 10,30" stroke="#000" fill="transparent" stroke-width="5"></path> </svg> </button> </div> <div class="modal-body"> Content of modal 1 </div> <div class="modal-footer"> <div class="mr-xs"> <button data-dismiss="modal" aria-label="Close">Close</button> </div> <button>Save changes</button> </div> </div> </div> </div> ``` #### 2. Init modal instance and pass unqiue ID of your modal. ```javascript const modal1 = new Modal('modal1'); modal1.init(); ``` #### 3. Add trigger to open the modal. ```html <button data-toggle="modal" data-target="modal1">Modal 1</button> ``` ### Done! 🎉 ## API ### Options | Name |type | Default | Description | -----------------|----------------|----------------|------------- | transition | Boolean | true | Initialize PureModal instance. Add event listeners. | beforeOpen | Function | null | A callback that will be called before opening the modal. | onOpen | Function | null | A callback that will be called after the modal is fully opened. | beforeClose | Function | null | A callback that will be called before closing the modal. | onClose | Function | null | A callback that will be called after the modal is fully closed. ### Methods | Name | Description | -----------------|--------------- | `init()` | Initialize PureModal instance. Add event listeners. | `destroy()` | Destroy all event listeners. Useful when building SPA. | `open()` | Call to open modal manually. | `close()` | Call to close modal manually.