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

svg-use-it

v1.2.0

Published

SVG use polyfill for IE10

Downloads

397

Readme

SVG<use>It

npm (tag)

About

In many web projects there are browser lists including IE10 and 11 which sadly don't support SVG fragment identifiers on external resources.

This polyfill solves this problem by simply inlining the referenced shapes from the given file without user agent sniffing.

Usage

SVG gives us the ability to use instances of shapes which is pretty amazing for icon libraries. Just add a svg tag to your markup with a use tag as child and add your resource's file path with the id hash of your desired shape like this:

<svg viewBox="0 0 64 64">
    <!-- referencing id "menu" from "/path/to/my/icons.svg" -->
    <use xlink:href="/path/to/my/icons.svg#menu"></use>
</svg>

Just import svgUseIt into your script (which gets included at the bottom of your HTML) or execute it on DOMContentLoaded:

import svgUseIt from 'svg-use-it';

document.addEventListener('DOMContentLoaded', () => {
	svgUseIt();
});

Options

svgUseIt takes two paramters:

rootSelector

Provide a root selector to search in <string>.

  • Default: body
  • Optional: true

blacklist

You can pass an array of direct children of rootSelector to be ignored for replacement.

  • Default: []
  • Optional: true

Good to know

Feature detection

Of course this polyfill should only do its job on browsers that don't support fragment identifiers from external resources. So I researched for a feature that could identify each IE except for MSEdge. Due to the fact, that documentMode is just supported in Internet Explorer <= 11, we can use it here to detect support for external fragments.

// false on all browsers except for IE <= 11
Boolean(document.documentMode);