A Simple React modal with good accessibility
React Modal Easy
Simple modal with good accessibility
The purpose of this component is to provide a simple interface. You won’t find predefined styles to cause you problems or unnecessary customizations.
Install
npm i react-modal-easy
Usage
// include styles
import 'react-modal-easy/dist/style.css';
const [visible, setVisible] = useState(false);
return (
<Modal isVisible={visible} onClose={() => setVisible(false)}>
<div style={{ backgroundColor: 'white', width: 500, padding: 20 }}>
<Modal.Title>React Modal Easy</Modal.Title>
...
</div>
</Modal>
);
Acessibility
By internally using the Radix Dialog, this component comes with accessibility configurations by default. However, for the best use of this feature, also utilize the Title, Description and Close components.
...
return (
<Modal
isVisible={visible}
onClose={onClose}
closeButton={
<Modal.Close onClick={onClose} aria-label='Close'>
X
</Modal.Close>
}
>
<Modal.Title>Lorem Ipsum is simply</Modal.Title>
<Modal.Description>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
</Modal.Description>
...
</Modal>
);
Props
| Property | Type | Default | Description |
|---|---|---|---|
| isVisible | boolean | whether to show dialog | |
| onClose | function | handler called onClose of modal | |
| animation? | ‘scale’ , ‘translate’ , ‘none’ | scale | animation type |
| closeButton? | React.ReactNode | Component | close component, use null to disable. |
| className? | string | modal component class | |
| overlayClassName? | string | overlay component class |
Components
| Name | Description |
|---|---|
| Modal.Title | An accessible title to be announced when the dialog is opened. |
| Modal.Description | An optional accessible description to be announced when the dialog is opened. |
| Modal.Close | The button that closes the dialog. |