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

share-button

v1.0.3

Published

fast, beautiful, and painless social shares

Downloads

81

Readme

An Introduction

Simple, light, flexible, and good-looking share button. See it in action!

Why Should You Use This?

All major social networks have their own share widgets you can put on your page, but this isn't ideal for a variety of reasons:

  1. They tend to be slow-loading.
  2. They inject extra javascript and DOM elements into your page making it slower.
  3. They generally aren't customizable enough to fit the design of your site.
  4. Managing each provider's code snippets etc is repetitive and needless. Additionally, they can make your front-end code quite messy.
  5. The buttons themselves take up a lot of space (especially the Facebook share button).

Let's take a quick look at the alternative, using this little plugin:

  1. It doesn't load any iframes or extra javascript making the overall load time much faster.
  2. It looks simple and clean by default, and can be customized in any and every way.
  3. All you have to do to use it is include the script and call new ShareButton on a share-button element. That's two lines of code total, the script link and the share call.
  4. It's tiny and compact, expanding only when the user actually wants to share something.

Getting Started

  1. Download the latest script & stylesheet and include it on your page.
  2. Make a share-button element on your page
  3. In your javascript, call new ShareButton()
  4. Pass options to the share call if you want (details below)
  5. Profit!
<share-button></share-button>
new ShareButton({
  networks: {
    facebook: {
      app_id: "abc123"
    }
  }
});

Customization

Configuration Options

The share button is extremely flexible. As such we provide the ability to pass a wide array of options for additional configuration. All configuration options are available here: Configuration Options

Styles

Additionally, you're able to customize the look and feel of the button and animations though CSS. All CSS styles and how to modify them are available here: CSS Styles

Hooks

You are able to set before and after hooks when a user clicks a network. This allows you to dynamically change attributes for that button. For more information: click here

Public API

The share button also returns a simple API that can be used to control it should you need to. Example shown below:

var share = new ShareButton(); // Grabs all share-button elements on page

share.toggle(); // toggles the share button popup
share.open();   // open the share button popup
share.close();  // closes the share button popup
share.config;   // exposes the configurations listed above

Fonts

As of version 1.0.0 we completely removed the Entypo font set!

Inspiration

This project was inspired by this dribbble shot and this cssdeck experiment - huge props to these two guys for some incredible ideas and work.

Contributing and License