The world's largest independent emoji font.

Related tags

Text emoji-toolkit
Overview

JoyPixels Logo

npm version npm downloads jsDelivr hits

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

Heads up! EmojiOne has rebranded to JoyPixels. Please see our UPGRADE DOC for details on what's new, especially if you're migrating from emojione, as all references to "emojione" in class names and file names have been changed.

What's Included?

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

License to Use JoyPixels Images

JoyPixels Version 4+

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

JoyPixels Version 3+

JoyPixels 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.joypixels.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.joypixels.com/licenses/premium for more information or to obtain a Premium License.

For product/retail licensing, see our Enterprise License https://www.joypixels.com/licenses/enterprise.

JoyPixels Version 2

JoyPixels 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.

Installation

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

Contributing

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

Usage

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

Information

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.

Contact

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

Alternatives

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

Comments
  • Generate and maintain the Unicode regexp(s) programmatically

    Generate and maintain the Unicode regexp(s) programmatically

    It seems that some of the regexps in the PHP library have been generated by hand. This PR proposes to generate them automatically using the s9e\RegexpBuilder library.

    At this time, this PR should be considered a proof-of-concept. I don't know what list of emoji sequences the regexp is supposed to match so the current regexp in this PR is based on the list of fully-qualified sequences from emoji.json plus the U+1F700..U+1F800 range and the U+1FA70..U+1FB00 range that appear to be matched by the original regexp.

    If you'd like to merge this change, let me know what sequences should be matched and any other files that should be automatically patched and I'll update this PR accordingly.

    To run the patching script, you'll need a modern version of PHP (>= 7.1 I think?) with the Intl extension enabled. Run the following at the root of the project:

    composer up
    php lib/php/patchFiles.php 
    
    opened by JoshyPHP 4
  • Horrible performance on >= 4.0.0

    Horrible performance on >= 4.0.0

    We have page with many user inputs

    With 544 inputs and use toImage in 3.1.7, it takes ~1.55s

    After we upgrade to 4.0.0.. times are not usable With 544 input and use toImage in 4.0.0, it takes ~20.8s

    I did some demos (check console for times): v3.1.7 - https://jsfiddle.net/76qcth83/ ~0.07s v4.0.0 - https://jsfiddle.net/mzhqyagv/ ~9s v4.5.0 - https://jsfiddle.net/6dba573x/ ~9s

    Edit: I tested v5.0.0 and performance is even worse https://jsfiddle.net/axsy9b2h/1/ ~15s

    So you moved from 0.07s to 15s. Library is now unusable when you need to process more user inputs.

    opened by padinko 4
  • `<3` emoticon doesn't work

    `<3` emoticon doesn't work

    If you have ascii support enabled, then the <3 breaks conversion (at least for the JS library).

    You can try it out on your demo page: https://demos.joypixels.com/latest/ascii-smileys.html

    image

    bug scheduled for release 
    opened by adrianhuna 3
  • Shortcodes wrong when using toShort

    Shortcodes wrong when using toShort

    We have recently upgraded from emojiOne v4.5 to JoyPixels v5.0. We use the toShort function included in the joypixels.js file...

    var shortcode = joypixels.toShort(emoji);

    However, since upgrading from v4.5 to v5.0, we have noticed some eemoji shortcodes are outputting wrong. For example...

    v4.5: slight_smile v5.0: slightly_smiling_face https://www.joypixels.com/emoji/slightly-smiling-face

    v4.5: thumbsup v5.0: thumbup https://www.joypixels.com/emoji/thumbs-up

    v4.5: thumbsdown v5.0: thumbdown https://www.joypixels.com/emoji/thumbs-down

    All the links on the joypixels website suggest the shortcodes in v4.5 were correct.

    opened by Andy6792 3
  • multiple unicode 13 emojis incorrectly marked as diversity base

    multiple unicode 13 emojis incorrectly marked as diversity base

    "1f972": {
            "name": "smiling face with tear",
            "unicode_version": 13,
            "category": "people",
            "order": 16,
            "display": 1,
            "shortname": ":smiling_face_with_tear:",
            "shortname_alternates": [],
            "ascii": [],
            "humanform": 0,
            "diversity_base": 1,
            "diversity": null,
            "diversity_children": [],
            "gender": [],
            "gender_children": [],
            "code_points": {
                "base": "1f972",
                "fully_qualified": "1f972",
                "decimal": "",
                "diversity_parent": null,
                "gender_parent": null
            },
            "keywords": [
                "uc13"
            ]
        },
    

    This emoji was added to emoji.json for Unicode 13. I believe it is incorrectly marked as a diversity_base.

    opened by birarda 2
  • Version 6

    Version 6

    Please do forgive my ignorance here, I'm not trying to have a dig or anything this is just a genuine question. I have observed that after a major JoyPixels update that the licenses go for sale and the joypixels/emoji-assets get updated almost straight away, but this repository tends to lag behind.

    What is usually the reason for this and when might you envisage the toolkit being updated for version 6.

    Many thanks!

    opened by chrisdeeming 2
  • PHP library returns wrong image path for toImage

    PHP library returns wrong image path for toImage

    Both toImage and shortnameToImage return a path that returns an S3 AccessDenied error.

    (new \JoyPixels\JoyPixels())->getClient()->toImage(':smile:')
    

    Returns:

    <img class="joypixels" alt="&#x1f604;" title=":smile:" src="https://cdn.jsdelivr.net/joypixels/assets/5.5/png/32/1f604.png"/>
    

    https://cdn.jsdelivr.net/joypixels/assets/5.5/png/32/1f604.png

    I'm using the latest version (5.5.0)

    opened by rovansteen 2
  • Could you also update emoji_strategy.json ?

    Could you also update emoji_strategy.json ?

    because in emoji.json some "fully_qualified" isn't correct, but in emoji_strategy correct.

    For example: "Hand with Fingers Splayed" it has unicode U+1F590 U+FE0F, in emoji_strategy.json it correct unicode "1f590-fe0f", but in emoji.json just "1f590"

    opened by frbodya 2
  • Ruleset.php is outdated for 5.5.0

    Ruleset.php is outdated for 5.5.0

    Hi, Ruleset.php is outdated for 5.5.0 release. Is there any way to regenerate it?

    https://github.com/joypixels/emoji-toolkit/blob/master/lib/php/src/Ruleset.php

    opened by mikhailter 2
  • "iphone" shortname code for mobile phone

    Hi there,

    The Unicode emoji for 'MOBILE PHONE' (U+1F4F1) has a shortname of "iPhone" in the EmojiOne / JoyPixels library.

    Is there any reason for this renaming? It presents a bias towards Apple, as there is no Android or competitor counterpart. Additionally, this presents a problem for license holders integrating emojis in to competing platforms to Apple.

    Might it be better to apply iPhone as a shortname, using a name like mobilephone which is closer to the Unicode source name?

    bug scheduled for release 
    opened by tomkiss 2
  • asciiToShortname doesn't work

    asciiToShortname doesn't work

    Version: 5.0.5 PHP version: 7.3.9

    Code:

    $client = new \JoyPixels\Client($ruleset = new \JoyPixels\Ruleset());
    
    $client->asciiToShortname('foo :) bar');
    

    PHP Warning: array_flip(): Can only flip STRING and INTEGER values!

    in https://github.com/joypixels/emoji-toolkit/blob/master/lib/php/src/Client.php#L333

    bug scheduled for release 
    opened by MartkCz 2
  • Poor performance on Android

    Poor performance on Android

    Hello,I have a hybrid app built in Ionic. I noticed that when parsing emojis, the performance locks up the device, rendering it unusable for a period of 3 - 4 seconds. I am using in conjunction with ngx-markdown but I isolated the issue to this library.

    Thank you!

    opened by stevebrowndotco 1
  • Unicode 13.1 emojis incorrectly marked as diversity_base

    Unicode 13.1 emojis incorrectly marked as diversity_base

    In the 6.5 release the following emoji all have diversity_base: 1 but I don't believe they should. They as expected have no diversity_children.

    face_exhaling face_in_clouds face_with_spiral_eyes mending_heart heart_on_fire

    opened by birarda 1
  • I think it would be good to add a react example

    I think it would be good to add a react example

    First of all, thank you for developing a good project. I succeeded in applying joypixels in react, and I want to share components.

    EmojiAsset.tsx

    import joypixels from 'emoji-toolkit'
    
    const EmojiAsset = (props: { emoji: string }) => {
      const html = () => {
        const styles = [
          `width: 1.2em`,
          `height: 1.2em`,
          'top: -1px',
          'position: relative'
        ]
        const html: string = (joypixels.toImage(props.emoji) as string)
          .split(`<img class="joypixels"`)
          .join(`<img class="joypixels" style="${styles.join(';')}"`)
    
        return { __html: html }
      }
    
      return (
        <span
          className="emojiAsset"
          style={{ display: 'inline-block' }}
          dangerouslySetInnerHTML={html()}
        />
      )
    }
    
    export default EmojiAsset
    

    index.tsx

    const SomePage = () => {
      return (
        <EmojiAsset emoji="📦 Module" />
      )
    }
    
    export default SomePage
    

    Example

    스크린샷 2021-05-28 오후 7 03 44
    opened by hmmhmmhm 0
  • PHP: Significant performance regression in toShort conversion due to bad regex

    PHP: Significant performance regression in toShort conversion due to bad regex

    In JoyPixels\Client, the $unicodeRegexp value has a mistake that causes it to match more often than needed. In the library itself, this is only used by JoyPixels\Client::toShort.

    Specifically, the regex contains this portion:

    ...|[\x{1F1E0}-\x{1F1FF}]{2}||[\x{1F468}-\x{1F469}\x{1F9D0}-\x{1F9DF}][\x{1F3FA}-\x{1F3FF}]?\x{200D}?[\x{2640}\x{2642}\x{2695}\x{2696}\x{2708}]?\x{FE0F}?|...
    

    What's notable is the || part, which causes the regex to match empty strings. This causes toShortCallback to be called with an empty match for each (non-emoji) character. This returns immediately, but this the match and callback overhead can be significant. With a single | this works as expected.

    For example, here's a basic performance test:

    $runCount = 100;
    $str = str_repeat("testing \xF0\x9F\x98\x83 ", 1000);
    $client = new \JoyPixels\Client();
    
    $s = microtime(true);
    for ($i = 0; $i < $runCount; $i++) {
    	$client->toShort($str);
    }
    $e = microtime(true);
    
    echo ($e - $s) / $runCount;
    

    This gives me the following results:

    Run type | Time per execution (s) | Total time (s) ---------- | ------------------------ | -------------- Unfixed | 0.018859 | 1.88592 Fixed | 0.000538 | 0.0538551

    Though easily derivable, the difference in the total run time shows the size of the regression as we go from 1.88 seconds to run the test to 0.05 with a single character change!

    This change first appeared in 5.5 (af05016636de451c0bca8a2910fe503efff350e2). I assume this regex is auto generated, so this will presumably keep coming back unless the tool that causes the issue is fixed. Otherwise, a PR to resolve this is generally simple.

    Potentially related, JoyPixels::$unicodeRegexp does not appear to have this issue, though the regex differs from the one in JoyPixels\Client. It did actually get the || in the 5.5 release as well (you can see it in the same commit), but it disappeared from there in 6.0. I'm not clear on why these two regexes are not identical, but I might be missing something.

    opened by mikesul 3
  • Gif border white pixelized

    Gif border white pixelized

    Hello we use the license of animations 3.5 and on the different GIF file sizes, especially on small sizes a white pixelized !

    outline is present. I checked other transparent GIF animations on Google or Discord and this white outline is often not present unlike Joypixel.

    How to proceed so as to no longer have its embarrassing white contours? (very annoying for dark mode)

    In addition, on older animation versions (3.2), the white outline problem was less present and the files were less heavy. Revise your gif export method.

    Thanks for your time 😇

    Capture d’écran 2020-11-24 à 23 45 44

    opened by NaosFr 0
Releases(7.0.0)
  • 7.0.0(Oct 12, 2022)

    This release brings the toolkit current with JoyPixels 7.0 and Unicode 14. Additional changes in this release include:

    • removal of Python library
    • addition of joypixels.json configuration file and integration into libs/tests
    • modifications and additions to test suite
    • update of node dependencies, PHPUnit dependency
    • removal of bower files
    • removal of long-deprecated static PHP library class
    • general bug fixes
    • inclusion of alternative shortnames within PHP library
    • removal of deprecated unicodeToImage PHP/JS method
    • inclusion of s9e/regexp-builder (thanks @JoshyPHP!) for regex automation
    Source code(tar.gz)
    Source code(zip)
  • 6.6.0(Jul 8, 2021)

  • 6.5(Feb 23, 2021)

  • 6.0.1(Aug 11, 2020)

    This patch includes an updated emoji.json file with correct diversity_base properties, which fixes #30. This patch also merges 2 PRs, one to include node-sass as a dev dependency, and one to repair the CDN link within the PHP toolkit.

    Source code(tar.gz)
    Source code(zip)
  • 6.0.0(Jul 14, 2020)

  • 5.5.1(May 6, 2020)

    This patch fixes #21 caused by an incorrect CDN endpoint for fetching emoji assets remotely. This patch also updates emoji_strategy.json to sync with 5.5.0.

    Source code(tar.gz)
    Source code(zip)
  • 5.5.0(Feb 12, 2020)

    This release brings the project current to Unicode 12.1 and JoyPixels 5.5.

    This release also addresses several issues, including:

    • Fixes #6
    • Fixes #7
    • Fixes #11
    • Fixes #13
    Source code(tar.gz)
    Source code(zip)
  • 5.0.5(Sep 20, 2019)

    This update fixes issue #4, as well as fixes incorrect codepoints for 6 emoji: couple with heart mm, couple with heart ww, couple with heart wm, kiss mm, kiss ww, kiss wm.

    Source code(tar.gz)
    Source code(zip)
  • 5.0.4(Aug 26, 2019)

  • 5.0.3(Jul 24, 2019)

  • 5.0.0(Jul 22, 2019)

    This release brings the project current to Unicode 12.0 and JoyPixels 5.0.

    This release contains several changes to the emoji.json data file. Please see UPGRADE.md for more information.

    This release also addresses several issues, including:

    • Fixes joypixels/emojione#610
    • Fixes joypixels/emojione#615
    • Fixes joypixels/emojione#617
    • Fixes joypixels/emojione#619
    • Fixes joypixels/emojione#625
    • Fixes joypixels/emojione#631
    • Fixes joypixels/emojione#635
    • Improves joypixels/emojione#639
    • Fixes joypixels/emojione#642
    • Fixes joypixels/emojione#644
    • Fixes joypixels/emojione#654
    • Fixes joypixels/emojione#662
    Source code(tar.gz)
    Source code(zip)
  • 4.5.2(May 3, 2019)

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
A searchable emoji dropdown view.

