A set of libraries to help users find and replace native system emojis with EmojiOne in their app or website.

Related tags

Text emojione

This repository is now maintained as JoyPixels/emoji-toolkit.

You'll find the latest version of our resources at emoji-toolkit. Please see the UPGRADE README for important information on what's changed from this repository. Thank you!

EmojiOne Logo

npm version npm downloads jsDelivr hits

A set of libraries to help users find and replace native system emojis with EmojiOne in their app or website.

What's Included?

  • This project includes libraries used to convert emoji into various formats, including conversion to EmojiOne emoji images.
  • All libraries included here are available free under the MIT license.

License to Use EmojiOne Images

EmojiOne Version 4

EmojiOne Version 4 is available under the same licensing structure as Version 3. Please see below for more details.

EmojiOne Version 3+

EmojiOne launched version 3.0 in 2017, which has several licensing options available. PNG 32px, 64px, and 128px as well as 32px and 64px sprites are available for digital use, with attribution. See https://www.emojione.com/licenses/free for more information on usage and attribution requirements.

Premium Licenses are available for larger PNG assets and SVG assets, for digital and print use (within budget constraints). See https://www.emojione.com/licenses/premium for more information or to obtain a Premium License.

For product/retail licensing, visit https://www.joypixels.com.

EmojiOne Version 2

EmojiOne version 2 is no longer supported or distributed. Please see UPGRADE.md for instructions on upgrading from version 2 to version 3. Version 2 was bound by the Creative Commons Attribution 4.0 International License.


To install emojione, please refer to the guide at INSTALLATION.md. Version 3 introduces many potentially-breaking changes. Refer to the UPGRADE.md documentation for more details.


Please see CONTRIBUTING.md for more info on contributing to the emojione project. For artwork comments and questions please see the emojione-assets repo.


You'll find basic usage examples here in the /examples/ directory, and links to usage demos in USAGE.md.


Bug reports

If you discover any bugs, feel free to create an issue on GitHub. We also welcome the open-source community to contribute to the project by forking it and issuing pull requests.


If you have any questions, comments, or concerns you are welcome to contact us.


