element-web: Emoji short names are inconsistent with Unicode and other chat platforms
Description
The emoji short names used in Riot are inconsistent with their unicode names and other chat platforms.
Steps to reproduce
- Choose an emoji reaction from the picker based on its visual appearance, use in other platforms, or long name.
- Hover over the reaction.
How this differs from what I expect:
If I choose an emoji reaction like 😅 which the long name describes as, “Grinning Face With Sweat”.
and hover over the reaction on the post it says, “Wes reacted with :embarassed:”. I think this misrepresents the emoji and what I was trying to express — I was not embarrassed.

This name differs from other platforms and is not limited to just this emoji:
| Emoji | Riot | Mattermost | Slack | GitHub | Unicode |
|---|---|---|---|---|---|
| 😅 | :embarassed: |
:sweat_smile: |
:sweat_smile: |
:sweat_smile: |
SMILING FACE WITH OPEN MOUTH AND COLD SWEAT |
| 🤓 | :nerd: |
:nerd_face: |
:nerd_face: |
:nerd_face: |
NERD FACE |
| 🤣 | :entertained: |
:rofl: |
:rolling_on_the_floor_laughing: |
:rofl: |
ROLLING ON THE FLOOR LAUGHING |
| 🤔 | :curious: |
:thinking: |
:thinking_face: |
:thinking: |
THINKING FACE |
| 😆 | :amused: |
:laughing: |
:laughing: |
:laughing: |
SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES |
| 😉 | :coy: |
:wink: |
:wink: |
:wink: |
WINKING FACE |
| 😜 | :mischievous: |
:stuck_out_tongue_winking_eye: |
:stuck_out_tongue_winking_eye: |
:stuck_out_tongue_winking_eye: |
FACE WITH STUCK-OUT TONGUE AND WINKING EYE |
| 😛 | :playful: |
:stuck_out_tongue: |
:stuck_out_tongue: |
:stuck_out_tongue: |
FACE WITH STUCK-OUT TONGUE |
Note: There’s a lot more than this, these are just a sample.
In each case I think the Riot one misrepresents what the person was trying to express by renaming it away from the emoji name. Chat is all about communication and I feel that these editorialised short names can communicate emotions that the original author did not intend. Sticking with the more literal description like other platforms leaves more room for interpretation and versatility of the emoji.
Version information
- Platform: web (in-browser)
For the web app:
- Browser: Firefox 76.0.1
- OS: Arch Linux
- URL: private (modular.im) riot-web version: v1.6.2
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 16
- Comments: 15 (13 by maintainers)
Commits related to this issue
- Update Emojibase and switch to IamCal (Slack-style) shortcodes for consistency with shortcodes commonly used by other platforms, as discussed in https://github.com/vector-im/element-web/issues/13857.... — committed to robintown/matrix-react-sdk by robintown 3 years ago
- Update Emojibase and switch to IamCal (Slack-style) shortcodes for consistency with shortcodes commonly used by other platforms, as was decided in https://github.com/vector-im/element-web/issues/1385... — committed to robintown/matrix-react-sdk by robintown 3 years ago
- Merge tag 'v3.27.0' into wreck/v3.27.0-wrecked * Sanitize untrusted variables from message previews before translation Fixes vector-im/element-web#18314 * Fix editing of `<sub>` & `<sup`> & `<u>` [\#... — committed to williamkray/matrix-react-sdk by deleted user 3 years ago
- Merge tag 'v1.7.34' into develop * Sanitize untrusted variables from message previews before translation Fixes vector-im/element-web#18314 * Fix editing of `<sub>` & `<sup`> & `<u>` [\#6469](https://... — committed to williamkray/element-web by deleted user 3 years ago
- Merge tag 'v1.7.34' into build * Sanitize untrusted variables from message previews before translation Fixes vector-im/element-web#18314 * Fix editing of `<sub>` & `<sup`> & `<u>` [\#6469](https://gi... — committed to boba-best/element.boba.best by BBaoVanC 3 years ago
we decided in #element-dev to swap the default dialect for the slack-style dialect (rather than import both and waste space with 500K of JSON).
You wouldn’t have to break muscle memory, as the old emoji codes (
:curious:) can still “map” onto newer codes, we’d just have to put the legacy set on the “older” codes, and have another set of emoji shortcodes be the “front” of those codes.For instance, with the legacy emojibase set,
:curious:and:thinking:both point to the same emoji, but:curious:has a higher precedence, so it comes first (and shows as the canonical name), we switch the “main” set to github (i hope) and have the legacy emojibase set have a lower precedence, so that way 🤔 still shows up when you do:curious:, it wont be a hard break for muscle memory.We could also add support for slack and “joypixels” (discord) emojis this way, as people coming from slack would have that muscle memory, and emojibase can just recognise those “lower priority” shortcodes.
(PRs very welcome to do so!)
See its size in proportion to other things; its almost as big as the subset of tree-shaken lodash we import. It is larger than CommonMark.
That would mean doubling (or more) the size of the shortcodes JSON we’re including which should be avoided as our bundle size is already too large.
Seems like emojibase now supports multiple “dialects” of shortcodes we can pick from https://emojibase.dev/emojis/?shortcodePresets=emojibase-legacy so it falls down to a Product decision if we want to break muscle memory of existing users and which to choose