pure-modal
Version:
A lightweight, accessible, vanilla JavaScript modal component
72 lines (60 loc) • 2.74 kB
Markdown
<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.