Negareh Emoji Library

Negareh Emoji Library

Character information and metadata for Unicode emoji.

Open Source License: GPLv3 Language counter Top language
CodeFactor CodeClimate rating CodeClimate technical debt CodeClimate issues
pipeline status CodeClimate
Gem Version

If you are viewing this repository on GitHub, this GitHub repository is a mirror of the Negareh Emoji Library, the main repository is served on GitLab, all developments and discussions, issue tracking and merge requests take place in GitLab.

This project is a fork of Gemoji.

Negareh Emoji Library

This library contains character information about native emojis.


Add negarmoji to your Gemfile.

gem 'negarmoji'

Example Rails Helper

This would allow emojifying content such as: it's raining :cat:s and :dog:s!

See the Emoji cheat sheet for more examples.

module EmojiHelper
  def emojify(content)
    h(content).to_str.gsub(/:([\w+-]+):/) do |match|
      if emoji = Emoji.find_by_alias($1)
        %(<img alt="#$1" src="#{image_path("emoji/#{emoji.image_filename}")}" style="vertical-align:middle" width="20" height="20" />)
    end.html_safe if content.present?

Unicode mapping

Translate emoji names to unicode and vice versa.

>> Emoji.find_by_alias("cat").raw
=> "🐱"  # Don't see a cat? That's U+1F431.

>> Emoji.find_by_unicode("\u{1f431}").name
=> "cat"

Adding new emoji

You can add new emoji characters to the Emoji.all list:

emoji = Emoji.create("music") do |char|
  char.add_alias "song"
  char.add_unicode_alias "\u{266b}"
  char.add_tag "notes"
end #=> "music"
emoji.raw  #=> "♫"
emoji.image_filename #=> "unicode/266b.png"

# Creating custom emoji (no Unicode aliases):
emoji = Emoji.create("music") do |char|
  char.add_tag "notes"

emoji.custom? #=> true
emoji.image_filename #=> "music.png"

As you create new emoji, you must ensure that you also create and put the images they reference by their image_filename to your assets directory.

You can customize image_filename with:

emoji = Emoji.create("music") do |char|
  char.image_filename = "subdirectory/my_emoji.gif"

For existing emojis, you can edit the list of aliases or add new tags in an edit block:

emoji = Emoji.find_by_alias "musical_note"

Emoji.edit_emoji(emoji) do |char|
  char.add_alias "music"
  char.add_unicode_alias "\u{266b}"
  char.add_tag "notes"

Emoji.find_by_alias "music"       #=> emoji
Emoji.find_by_unicode "\u{266b}"  #=> emoji


If you want to contribute to this project, please read CONTRIBUTING.

Code of Conduct

Visit the Code of Conduct.


Visit the Roadmap to keep track of which features we are currently working on.


Licensed under the GPLv3.


  1. This project is a fork of Gemoji. License: MIT