Free Open-Source Emoji Sprite Sheets for JavaScript Apps (emoji-datasource Compatible)

We were recently building out a project that needed a beautiful, functional, and open-source emoji system, but one that was reminiscient of the good ‘ol days of the internet. That’s when we found OpenMoji.
It’s a beautiful and classic take on the modern emoji library with exactly what we needed for the project, but there wasn’t a standard sprite sheet we could plug into easily like with the standard Apple, Google, or Twitter emoji sprites via emoji-datasource . So we built our own.
Meet emoji-datasource-openmoji – a drop-in replacement that brings OpenMoji’s gorgeous open-source emoji designs to your project.

What is it?
emoji-datasource-openmoji provides pre-built sprite sheets of all 3,786 OpenMoji emojis (including 1,875 skin tone variants) in a format that’s 100% compatible with emoji-datasource’s grid layout.
This means you can swap out proprietary emoji sprites for open-source ones without changing a single line of your positioning code.
Why use it?
Open source, truly free Unlike Apple, Google, or Twitter emojis, OpenMoji is licensed under CC-BY-SA 4.0. Use them in any project, commercial or personal, without licensing concerns.
Smaller file sizes The WebP format keeps files compact:
- 32px sprites: 1.0 MB (vs 1.3 MB Apple)
- 64px sprites: 2.4 MB (vs 3.5 MB Apple)

Drop-in compatibility Already using emoji-datasource? Just swap the sprite sheet path:
// Before
const sheet = require('emoji-datasource-apple/img/apple/sheets/32.png');
// After
const sheet = require('emoji-datasource-openmoji/img/sheets/32.webp');
All the sheet_x and sheet_y positions from emoji-datasource work exactly the same.
Use cases
Emoji pickers Build a custom emoji picker with grid-based positioning that matches industry standards.
Chat applications Display consistent emoji across all platforms without licensing restrictions.
Design systems Include open-source emojis in your component library that designers and developers can freely modify.
Offline-first apps Bundle emoji sprites directly in your app without worrying about CDN availability or API limits.

Get started
npm install emoji-datasource-openmoji
const emojiData = require('emoji-datasource');
const sheets = require('emoji-datasource-openmoji');
// Find an emoji
const emoji = emojiData.find(e => e.short_name === 'grinning');
// Use with CSS background positioning
console.log(emoji.sheet_x, emoji.sheet_y); // Grid position
console.log(sheets.sheet64); // Path to sprite sheet
Links: