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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@astronautlabs/emoji

v17.1.0

Published

A Unicode standard based way to implement emoji across all platforms.

Readme

@/emoji

A simple library that provides standard Unicode emoji support across all platforms. Forked from twemoji.

Adheres to the Unicode 17.0 spec and supports the Emoji 17.0 spec.

Offers support for all Unicode-defined emoji which are recommended for general interchange (RGI).

License

Code

Copyright 2025 Astronaut Labs, LLC.
Copyright 2019 Twitter, Inc and other contributors.
Licensed under the MIT License: http://opensource.org/licenses/MIT

Graphics

Copyright 2019 Twitter, Inc and other contributors.
Licensed under CC-BY 4.0: https://creativecommons.org/licenses/by/4.0/

Attribution Requirements

The graphics are provided under the Creative Commons Attribution 4.0 license as stated above.

Twitter, Inc. provided the following guidance on how to adhere to the license's attribution requirements when publishing the original twemoji library:

As an open source project, attribution is critical from a legal, practical and motivational perspective in our opinion. The graphics are licensed under the CC-BY 4.0 which has a pretty good guide on best practices for attribution.

However, we consider the guide a bit onerous and as a project, will accept a mention in a project README or an 'About' section or footer on a website. In mobile applications, a common place would be in the Settings/About section (for example, see the mobile Twitter application Settings->About->Legal section). We would consider a mention in the HTML/JS source sufficient also.

Usage

npm install @astronautlabs/emoji

How to use the Graphics

The graphics are bundled in the NPM package in the assets directory. So within your project, you should be able to access them from:

./node_modules/@astronautlabs/emoji/assets

This folder corresponds to the baseUrl option used within the library, so if /emoji was mapped to this folder, you would set baseUrl to /emoji.

You are free to copy them to where you need them or configure your web server to serve them within your product. Just make sure to adhere to the Attribution requirements mentioned above.

Replace all emojis in an HTMLElement

import { EmojiParser } from '@astronautlabs/emoji';

let div = document.createElement('div');
div.textContent = 'I \u2764\uFE0F emoji!';
document.body.appendChild(div);

EmojiParser.parse(document.body, { baseUrl: '/path/to/images' });

// Result:
// I <img src="/path/to/images/72x72/2764.png" alt="\u2764\uFE0F" className="emoji" draggable="false" /> emoji!

Accessing Emoji Data

This library bundles information about what emojis are available. This can be used to build your own emoji picker, for example.

import { EMOJI } from '@astronautlabs/emoji';

for (const category of EMOJI.categories) {
    console.log(`Category: ${category.title}`);
    for (const emoji of category.items) {
        console.log(`- ${emoji.string}: ${emoji.description}, ${emoji.keywords.join(',')}`);
    }
});

Using the Raw Data

The raw emoji data used by this library is also bundled in the NPM package in JSON format, should you wish to use it outside of the library. You can find it at:

./node_modules/@astronautlabs/emoji/emoji.json

Note that you do not need this for normal usage of the library (the data is generated into the Typescript source files).

Thank you to the Twemoji contributors

The following contributors worked hard to build Twemoji:

  • Justine De Caires (ex-Twitter)
  • Jason Sofonia (ex-Twitter)
  • Bryan Haggerty (ex-Twitter)
  • Nathan Downs (ex-Twitter)
  • Tom Wuttke (ex-Twitter)
  • Andrea Giammarchi (ex-Twitter)
  • Joen Asmussen (WordPress)
  • Marcus Kazmierczak (WordPress)
  • Kevin VQ Dam (ex-Discord)
  • Gica Tam (Discord)
  • Ben Olson (Discord)

The goal of [the Twemoji project] is to simply provide emoji for everyone. We definitely welcome improvements and fixes, but we may not merge every pull request suggested by the community due to the simple nature of the project.

Thank you to all of our contributors.

References