Skip to main content

Built and signed on GitHub Actions

A basic web component for creating modals.

This package works with BrowsersIt is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
It is unknown whether this package works with Deno
It is unknown whether this package works with Bun
This package works with Browsers
JSR Score
70%
Published
2 hours ago (0.1.0)

Nidhugg Modal

A basic web component for creating modals.

Basic usage

  1. Include the script in your HTML file:
  2. Add the nidhugg-modal element to your HTML file.
  3. Add content to the modal using the header, content, and footer slots.
<nidhugg-modal id="modal-1" open>
 <h2 slot="header">Hello World</h2>
 <p slot="content">This is a test of the Nidhugg Modal</p>
 <button slot="footer" onclick="document.querySelector('#modal-1').close()">Close</button>
</nidhugg-modal>

Styling

The modal can be styled using CSS custom variables. The following variables are available:

:root{
  --nidhugg-base-100:#2A303C;
  --nidhugg-base-200:#242933;
  --nidhugg-base-300:#20252E;
  --nidhugg-base-content:#B2CCD6;
  --nidhugg-neutral:#1C212B;
  --nidhugg-neutral-content:#B2CCD6;
  --nidhugg-rounded: 0.5rem;
}

The modal will also add the nidhugg-modal-open-class to the body when it is open.

/* Example: */
 .nidhugg-modal-open{
     overflow: hidden;
     filter: blur(2px);
     height: 100vh;
     width: 100vw;
 }

Methods

The modal has three methods, two inherited from the Modal element:

  • showModal(): Opens the modal
  • close(): Closes the modal

I also added a open()-method that can be used to open the modal.

//Open, no difference between the methods
document.querySelector('#modal-1').open();
document.querySelector('#modal-1').showModal();

//Close
document.querySelector('#modal-1').close();
Built and signed on
GitHub Actions
View transparency log

Add Package

deno add jsr:@nidhugg/modal

Import symbol

import * as modal from "@nidhugg/modal";

---- OR ----

Import directly with a jsr specifier

import * as modal from "jsr:@nidhugg/modal";

Add Package

npx jsr add @nidhugg/modal

Import symbol

import * as modal from "@nidhugg/modal";

Add Package

yarn dlx jsr add @nidhugg/modal

Import symbol

import * as modal from "@nidhugg/modal";

Add Package

pnpm dlx jsr add @nidhugg/modal

Import symbol

import * as modal from "@nidhugg/modal";

Add Package

bunx jsr add @nidhugg/modal

Import symbol

import * as modal from "@nidhugg/modal";