emoji-datasource-apple

Apple's official emoji spritesheets and matching JSON metadata, packaged as an installable npm module for building emoji pickers and chat UIs.

Library
npm
v16.0.0
2,798stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
48/100Fair
Development Activity12
Maintenance0
Community80
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
51/100Fair
Architecture55
Code Quality40
Innovation35
Learning Curve75

emoji-datasource-apple is one of several platform-specific npm packages published from the emoji-data monorepo (iamcal/emoji-data), the dataset that underpins the emoji pickers used across Slack-style chat apps, editors, and messaging clients. Rather than shipping raw Unicode data alone, this package bundles Apple’s rendered emoji spritesheets at multiple resolutions (16, 20, 32, 64px) together with a JSON index that maps every emoji’s unified codepoint, short name, category, and skin-tone variants to its exact sheet_x/sheet_y coordinates on the sheet.

Consumers install it purely as a data/asset dependency: import emoji.json (or the richer emoji_pretty.json) for lookup metadata, and reference the shipped PNG spritesheets directly for rendering, with ‘clean’ (no-fallback) and quantized (128/256-color) variants available for teams concerned about file size or the licensing of Apple’s original artwork.

What You Get

  • Apple emoji spritesheets at 16px, 20px, 32px, and 64px, each with a 1px transparent border per glyph for precise sheet_x/sheet_y cropping
  • ‘Clean’ spritesheet variants that omit fallback glyphs, avoiding ambiguity around Apple’s image licensing for missing emoji
  • Indexed-color spritesheets (128 and 256 color) for teams that need smaller asset payloads than the full 24-bit sheets
  • emoji.json / emoji_pretty.json metadata covering unified codepoints, short names, categories, sort order, and skin-tone variation mappings
  • Individual 64px PNGs per emoji (img-apple-64/) for consumers that render single glyphs instead of cropping a shared sheet
  • Coverage tracking against the current Unicode Emoji version, updated release-over-release as Apple ships new glyphs in macOS/iOS

Common Use Cases

  • Rendering an Apple-style emoji picker in a chat, comment, or messaging product without shipping your own emoji artwork
  • Mapping :short_name: colon-syntax input to the correct Apple glyph and sprite position in a text editor or composer
  • Building an emoji autocomplete/search feature keyed off category, subcategory, or short-name metadata
  • Serving emoji images from a CDN by pointing at the versioned spritesheet paths (e.g. via jsDelivr) instead of bundling every PNG
  • Cross-referencing skin-tone variant codepoints for products that support Fitzpatrick modifiers

Under The Hood

Architecture The published npm package is a build artifact of the iamcal/emoji-data monorepo: PHP scripts under build/ (build_image.php, build_map.php, build_catalog.php) consume raw per-vendor image sources and Unicode data files (data_emoji_names_v*.txt, data_variations.txt) to regenerate emoji.json/emoji_pretty.json and the per-platform spritesheets on every Unicode Emoji release. The npm package itself ships no executable code — it is a static bundle of the generated JSON index plus PNG assets, so its ‘architecture’ from a consumer’s perspective is a data contract (fixed JSON schema keyed by unified codepoint) plus a coordinate system (sheet_x/sheet_y against a fixed cell size) rather than any runtime logic.

Tech Stack The generation pipeline is PHP-based (build_*.php, common.php), invoked against raw Unicode data text files and per-vendor source images; the repo also contains a Perl helper (find_missing_summary.php and related). None of this is exposed to or required by npm consumers, whose only dependency surface is static JSON and PNG files declared in package.json’s files array. No build tooling, bundler, or runtime framework is part of the published artifact.

Code Quality There is no test suite in the conventional sense — correctness is enforced by comparing generated sheets/JSON against CHANGES.md-tracked known counts of “missing images” per vendor per Unicode version, and by manual visual review of spritesheets. No CI configuration is present in the repository. This is consistent with a data-generation project rather than an application: the risk surface is data accuracy (correct codepoint-to-image mapping) rather than program logic, and the maintainer has historically caught regressions (e.g. an incorrect Scotland flag, missing non_qualified fields) via community bug reports rather than automated checks.

API Design There is no API surface beyond the JSON schema itself and the documented sprite-coordinate formula (x = sheet_x * (sheet_size + 2) + 1). The schema is stable and well-documented in the README (every field enumerated with its meaning), and the same field names are shared across every platform-specific package (apple/google/twitter/facebook), so a consumer who has integrated one platform’s package can swap to another with no code changes beyond the sheet path. The main ergonomic cost is that consumers must implement their own sprite-cropping and short-name lookup logic — the package provides data, not a rendering component.

Used by 5 apps in this directory

Python
50%
MIT

Docs

File Storage · CMS

16,788

Open-source collaborative knowledge platform with real-time editing, AI writing tools, and full self-hosting control — built by the French and German governments.

View details
88
Repo Health
81
Technical
71
Dependency
Built with
Python50%
TypeScript42%
Updated yesterday
TypeScript
51%
Other

Mattermost

Team Chat · Collaboration · Devops

38,999

Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.

View details
96
Repo Health
87
Technical
65
Dependency
Built with
TypeScript51%
Go40%
Updated today
TypeScript
51%
Other

Mattermost

Team Chat · Collaboration · Devops

38,999

Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.

View details
96
Repo Health
87
Technical
65
Dependency
Built with
TypeScript51%
Go40%
Updated today
Python
57%
Apache 2.0

Zulip

Team Chat

25,855

Topic-based team chat that brings the structure of email threads to real-time messaging, so distributed teams never lose context across hundreds of concurrent conversations.

View details
96
Repo Health
86
Technical
61
Dependency
Built with
Python57%
TypeScript19%
JavaScript10%
Updated yesterday
Python
57%
Apache 2.0

Zulip

Team Chat

25,855

Topic-based team chat that brings the structure of email threads to real-time messaging, so distributed teams never lose context across hundreds of concurrent conversations.

View details
96
Repo Health
86
Technical
61
Dependency
Built with
Python57%
TypeScript19%
JavaScript10%
Updated yesterday

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search