npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@ouroboros/react-modal

v1.0.2

Published

Modal Component

Readme

@ouroboros/react-modal

npm version MIT License

A React component that displays content in a box that overlays the rest of the site.

Installation

npm

npm install @ouroboros/react-modal

Using

import Modal from '@ouroboros/react-modal';
import React, { useState } from 'react';

import '@ouroboros/react-modal/style.css';

function App(props) {
  const [ modal, modalSet ] = useState(false);

  return (
    <button onClick={() => modalSet(true)}>Open Modal</button>
    {modal &&
      <Modal
        onClose={() => modalSet(false)}
        xIcon={ <i className="fa-solid fa-circle-xmark" /> }
      >
        <div>
          <p>This is modal content</p>
        </div>
      </Modal>
    }
  );
}

Example image of Modal component closed

And then after the user clicks

Example image of Modal component open

Props

| Name | Type | Required | Description | |--|--|--|--| | maxWidth | string | number | no | The maximum allowable width for the modal dialog, can be sent a string as is, or a number (pixels) | | noBackground | bool | no | Set to true to make the modal transparent | | onClose | callback | no | Called when the user clicks outside the modal, or on the X xIcon if provided | | open | boolean | no | Set to false to hide the modal without destroying the Modal or children | | width | string | number | no | The width to set the modal dialog, can be sent a string as is, or a number (pixels) | | xIcon | string | element | no | If set, whatever is passed will be displayed in the top right corner and trigger the onClose prop (if it was also passed) when clicked |

CSS

If you want to change any aspect of the modal's styling, you can do so by modifying any of the following styles, listed from root to children.

.oc_modal, .oc_modal_outer, .oc_modal_inner, .oc_modal_inner_close, oc_modal_inner_content.

For example, if you wanted to increase the z-index of the entire modal component to 100, and also change the background color of the main content from white to a light blue.

.oc_modal {
  z-index: 100;
}

.oc_modal_inner {
  background-color: rgb(121, 165, 199);
}