NBEmojiSearchView Integrate a searchable emoji dropdown into your iOS app in just a few lines. To start searching, the user just types a :. Then, the

Neeraj Baid 85 Dec 23, 2022
Effortless emoji-querying in Swift

EmojiKit EmojiKit is a simple emoji-querying framework in Swift. It is used in Paste, an Emoji Search app in the App Store. Installation If you’re usi

Dasmer Singh 93 Nov 12, 2022
Emoji in Swift

Smile ❤️ Support my apps ❤️ Push Hero - pure Swift native macOS application to test push notifications PastePal - Pasteboard, note and shortcut manage

Khoa 478 Dec 30, 2022
A Swift framework for using custom emoji in strings.

Emojica – a Swift framework for using custom emoji in strings. What does it do? Emojica allows you to replace the standard emoji in your iOS apps with

Dan 101 Nov 7, 2022
A simple library that provides standard Unicode emoji support across all platforms

Twitter Emoji (Twemoji) A simple library that provides standard Unicode emoji support across all platforms. Twemoji v13.1 adheres to the Unicode 13.0

Twitter 15k Jan 8, 2023
Swift emoji string parsing library

Croc is a library for parsing emojis on iOS. It provides a simple and lightweight interface for detecting, generating, categorizing and managing emoji

Joe Kalash 125 Sep 27, 2021
OS font complements library. Localized font supported.

