Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove emojione #9281

Closed
1 task done
turt2live opened this issue Mar 26, 2019 · 13 comments · Fixed by matrix-org/matrix-react-sdk#2995
Closed
1 task done

Remove emojione #9281

turt2live opened this issue Mar 26, 2019 · 13 comments · Fixed by matrix-org/matrix-react-sdk#2995

Comments

@turt2live
Copy link
Member

turt2live commented Mar 26, 2019

@nadonomy
Copy link
Contributor

For completeness, the rationale for this is:

  • Using custom emoji greatly impacts performance
  • Emoji One changed their license structure, so now in order to upgrade we need to purchase a costly license
  • Originally, the intention was to have cross-platform parity for emoji, however this was never implemented on mobile, and is no longer believed to be high enough priority to justify neither the maintenance or license cost
  • We think it's a better use of resources all round for us to concentrate on building awesome app features, and let OS vendors concentrate on implementing emoji

@t3chguy
Copy link
Member

t3chguy commented Mar 26, 2019

Would solve #7356

@turt2live
Copy link
Member Author

it would solve a lot of issues, which I'll gather later today

@t3chguy
Copy link
Member

t3chguy commented Mar 26, 2019

I was considering ripping this out later today, but we may need to leave the dependency in at least for now for the :) -> 😄 lookup map it provides

@turt2live
Copy link
Member Author

I'd recommend swinging by #riot-dev so that @lampholder and co. can help communicate scope, urgency, etc as well as be kept in the loop :)

@evoL
Copy link

evoL commented Mar 26, 2019

Heads up — if you want to remove EmojiOne and still keep a lookup table, here's a good source: https://github.com/iamcal/emoji-data

@aaronraimist
Copy link
Collaborator

Should fix #7398 as well

@koyuawsmbrtn
Copy link

Just saying Twemoji is freely available. Mastodon uses it too so no need to remove EmojiOne.

@jryans
Copy link
Collaborator

jryans commented May 15, 2019

Marking this as potentially part of the reactions project, as that is using native emoji, which means there's two sets of emoji in app (emojione and native) until we do this work.

@ara4n
Copy link
Member

ara4n commented May 17, 2019

So having played with reactions in the wild a bit, it's become very apparent that native emoji aren't up to the job:

  • They are wildly inconsistent across platforms, which is particularly painful for reactions.
  • Chances are high on linux that you don't have a recent emoji font installed anyway.

So, I took a look at whether we could switch for twemoji instead.

Turns out that these days, colour font support (via microsoft-style COLR/CPAL extensions to OTF) have landed in all the main browsers, as of last year, and conveniently the nice people at mozilla have written something which takes the twemoji SVG set (originally emojione, but they switched to twemoji a few years ago) and mangles them into such a font: https://github.com/mozilla/twemoji-colr/, which they then use for consistent emoji fallback on FF.

with the minor catch, that it's currently broken.

however, i think i got to the bottom of it: mozilla/twemoji-colr#50

The resulting WOFF2 is 400KB, which I think we can handle fine.

So, i think we should rip out emojione with extreme prejudice, set twemoji as the fallback font after Nunito, and bask in the happiness of consistent emoji everywhere. Mobile can use it too (cc @manuroe).

Finally, we'll need to switch to emojibase-data or something to populate up the emoji autocomplete, at least until we switch to a better picker like emojimart.

@ara4n
Copy link
Member

ara4n commented May 18, 2019

worth noting this will remove hoverover tooltips on emoji to tell you what the :smiley: style representation is, unless we do something new with JS onhoverover to do it manually.

@ara4n
Copy link
Member

ara4n commented May 19, 2019

heads up that i started this over at https://github.com/matrix-org/matrix-react-sdk/tree/matthew/twemoji by blindly switching things over. haven't tried building/testing/profiling/optimising it yet.

Edit: now ready for review at matrix-org/matrix-react-sdk#2995

@martindale
Copy link

Heads up — if you want to remove EmojiOne and still keep a lookup table, here's a good source: https://github.com/iamcal/emoji-data

Thanks! Super helpful.

su-ex added a commit to SchildiChat/element-web that referenced this issue Sep 28, 2022
* Element Call video rooms ([\element-hq#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\element-hq#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\element-hq#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\element-hq#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\element-hq#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\element-hq#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\element-hq#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\element-hq#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq#17641.
* Implement MSC3575: Sliding Sync ([\element-hq#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\element-hq#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\element-hq#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\element-hq#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\element-hq#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\element-hq#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq#23275.
* Fix memory leak caused by unremoved listener ([\element-hq#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\element-hq#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\element-hq#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\element-hq#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\element-hq#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\element-hq#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\element-hq#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq#21651.
* Fix html export not including images ([\element-hq#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\element-hq#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\element-hq#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\element-hq#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq#23161.
* Fix issue with quiet zone around QR code ([\element-hq#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq#23199.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants