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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@auroratide/img-zoom

v0.1.2

Published

Component for viewing images in more detail.

Downloads

11

Readme

The img-zoom Element

The img-zoom element represents an image that can be enlarged to fill the screen on demand.

<img-zoom>
   <img
      src="fruit.png"
      alt="Apples and such arranged on a table."
      width="1920"
      height="1470"
   />
</img-zoom>

Installation

You can import through CDN:

<script type="module" src="https://unpkg.com/@auroratide/img-zoom/lib/define.js"></script>

Or, you may install through NPM and include it as part of your build process:

$ npm i @auroratide/img-zoom
import '@auroratide/img-zoom/lib/define.js'

Usage

img-zoom is an inline markup element that you can use in your HTML document. It must have exactly one child which is either an img element or a picture element with a fallback img defined.

Using img:

<img-zoom>
   <img src="fruit.png" alt="Apples and such arranged on a table." width="1920" height="1470" />
</img-zoom>

Using picture:

<img-zoom>
   <picture>
      <source srcset="fruit.webp" type="image/webp" />
      <img src="fruit.png" alt="Apples and such arranged on a table." width="1920" height="1470" />
   </picture>
</img-zoom>

Disabling Interaction

The disabled attribute disables zoom interaction. Not super sure if this is useful, but the feature's there just in case.

<img-zoom disabled>
   <img src="fruit.png" alt="" />
</img-zoom>

Customization

Since it's Just HTMLTM, you can use good ol' CSS.

img-zoom {
	box-shadow: 0 0 0.5em 0.5em oklch(0% 0 0 / 0.33);
}

Accessibility

This custom element is built with accessibility in mind! It treats the zoomed image like a dialog.

  • Keyboard operation
    • When the image has focus, Enter will open the zoomed image.
    • When opened, focus is automatically placed on a Close button that will close the zoomed image.
    • Escape will also exit the zoomed image.
  • Tab trapping: While zoomed, the tabbing order will remain within the image until dismissed.
  • Reduced Motion: The animation is simplified for people who prefer reduced motion.