SwiftFontName SwiftFontName is font name complements and supports localized font library. You don't need to search font name any more with SwiftFontNa

Morita Naoki 114 Nov 3, 2022
Icon font library for iOS. Currently supports Font-Awesome, Foundation icons, Zocial, and ionicons.

FontAwesomeKit Icon font library for iOS. Currently supports Font-Awesome, Foundation icons, Zocial, and ionicons. Version 2.2 Notable Changes Not Jus

Pride Chung 2.8k Jan 6, 2023
Largest list of models for Core ML (for iOS 11+)

Since iOS 11, Apple released Core ML framework to help developers integrate machine learning models into applications. The official documentation We'v

Kedan Li 5.6k Jan 3, 2023
iOS Application for independent film theatre (ArtHouse Momo)

iOS Application for independent film theatre (ArtHouse Momo)

Zestina OH 1 Nov 19, 2021
Croc is a swift emoji string parsing library

Croc is a library for parsing emojis on iOS. It provides a simple and lightweight interface for detecting, generating, categorizing and managing emoji characters, making emoji-powered features an easy task for developers.

Joe Kalash 127 Nov 20, 2022
Swiftly convert country codes and cultural terms to all 269 emoji flags without hassle

Swiftly convert country codes and cultural terms to all 269 emoji flags without hassle

