An open API service indexing awesome lists of open source software.

https://github.com/ghosh/Micromodal

⭕ Tiny javascript library for creating accessible modal dialogs
https://github.com/ghosh/Micromodal

accessibility javascript modal modal-dialogs vanilla-javascript

Last synced: 7 days ago
JSON representation

⭕ Tiny javascript library for creating accessible modal dialogs

Awesome Lists containing this project

README

        





Micromodal.js



Made with love


License


Package version


Tiny, dependency-free javascript library for creating accessible modal dialogs

---

The aim of this library is to make modal dialogs accessible and easy to include in your project with minimum configuration. It's only ~1.8kb minified and gzipped - A tiny library for big change.

**[Demo and documentation](https://micromodal.now.sh/)**

**[Codepen example](https://codepen.io/pen?template=LEYmYWy)**

 

## Features
✔ Toggles relevant aria attributes on open and close

✔ Closes modal on overlay click

✔ Closes modal on pressing the `esc` key

✔ Traps tab focus within the modal

✔ Focuses on the first focusable element within the modal

✔ Retains the focused element state after closing the modal

 

## Installation

**via npm**
```shell
npm install micromodal --save
```

**via yarn**
```shell
yarn add micromodal
```

**via CDN direct link**
```html

```

**direct download**
```shell
curl -O -L https://unpkg.com/micromodal/dist/micromodal.min.js
```

 

## IE 11 and below

Please use this pollyfill suggested [here](https://github.com/ghosh/Micromodal/issues/49#issuecomment-424213347).

 

## Changelog

Find the latest changelog [here](https://github.com/ghosh/micromodal/blob/master/CHANGELOG.md).

 

## Contributing

We are always open and invite developers to contribute to Micromodal. We have kept the guidelines and process dead simple, so you invest more time in making modals accessible to all.

Micromodal follows the [standardjs](https://standardjs.com/) coding standard and is part of our `package.json` file. It will help us to maintain consistency in the code base.

#### Development setup
1. Clone Github repo `$ git clone https://github.com/ghosh/micromodal.git`
2. Install `yarn` package manager (Read [installation guide](https://yarnpkg.com/en/docs/install#mac-tab))
3. Run `yarn install` in the root folder to install all dependencies
4. Run `yarn dev` to start a dev server. This serves the example directory and live reloads when any files are changed
5. [Optional] Run `yarn build` to build the files for distribution. This is run automatically as a pre-commit hook as well.
6. Send us pull request and chill

#### Pushing a new version

First, you must be authorized on npmjs.com. Then:

1. Update the npm package:
- Update the version in `lib/package.json`
- `yarn deploy:npm`

2. Update the changelog.

3. Commit and push changes

4. Tag the version in git:
- `git tag -a X.Y.Z`
- Add the same text as the changelog to the tag description
- `git push origin X.Y.Z`

5. Create a new release in Github: https://github.com/micromodal/micromodal/releases

 

## Want to be a core maintainer?

We are looking for more maintainers for Micromodal. If you are interested, and you have at least some free time to spend on this, reach out to @dkniffin.

 

## Licensing
This project is licensed under [MIT license](https://opensource.org/licenses/MIT).

 

## Related
- [Microtip](https://github.com/ghosh/microtip) - Modern, lightweight, accessible css tooltip library. Just 1kb.

 

## Created and maintained by

Derek Kniffin – [@dkniffin](https://github.com/dkniffin) 🇺🇸

Indrashish Ghosh – [@_ighosh](https://twitter.com/_ighosh) 🇮🇳

Kalpesh Singh - [@knowkalpesh](https://twitter.com/knowkalpesh) 🇮🇳

Darpan Kakadia - [@kakadiadarpan](https://twitter.com/kakadiadarpan) 🇩🇪

Contributors - [list](https://github.com/ghosh/micromodal/graphs/contributors) 🌐

You? - Open a PR to get started!