Шрифты со значками восхитительны, но…
они размыты. В них нет настоящей, попиксельной резкости. Да, использование

Субпиксельное сглаживание превосходно срабатывает на кривых линиях, но не на прямых — они просто перестают выглядеть чёткими. В теории можно было бы использовать хинтование шрифтов, чтобы контуры значков приближались к целопиксельным. Но до сих пор я не знаю ни одного такого шрифта значков, который бы так и сделал. Я также догадываюсь, что хинтование потребовало бы существенного дополнительного труда автора шрифта и заметно увеличило бы объём файла.
Довесок: @thijs подмечает, что хинтование работает только в тех системах, которые его поддерживают — а в OS X, iOS и Android не поможет.
SVG спешит на помощь?
Да нет, на самом-то деле. У использования

На практике использованием только кратных размеров можно обойтись. Создаёте все свои значки в основном размере (скажем, 16 пикселов), а на крупных кнопках используете увеличенную версию в размере 32 пиксела или 48 пикселов.
Довесок: @erikdahlstrom да @Marco_Rosella упомянули свойство «shape-rendering: crispEdges». Если его наложить на отдельные прямоугольники в SVG, то оно принудит их стать целопиксельными. Пропорции могут исказиться, зато чёткость останется. Можете попробовать в jsFiddle.
Нет проблем? Хотел бы я этого; но есть и другие трудности:
- Не так много хороших наборов значков в SVG.
- Нехватка средств создания
SVG-спрайтов.
- Нельзя менять цвет значка при помощи CSS. То есть можно, но только если код SVG — внутренний (inline), а меня добавление кусков SVG в разметку документа не радует.
- Нельзя накладывать эффекты — например, тень. (Есть фильтры в SVG, но их, опять же, с лёгкостью через CSS не поменяешь.)
- И вот крупнейший облом: плохая поддержка в браузерах Firefox и Opera, когда SVG используется в качестве background-image. Оказывается, SVG на самом деле преобразуется в растр, и когда размер фона меняется, то браузер его не перерисовывает — только растягивает, и фон выглядит необыкновенно размытым. Язык не повернётся назвать это масштабируемой векторной графикою.

Вот фиддл, можете сами проверить.
Можно, конечно, использовать inline SVG или поместить SVG в элемент <img>, но тогда SVG сложно сделать спрайтом. Разве что размещать элементы друг в друге и внешнему задать «overflow: hidden»? Но это всё же не такое прямое и гибкое решение, как «background-image».
Довесок: David Bushell нашёл обходной путь, делая размер SVG крупным и прибегая только к уменьшению, а не к увеличению.
PNGs
У многих шрифтов со значками также есть
Так что же делать? Как я и говорил… панацеи нету, но…
Вот небольшой рецепт, который может помочь.
- Начиная новый проект, в разработке и развитии прототипа используйте шрифты со значками. Ничто не сравнится со свободою быстрой и нетрудной замены значков, их перекрашивания, отбрасывания тени и наложения других эффектов.
- Затем в какой-то момент придётся принять решение: стоит ли перейти на значки в формате SVG или PNG со всеми их недостатками. Решить не так просто; всё зависит от требований и приоритетов. Может, даже план нарисовать
придётся ;-) Вы должны быть готовы смириться с вышеперечисленными ограничениями форматов. Поглядите, уложится ли дополнительная работа в имеющийся бюджет, сосчитайте, сколько всего значков, понадобятся ли они в различных размерах или нет.
Одного формата картинок, годящегося для всех применений, нет на свете; возможно, никогда и не будет. Так что почему бы не использовать их вперемешку? Возможно, лучше всего использовать PNG (во множестве различных размеров) для высокочёткого разноцветного логотипа, а значки в SVG для навигационных кнопок одного и того же размера (но выглядящих чётче на сетчаточных дисплеях). Отзывчивый inline SVG для графиков и диаграмм, шрифт со значками для всех ваших кнопок различного размера. Мы ведь примерно так и действуем.
Взгляд в грядущее
Есть ли выход из нынешней томительной ситуации с её нечёткими значками? Ну… давайте просто обождём немного… как только повсюду будут сетчаточные дисплеи (да, пару лет это займёт), проблема субпиксельной чёткости окончится, а браузеры, возможно, исправят свои проблемы увеличения SVG, и тогда все мы отпразднуем появление значков, никак не зависящих от разрешения? Но и тогда нам придётся решать проблему зависимости детальности от размера.