We sincerely hope that you choose to use EmojiOne and support our project, but if you feel like it's not for you, please have a look at these possible alternatives:

  • Better unicode to short performance

    Better unicode to short performance

    Hi there, I just fixed #45 with this pull request.

    All tests passing, after two fixes:

    1. Cache burst param was not in the expectations for the URL test
    2. As I said in #51, the toShort test suite fails due to the new flags. I did a workaround to test my code but didn't pushed it.

    Performance enhancement can be checked in this JSPerf: http://jsperf.com/emojione-replacement-speed-test/3

    The previous algorithm was O(c), where c is constant but large c: Emoji's list size (~1K). The new algorithm is O(n), but with n: Number of emojis in the string. So, worst case scenario is replacing a string with more than 1K emojis.

    PS: I don't know how to generate the minified JS file, sorry.

    opened by Coquevas 38
  • some EMOJI shortcut not working

    some EMOJI shortcut not working

    Hi, thank you for great package I'm using emojione in my Meteor project. it works great. But some emoji don't work. such as :spy: or :eye: . Could you tell me why ? Maybe the Meteor version is not the newest ?

    opened by leizard 37
  • Show Number Incorrect When Use

    Show Number Incorrect When Use "emojione-android.ttf"

    when using from emojione-android.ttf in app , when writing number , show number like emoji !!!

    i write "1" but show this number like emoji . how fix it?

    opened by saeedmozaffariGithub 20
  • New Unicode Emojis still missing from Emoji One

    New Unicode Emojis still missing from Emoji One


    on the Emoji One homepage you are saying:


    [...] But wait, there's more! 😯 Within the coming months, we'll release the newest emoji additions (which unicode announced in June, around 250 in all) including the ever-adorable middle finger. [...]

    But they are still missing.

    Could you please add the new Unicode Emojis to Emoji One?

    And is there already an ETA for this?


    work in progress 
    opened by wp9015362 19
  • Why fonts are not supported by Chrome?

    Why fonts are not supported by Chrome?



    sing these fonts with Firefox or Microsoft Edge, you can enjoy full-color EmojiOne emoji

    but why it's not working with Chrome?

    Chromium v.56 image

    Firefox v.52 image

    Looks like I find a possible related comment:

    refs https://github.com/eosrei/emojione-color-font/issues/57


    Maybe someone of creator can regenerate fonts with CBDT (or similar thing that supported in Chrome)?

    cC @caseyahenson @miguelsousa @thinkrick @mikebe11 @eosrei


    opened by ovr 14
  • Emojione v.3.0.1 doesn't recognize some unicode symbols

    Emojione v.3.0.1 doesn't recognize some unicode symbols

    At least these ones:

    Heavy Exclamation Mark Symbol: ❗ White Smiling Face: ☺️ White Frowning Face: ☹

    UPD: there are more. Too lazy to make links: ✌ Victory Hand, πŸ– Raised Hand With Fingers Splayed, ✍ Writing Hand, ☝ Index Pointing Up, πŸ—» Mount Fuji, πŸ• Camping, πŸ– Beach With Umbrella, 🏜 Desert, 🏝 Desert Island, 🏞 National Park, 🏟 Stadium, πŸ› Classical Building, πŸ— Building Construction, 🏘 House, πŸ™ Cityscape, 🏚 Derelict House, and many more.

    v. 2.x: 2017-04-27 03-56-54

    v. 3.0.1: 2017-04-27 03-58-20

    opened by ingria 11
  • Add tools used to generate fonts to repo

    Add tools used to generate fonts to repo

    The fonts at: https://github.com/Ranks/emojione/tree/master/assets/fonts don't seem to have any ways to reproduce them from the original sources.

    (or I can't find them)

    opened by hadess 11
  • Squirrel 1f43f has three undefined path fills

    Squirrel 1f43f has three undefined path fills

    There are missing fill colors on three paths in: https://github.com/Ranks/emojione/blob/6a17f05781837b5379a4c02e81c674c47b199cce/assets/svg/1f43f.svg

    The paths are identified in Inkscape as path42, path26 and path6. I assume they should be set to #000000.

    missing fills

    Causes https://github.com/eosrei/emojione-color-font/issues/21

    opened by 13rac1 11
  • Linux font?

    Linux font?


    font/README.md mentions upcoming Linux fonts. What is the plan for these, which format is considered?

    I’m quite interested in getting full colour Emoji working on Linux, Emoji One would be a great choice as a default set in distributions, and I’m wondering how this could work.

    enhancement help wanted 
    opened by nclm 11
  • Normalize filenames to be compatible with Twemoji and gemoji

    Normalize filenames to be compatible with Twemoji and gemoji

    Twemoji's filenames are lowercase without leading zeroes, e.g. 23-20e3.png gemoji's filenames are lowercase with leading zeroes, e.g. 0023-20e3.png Emoji One's filenames are uppercase with leading zeroes, e.g. 0023-20E3.svg

    If you use new URLs for the next major version I think it would make sense to normalize the filenames to lowercase, to be somewhat compatible with Twemoji and gemoji. I think that dropping the leading zeroes would be nice too. With identical filenames (basenames) the difference between a Twemoji image and an Emoji One image would only be in the path to the file and it would make it a bit easier for an application to support both sets.

    That's only if the next version comes with new URLs though. Otherwise I'm not sure this is worth the hassle.

    opened by JoshyPHP 11
  • Greatly improve the performance of the PHP implementation

    Greatly improve the performance of the PHP implementation

    Hello :bowtie:

    This branch contains an alternative PHP algorithm for replacing strings. Instead of frontloading hundreds of replacements via str_replace, it matches every Emoji or smileys at once with a regular expression and replaces them with a callback. The performance increases tenfold to a hundredfold (hence the branch name) depending on the method called and input provided. Demo 4 with its default input goes from ~4ms to ~60Β΅s on my machine.

    A note about those regexps: I wrote $unicodeRegexp by hand. It more-or-less matches the Unicode blocks used in Emojione. The callback filters out false positives. $asciiRegexp was generated programmatically with the help of this class, using the following script:

    include '/s9e/TextFormatter/src/autoloader.php';
    include '/s9e/emojione/lib/php/Emojione.class.php';
    $regexp = s9e\TextFormatter\Configurator\Helpers\RegexpBuilder::fromList(
        ['delimiter' => '`', 'caseInsensitive' => true]
    $regexp = '`(?<!\\S)' . $regexp  .'(?=\\s|$|[!,\.])`Si';
    echo var_export($regexp, true), "\n";
    opened by JoshyPHP 11
  • Get some emoji error

    Get some emoji error

    I chose to complete the emoticon by passing the method $('#content'). Data("emojioneArea"). getText() gets the content, but the actual expression is not correct.

    An error occurred when I inserted the data table.

    Please Help me, Thank you

    Example picture:


    opened by mrxandy 2
  • Joypixels 4.5 with another police

    Joypixels 4.5 with another police

    I've Xiaomi Mi 9 with Android I would change to Emojione but when I install ttf for Android, the number character (0,1,2,3...) Change to orange emoji. It's for that, I want fusion with Emojione and another police to text. Who can I do? (Sorry to my bad English, I'm French)

    opened by szarox7 1
  • Emojione v4.5 not working on Android 5.0 (lower versions work)

    Emojione v4.5 not working on Android 5.0 (lower versions work)

    I've been using emojione since v3 on my Android phone in different ways. From renaming and replacing the font in system/fonts to using the Magisk module and it's worked every time for the tens of times I've done it. But with v4.5 it doesn't work on Android 5 in any ways and all I see is black simple ones from the phone fonts itself. I've tried both the replacing way and Magisk module but it's not working. Surprisingly it works with no problem when I do it on Android 7.1.2 LineageOS custom rom. I contacted Emojione support team and they advised me to submit my issue here and also to ask for help from @maximbaz in this case Thanks

    opened by iamxcuze 5
  • iOS font uses emoji number characters for plaintext numbers

    iOS font uses emoji number characters for plaintext numbers

    When I use the iOS font within my app (after changing the font family name as referenced in #363 to make it work), number characters are incorrectly mapped to emoji characters corresponding to the numbers, so instead of 1, 2, 3, etc... the font renders: 1️⃣2️⃣3️⃣

    This is difficult to work around and the font should not convert plaintext numbers to their emoji equivalents.

    opened by mpalmerlee 1
  • Allow to configure the HTML part of regexes

    Allow to configure the HTML part of regexes

    Why is this change needed?

    Emojione does not replace emojis that are inside an <object> or <span> tag. This can be problematic in some scenarios. In our case this is problematic when processing content generated by an editor (TinyMCE), since the editor generates spans to format text.

    I don't understand the reasons for avoiding the content inside these tags, but in our case removing them does not cause any problem and solve these issues.

    What's the change

    The change makes the part of the regexes that match HTML configurable, so that by default it keeps the same behaviour but, if wanted, a new regex can be provided. In our case, the same regex without the part.

    The ugly part is that when the HTML regex is changed, the other regexes need to be recomputed, that's why I added the computeRegexes method, so you would use it like:

    emojione.htmlRegexp = "<object[^>]*>.*?</object>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>";

    Making this more clean would require moving all the regexes inside methods and that's a bigger change.

    The change allows to fix https://github.com/emojione/emojione/issues/537

    opened by oriolbcn 0
  • 4.5.0(Feb 15, 2019)

    This release includes updated asset linking to version 4.5, as well as a solution within the toImage() function in the javascript library for occasional trailing VS16 characters.

    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Aug 30, 2018)

    This release includes full Unicode 11 compliance, including the addition of super heroes/villains, bagel, llama, and more. Other library updates include:

    • deprecation of unicodeToImage function from JS and PHP libraries
    • addition of fileExtension method attribute for JS and PHP libraries
    • update to emojione-awesome.css file to include local src path as alternative class
    Source code(tar.gz)
    Source code(zip)
  • 3.1.7(Jul 11, 2018)

    This release fixes a number of issues, including the inadvertent reversion of the recently-introduced blacklistChars attribute, default behavior of replacing non-emoji components (digits, asterisk, and pound symbol), and uppercase conversion in the PHP library causing matching errors.

    Source code(tar.gz)
    Source code(zip)
  • 3.1.6(Jun 19, 2018)

  • 3.1.5(Jun 15, 2018)

  • 3.1.4(Apr 27, 2018)

  • 3.1.3(Apr 25, 2018)

    This release includes a fix for certain stacked (side-by-side) characters not replacing, as well as the addition of a blacklistChars variable allowing characters (such as "#" or "*") to be passed as a comma-delimited string of characters that will not get replaced.

    Source code(tar.gz)
    Source code(zip)
  • 3.1.2(Aug 8, 2017)

  • v3.1.1(Jul 12, 2017)

    This release includes several bugfixes and updates, including:

    • fix for cdn path on toImage conversion not setting properly
    • updates to emoji.json file structure - additions only (see UPGRADE.md for current structure)
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Jun 30, 2017)

    This 3.1 release includes Unicode 10 emoji data such as Mermaid/man/person, Vampire, and Climber. Other minor fixes/improvements also included:

    • emojiSize property properly integrated
    • extras/alpha-codes now includes "output" code point
    • improvements to JS and PHP unicode-matching regex
    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(May 3, 2017)

    This release includes two bug fixes for the JavaScript library:

    • error returned when Unicode value is matched in regex but not a valid or desired match (e.g. #), fixes #494
    • incorrect class applied for diverse emoji when using sprites, fixes #493
    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(May 2, 2017)

    This release contains fixes for several issues, including the removal of * and # in Unicode matching, the inclusion of ASCII matching in JavaScript unicodeToImage function, the addition of riskyMatchAscii for PHP and JavaScript, and the addition of alternate sprite size markup. Please see the updated UPGRADE.md doc for more information on PHP and JavaScript emojione object properties.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Apr 24, 2017)

    This release adds (y) as an ASCII reference for thumbsup to PHP and JS libraries, as well as repairs a problem with the minifying of emojione.min.js, and cleans up ASCII replacement in PHP libraries.

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Apr 19, 2017)

    The 3.0 release brings about many breaking changes, please see the README for a complete description. Changes include splitting of the image assets into their own repo, merging the emoji-alpha-codes repo, and a largely restructured emoji.json file. Be sure to review the new licensing structure for image assets as well.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.7(Dec 3, 2016)

    2.2.7 Includes several updates to conversion scripts, including: -expanded libraries to include FEOF and ZWJ sequences for improved conversion -optional title tag attribute for img tag -title attribute for img tag displays shortname for unicode or shortname conversion, and ASCII for ASCII conversion -added explicit https: protocol for external paths -minor updates to several emoji meta data

    Source code(tar.gz)
    Source code(zip)
  • v2.2.6(Jul 16, 2016)

    This release includes the addition of the Gay Pride Flag (1f3f3-1f308) to the artwork, as well as the removal of asterisk, pound sign, and digit (0-9) replacement which was causing unexpected results.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.5(Jun 28, 2016)

    This update improves data in emoji.json and emoji_strategy.js, includes improved categorization for unicode 9 characters, and updates libraries accordingly.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.4(Jun 22, 2016)

  • v2.2.3(Jun 21, 2016)

  • v2.2.2(Jun 10, 2016)

  • v2.2.1(Jun 9, 2016)

  • v2.2.0(May 31, 2016)

  • v2.1.4(Apr 5, 2016)

    Includes a small patch to the JS implementation of toShort(), fixing an issue with excluded html tags. Added aliases for :custard: - :flan: & :pudding: Added an alias for :+1: :thumbup: and :-1: :thumbdown: plus skin tone versions of those.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Mar 26, 2016)

  • v2.1.2(Mar 15, 2016)

    Changes to the PNG sprite sheet and CSS in an attempt to fix the poor rendering in the latest release of Chrome.

    • 1 pixel padding added in the sprite sheet
    • CSS background-position changed from percentage to pixel offset
    • CSS width and height changed to 64px
    • removed CSS background-size
    • removed unnecessary sprite SASS file

    Updated ascii and PNG demos to reflect new changes. Changed :) :-) :] =] =) mapping from :smile: to :slight_smile: Bumped cache busting param.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Feb 24, 2016)

  • v2.1.0(Jan 29, 2016)

  • v2.0.1(Jan 7, 2016)

    • static regexp in the javascript library moved to variables
    • :paw_prints: shortname alias added
    • demo copyright dates updated
    • cache busting param updated
    Source code(tar.gz)
    Source code(zip)
  • v1.5.2(Oct 30, 2015)

A category on NSString to convert Emoji Cheat Sheet codes to their equivalent Unicode characters

NSString+Emojize A category on NSString to turn codes from Emoji Cheat Sheet into Unicode emoji characters. Getting Started In order to use NSString+E

DIY.org 643 Sep 8, 2022
Generate help centers for your iOS apps, with Markdown

Generate help centers for your iOS apps, with Markdown! All you need to do is wr

Peter Salz 6 Jan 15, 2022
Lightweight library to set an Image as text background. Written in swift.

![](https://img.shields.io/badge/Swift 2-compatible-4BC51D.svg?style=flat-square) Simple and light weight UIView that animate text with an image. Demo

Lucas Ortis 552 Sep 9, 2022
`stringWithFormat:` for the sophisticated hacker set

FormatterKit This library is no longer being maintained. Since its initial release in 2011, Apple has filled in many of the gaps FormatterKit was crea

Mattt 10 Sep 13, 2022
OysterKit is a framework that provides a native Swift scanning, lexical analysis, and parsing capabilities. In addition it provides a language that can be used to rapidly define the rules used by OysterKit called STLR

OysterKit A Swift Framework for Tokenizing, Parsing, and Interpreting Languages OysterKit enables native Swift scanning, lexical analysis, and parsing

Swift Studies 178 Sep 16, 2022
Marky Mark is a parser written in Swift that converts markdown into native views.

Marky Mark is a parser written in Swift that converts markdown into native views. The way it looks it highly customizable and the supported markdown syntax is easy to extend.

M2mobi 287 Nov 29, 2022
A lightning fast, native SwiftUI scratchpad/text editor.

Sedit A lightning fast, native SwiftUI scratchpad/text editor. Sedit (Swift Edit, as in the language and as in fast) is a lightning fast basic text ed

null 5 Jan 28, 2022
An iOS app to turn typed text into images of handwritten text in your own handwriting style.

Text-to-Handwritting Β© 2021 by Daniel Christopher Long An iOS app to turn typed text into images of handwritten text in your own handwriting style. ht

Daniel Long 11 Dec 29, 2022
BNR World Trotter ios App

WorldTrotter Using the information from the BNR textbook, the World Trotter App was modified to add points of interest and adding a "Find Me" button u

George 0 Nov 27, 2021
Example Thesaurus app written in Swift

Words Simple Thesaurus built with Moby data. Building You'll need CocoaPods to build the app. To install CocoaPods, run the following command in Termi

Sam Soffes 47 Jun 29, 2022
GRE3000 - Simple GRE 3000 words app for Chinese

GRE3000 Simple GRE 3000 words app for Chinese Usage Tap Left half Screen for pre

Changhao Song 0 Mar 16, 2022
Markdown parsing and rendering for iOS and OS X

CocoaMarkdown Markdown parsing and rendering for iOS and macOS CocoaMarkdown is a cross-platform framework for parsing and rendering Markdown, built o

Indragie Karunaratne 1.2k Dec 12, 2022
Easiest way to create an attributed UITextView (with support for multiple links and from html)

AttributedTextView Easiest way to create an attributed UITextView (with support for multiple links and html). See the demo app and the playground for

Edwin Vermeer 430 Nov 24, 2022
A simple and customizable Markdown Parser for Swift

MarkdownKit MarkdownKit is a customizable and extensible Markdown parser for iOS and macOS. It supports many of the standard Markdown elements through

Bruno Oliveira 687 Dec 18, 2022
MarkdownView is a WKWebView based UI element, and internally use bootstrap, highlight.js, markdown-it.

MarkdownView is a WKWebView based UI element, and internally use bootstrap, highlight.js, markdown-it.

Keita Oouchi 1.8k Dec 21, 2022
An easy way to add mentions to uitextview like Facebook and Instagram

OEMentions An easy way to add mentions to uitextview like Facebook and Instagram. It also include a tableview to show the users list to choose from. T

Omar Alessa 48 Oct 23, 2022
Write amazing, strong-typed and easy-to-read NSPredicate.

PredicateFlow Write amazing, strong-typed and easy-to-read NSPredicate. This library allows you to write flowable NSPredicate, without guessing attrib

Andrea Del Fante 103 Aug 12, 2022
An NSPredicate DSL for iOS, OSX, tvOS, & watchOS. Inspired by SnapKit and lovingly written in Swift.

PrediKit A Swift NSPredicate DSL for iOS & OS X inspired by SnapKit, lovingly written in Swift, and created by that weird dude at KrakenDev. If you're

Hector Matos 542 Sep 24, 2022
A library for formatting strings on iOS and macOS

Sprinter Introduction What? Why? How? Usage Installation Integration Localization Thread Safety Advanced Usage Introduction What? Sprinter is a librar

Nick Lockwood 168 Feb 6, 2022