Interested in contributing? Yay! Here are a few infos how the workflow typically works:
- Contribute an Emoji via Email and Sending .svg Files
- Contribute an Emoji via Github and Pull Requests (Preferred)
- Hexcodes extras-openmoji
- Fix a Bug
- How to Submit a Pull Request
- Developer Setup
Simply send us the source .svg file and the meta informations via email e.g.:
emoji,hexcode,openmoji_tags,openmoji_author
ℹ️,2139,"advice,info",Jose Avila
You can find the email address at openmoji.org/about. Thanks 🙏!
If you have an original idea about a new emoji or you spot one which is missing according to the Unicode definition, open an issue describing your emoji, and let us know you are interested! Initiate a discussion, wait for the green light, and then assign it to yourself!
Before you start working on a source .svg file you should find and name .svg file with the corresponding hexcode. Either the emoji is already defined in Unicode or you have to propose a hexcode which is in the private use area (see below in Hexcodes extras-openmoji).
Add your meta infos at the very end of one of the files below:
data/enhancements-emoji-unicode-data.csv
if your emoji is already part of an Emoji Unicode standard e.g. Emoji v12.data/extras-openmoji.csv
if your emoji is currently not part of Unicode.data/extras-unicode.csv
if your emoji is not part of an Emoji Unicode standard, but you could "recycle" an exiting Unicode for it e.g. ⬌ (25A1)
N.B. the properties prefixed openmoji_
are not part of the Unicode specification.
Run node helpers/generate-data-tables.js
to generate from the .csv files above the deduced OpenMoji data tables. This is important as the automated unit test and other mechanisms rely on the central data file data/openmoji.json
🙏 Please follow the OpenMoji Styleguide
✅ Use the OpenMoji Tester App to check whether your emoji passes our automated tests. All of your svg files have to produce green tests only. Fix your files until everything is green! Please! :)
In order to merge you emoji as seamless as possible into the OpenMoji collection, please bear the following file conventions in mind:
- src/{group}/{subgroups}/{hexcode}.svg
e.g. 🐌
- src/animals-nature/animal-bug/1F40C.svg
Before you gon on to submit we aks you should to normalize the formatting of the source code of your svg file(s). We want to be agnostic in terms of the editor used to produce the emojis. Every svg editor e.g. Adobe Illustrator, Sketch App, Figma etc. produce slightly different formated svg files on export. But we want to have a consistent svg source code style, hence please run npm run pretty-src-svg
to normalize your files.
Yay! Now all your files are ready to go! Please submit a PR against the master branch. Please submit only the files in src
folder, and do not generate the files in color
and black
folders. We will take care of your OpenMoji from there! Thanks 🙏!
Emojis that are not (yet) defined in Unicode are located in the Private Use Area. The Hexcode runs from E000
to F8FF
. The total number of code points is 6.400.
For the OpenMoji project we divided the private use are into 100 equal sized blocks of 64 code points:
subcategory | block start | block end |
---|---|---|
animals-nature | E000 | E040 |
brand | E040 | E080 |
emergency | E080 | E0C0 |
… | … | … |
If a subgroup needs more than 64 code points, then the subgroup continues in the next free block. An overview gives this Google Doc. The names of subgroups (in extras-openmoji) are a close as possible aligned with already defined Unicode Emoji ones.
If it's not on the issues list, add it. If it's already on the issues list, assign it to yourself or comment on the issue indicating you're working on it. Go ahead and fix it and submit a PR.
Fork the OpenMoji repository and create a "PR" pull request from your fork.
- Install node.js (see version in the file
.nvmrc
) - Open Terminal and navigate over to the
openmoji
folder that you downloaded onto your computer:
cd path/to/folder
- Run:
npm install