- Affected version
- 2.3.13
After upgrading to XenForo 2.3, I noticed a rendering issue with the emoji picker in the editor.
When the smilie/emoji menu is opened for the first time after loading or refreshing a page, the emojis are briefly displayed in their native/system appearance (similar to keyboard emojis). A moment later they are replaced by the configured JoyPixels images.
Once the menu has been opened, closing and reopening it on the same page does not show the issue again. After refreshing the page, the effect can be reproduced again on the first opening.
I have done several tests to rule out a style or server-related issue:
Inspecting one of the emojis in the picker shows markup similar to:
This makes me wonder whether the native Unicode character from the alt attribute is temporarily being rendered while the lazy-loaded JoyPixels image is being initialized/decoded on the first opening of the menu.
Steps to reproduce:
Using Native emoji avoids the rendering transition, but this is not an ideal workaround because some emojis are not available/rendered on all operating systems and devices.
Is this first-open native-to-JoyPixels transition expected behavior in XenForo 2.3, or could the JoyPixels images be initialized/decoded in a way that prevents the native fallback from briefly becoming visible?
The issue is mainly visual, but it is quite noticeable when opening the emoji picker for the first time.
I should note that we performed an update from version 2.2.3, switched hosting providers, and moved to a new server.
Best regards,
Chris
When the smilie/emoji menu is opened for the first time after loading or refreshing a page, the emojis are briefly displayed in their native/system appearance (similar to keyboard emojis). A moment later they are replaced by the configured JoyPixels images.
Once the menu has been opened, closing and reopening it on the same page does not show the issue again. After refreshing the page, the effect can be reproduced again on the first opening.
I have done several tests to rule out a style or server-related issue:
- The issue also occurs with an unmodified XenForo default style.
- With JoyPixels selected as the Emoji style, the issue is reproducible.
- Switching the Emoji style to Native emoji makes the effect disappear completely.
- Switching back to JoyPixels makes it return.
- The editor/smilies-emoji request itself is fast (around 100–170 ms in my tests).
- The effect can also occur when there are no new network requests for the emoji images at the moment the picker is opened, so this does not appear to be simply a slow CDN connection.
Inspecting one of the emojis in the picker shows markup similar to:
HTML:
<img class="smilie smilie--emoji"
src="https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png"
loading="lazy"
width="64"
height="64"
alt="🙂"
title="Smile :)">
This makes me wonder whether the native Unicode character from the alt attribute is temporarily being rendered while the lazy-loaded JoyPixels image is being initialized/decoded on the first opening of the menu.
Steps to reproduce:
- Configure XenForo to use JoyPixels as the Emoji style.
- Load or refresh a page containing the XenForo editor.
- Open the smilie/emoji picker for the first time.
- Watch the emojis immediately after the menu opens.
- Native/system-style emojis are briefly visible before being replaced by the JoyPixels versions.
- Close and reopen the picker. The effect normally no longer occurs.
- Refresh the page and open the picker again. The effect returns.
Using Native emoji avoids the rendering transition, but this is not an ideal workaround because some emojis are not available/rendered on all operating systems and devices.
Is this first-open native-to-JoyPixels transition expected behavior in XenForo 2.3, or could the JoyPixels images be initialized/decoded in a way that prevents the native fallback from briefly becoming visible?
The issue is mainly visual, but it is quite noticeable when opening the emoji picker for the first time.
I should note that we performed an update from version 2.2.3, switched hosting providers, and moved to a new server.
Best regards,
Chris