Emojibase aims to be as specification compliant as possible, but to ensure small datasets, and ease of use, some liberties are taken.
Some multi-person emojis (couple, holding hands, etc) can now change the skin tones of individual persons in the emoji. This is problematic because:
- The number of combinations may grow over time.
- The number of skin tones for an emoji may be greater than 5.
- Where should the extra skin tone data reside?
- How will emoji pickers handle this large number of skin tones?
- Multiple skin tone emojis have hexcodes that no longer match the parent.
For example, the "women holding hands" emoji with dark & light skin tones applied is
1F469-1F3FF-200D-1F91D-200D-1F469-1F3FB, while the theoretical parent "women holding hands" emoji
1F46D. Notice that
1F46D is not found in the skin tone variant hexcode.
For the time being, these multiple skin tone variants are manually mapped to a parent emoji, and are
placed within the
skins array. Because of this, the
skins array may contain more than 5 variants
(up to 15 in some cases), and the
tone property may now be an array of all skin tones.
Before v12, and even pre-emoji, many emoji characters were represented as a single Unicode hexcode.
Overtime, emoji (
FE0F) and text (
FE0E) variation selector characters (additional hexcodes) were
appended to emoji characters to differentiate their presentation.
In v12, many existing emoji have been duplicated to always include the emoji variation selector (more info here). An example of this raw dataset looked like the following:
To avoid duplication across our datasets, the emoji with variation selector (ending in
removed from the final output, and all unique properties are merged into the non-variation selector
sibling. Don't fret though, as the
emoji property will always
include the variation selector, along with the
The resulting dataset would include the following structure:
Separate genders are represented as 3 unique emoji types (people/person, women/woman, or men/man), each with their own hexcodes.
The men and women variants always refer back to the people variant through a shared hexcode (
1F9D6in the example above).
Single emojis that support multiple genders are also represented as unique emojis with their own hexcodes.
The men and women variants do not share a hexcode with the people emoji.