Довольно уверен, что это связано с тем, как Chrome уменьшает изображения. Например, если открыть инструменты разработчика в браузере и установить размер эмодзи на его собственные (в данном случае 72×72 пикселя), изображение будет чётким:
Ещё несколько примеров:
72 / 36 = 2 чёткий эмодзи
72 / 37 = 1,945 размытый эмодзи
Мы отображаем эмодзи размером 20 пикселей, поэтому:
72 / 20 = 3,6 размытый эмодзи
В теории эта проблема исчезнет, если использовать изображения эмодзи размером 60 пикселей вместо 72 пикселей. Хотя интересно, не связано ли это с плотностью пикселей и масштабированием: некоторые устройства используют масштаб 2X, некоторые — 3X
SVG и цветные шрифты стали бы лучшим решением, но я всё ещё выступаю за решение только на CSS. Хотя CSS — не моя специализация, это, похоже, вариант с наименьшим количеством проблем.