https://github.com/meemaw/react-micro-modal
Accessible, lightweight and configurable modal component with a11y-enabled.
https://github.com/meemaw/react-micro-modal
accessibility frontend javascript micro modal react typescript
Last synced: about 1 year ago
JSON representation
Accessible, lightweight and configurable modal component with a11y-enabled.
- Host: GitHub
- URL: https://github.com/meemaw/react-micro-modal
- Owner: Meemaw
- License: mit
- Created: 2019-04-01T13:48:09.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-07T21:59:47.000Z (about 1 year ago)
- Last Synced: 2025-04-07T22:34:25.436Z (about 1 year ago)
- Topics: accessibility, frontend, javascript, micro, modal, react, typescript
- Language: TypeScript
- Homepage: https://meemaw.github.io/react-micro-modal
- Size: 3.64 MB
- Stars: 36
- Watchers: 2
- Forks: 1
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# react-micro-modal
[](https://www.npmjs.com/package/react-micro-modal) [](https://bundlephobia.com/result?p=react-micro-modal)  [](https://codecov.io/gh/Meemaw/react-micro-modal) [](https://github.com/prettier/prettier)
_Accessible, lightweight and configurable modal component with a11y-enabled inspired by [Micromodal.js](https://github.com/Ghosh/micromodal)._
### [Release notes](https://github.com/Meemaw/react-micro-modal/releases) | [Documentation](https://github.com/Meemaw/react-micro-modal/tree/master/docs)
---
- NPM: `npm install react-micro-modal`
- Yarn: `yarn add react-micro-modal`
---
## Features
- Micro bundle - 1.9 KB 📦
- a11y friendly 👓
- Supports nested modals
- Focuses on the first focusable element within the modal
- Traps focus inside the modal
- Closes on document click
- Closes on `Escape` keypress
- Usage as controlled or uncontrolled component
## Example
Here is a minimal uncontrolled modal example in 3 lines of code.
```tsx
import React from 'react';
import { render } from 'react-dom';
import MicroModal from 'react-micro-modal';
const App = () => {
return (
Open!}>
{(close) => Close!}
);
};
render(, document.getElementById('root'));
```
## Live Playground
For more examples of micro-modal in action, go to https://meemaw.github.io/react-micro-modal.
OR
To run that demo on your own computer:
- Clone this repository
- `yarn install`
- `yarn storybook`
- Visit http://localhost:9001/