React pure modal is a simplest way to create dialog on your site.
- Very small (less than 4Kb)
- Mobile friendly
- Without dependencies
https://memcrab.github.io/react-pure-modal/
npm i -S react-pure-modal
import PureModal from 'react-pure-modal';
import 'react-pure-modal/dist/react-pure-modal.min.css';
const [modal, setModal] = useState(false);
<PureModal
header="Your header"
footer={
<div>
<button>Cancel</button>
<button>Save</button>
</div>
}
isOpen={modal}
closeButton="close"
closeButtonPosition="bottom"
onClose={() => {
setModal(false);
return true;
}}
>
<p>Your content</p>
</PureModal>;
And open with
<button className="button" onClick={() => setModal(true)}>Open simple modal</button>
Replace all inner markup with Component children
Control modal state from parent component
You can disable scroll in modal body
You can drag a modal window
Handle modal closing. Should change isOpen to false
ClassName for modal DOM element, can be used for set modal width or change behaviour on mobile devices
Width in pixels, em's, vw etc
Modal heading, doesn't disabled close button
Place here your actions
Content of your closing button
Place closing button under your modal or inside header. Allowed options: 'header' | 'bottom'
Creates React.Portal
- Removed double calling onClose on popup closing and unmount. onClose will be called only on: close button, backdrop, esc click
- Drag and drop
- fix bug in firefox and safari with modal position
- set width as atribute
- new default aligning to the screen center!
- prevent of modal closing if ESC pressed in editable element
- now with minified css!
- styles are more impressive now, good mobile support
- now scrollable can be false
- remove dependencies, rewrite open and close logic, fix linting
- new header logic and breaking classes changes
npm install
npm run webpack:dev -- --watch
npm run webpack:prod -- --watch
npm run test:dev
- Open
index.html
from examples