A discussion on Blurry Emojis on Chrome reveals a long-standing issue with emojis appearing blurry due to Chrome’s downscaling. Arthri shares a potential CSS-only solution:
awesomerobot explains that the issue is related to Chrome’s image downscaling, and provides examples of how emojis become blurry when rendered at certain sizes. They suggest using 60px images for emojis instead of 72px to resolve the issue.
Others propose alternative solutions, including using color fonts (gerhard) and SVGs (Decorbuz). However, Arthri advocates for the CSS-only solution as the least breaking one.
Pretty sure this is related to how Chrome downscales images, if for example, you open up the browser inspector and set an emoji to the intrinsic dimensions (72px square in this case)… the image is crisp:
Some more examples:
72 / 36 = 2 crisp emoji
72 / 37 = 1.945 blurry emoji
We render emoji at 20px, so:
72 / 20 = 3.6 blurry emoji
In theory this would go away if we used 60px images for emoji instead of 72px? Though I wonder if this is related to pixel density/scaling… some devices use 2X, some use 3X
SVGs and color fonts would be a better way to solve them, but I’m still vouching for the CSS-only solution, CSS is not my expertise but that seems like the least breaking one