Arnold Rozon 2 May 9, 2022
A machine learning based emoji image classifier

BQBClassifier ??️ Download From App Store Given that my photo albums are mixed with various emojis that often spoil my good mood, I wrote such an app

Lakr Aream 38 Aug 30, 2022
An emoji-liked rating view for iOS, implemented in Swift3.

TTGEmojiRate An emoji-liked rating view for iOS, implemented in Swift3. Android version: PeterSmileRate by SilicorniO. Great work ! :) Inspired by Rat

zekunyan 289 Jun 13, 2022
emoji-picker demo 🥰

emoji-picker demo ?? External dependencies Dependencies are managed by Swift Package Manager. SnapKit - a DSL to make Auto Layout easy on both iOS and

Piotr Przeliorz 12 Nov 9, 2022
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
A searchable emoji dropdown view.

NBEmojiSearchView Integrate a searchable emoji dropdown into your iOS app in just a few lines. To start searching, the user just types a :. Then, the

Neeraj Baid 85 Dec 23, 2022
Effortless emoji-querying in Swift

EmojiKit EmojiKit is a simple emoji-querying framework in Swift. It is used in Paste, an Emoji Search app in the App Store. Installation If you’re usi

Dasmer Singh 93 Nov 12, 2022
Emoji in Swift

Smile ❤️ Support my apps ❤️ Push Hero - pure Swift native macOS application to test push notifications PastePal - Pasteboard, note and shortcut manage

Khoa 478 Dec 30, 2022