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

svg-wc-icons

v0.3.1

Published

Tool for generating WebComponent icons from svg files

Downloads

7

Readme

svg-wc-icons

svg-wc-icons is a tool to convert svg icons into reusable web components.

now you can import, style only those icons which are required by your ui instead of using font icon css for all your icons. also generated webcomponents encapsulates internal details of the svg icons into shadow dom hence the generated markup is very clean. and no longer includes any of the svg tags.

and since the main benefit of using webcomponents is interoperability, generated icons can be used in any project with any kind of javascript frameworks

Installation

Use the node package manage to install svg-wc-icons.

npm install -g svg-wc-icons

Usage

#basic usage
svg-wc-icons --src './src' --dest './dist'

#use external svgo json config
svg-wc-icons --src './src' --dest './dist' --svgoConfig './svgo.config.json'

#use custom prefix in generated webcomponents
svg-wc-icons --src './src' --dest './dist' --prefix myCompany

#use custom suffix in generated webcomponents
svg-wc-icons --src './src' --dest './dist' --prefix icon --suffix ' '

#generate example html
svg-wc-icons --src './src' --dest './dist' --example true

#pass custom css to be applied for all the generated web components
svg-wc-icons --src './src' --dest './dist' --style ':host { font-size: 24px; color: red; }'

Using generated web components in our project

activity-icon {
color: red;
font-size: 24px;
}
<script  type="module"  src="./dist/activity_icon.js"></script>
<activity-icon  />

Generating webcomponent based icons for external icons ex: google material icons

git clone https://github.com/google/material-design-icons.git
svg-wc-icons --src './material-design-icons/social/svg/production' --dest './web-components-icons' --example --style ':host { font-size: 40px; color: red;}'

##How it works This package depends on svgo to strip out unwanted markups from svgs. i.e. style element, color and fill atributes are stripped off from svgs so that it can be colored or styled from outside. then few extra attributes are added to the svg element to support external styling. (ex: fill="currentColor") then optimized svg is rendered inside the shadow dom so that it can be used easily in our markup as custom elements

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT