Unbluring web font icons: Response to GitHub's Octicons post
bens.me.uk
bens.me.uk
End-users don't really care about "blurry" (i.e. anti-aliased) icons, since all their text is rendered the same way. They only care if the icons aren't legible.
Much better than trying to hack hard pixel edges, would be not to cram so much stuff into an icon in the first place. Examples:
- Instead of a dogeared document with lines on it (indicating text), just use a blank dogeared document
- Instead of a book+bookmark icon, just use the bookmark part, or just the book part, depending on what the icon is for
- Instead of slapping a "+" onto an existing icon (e.g. on top of a book with a bookmark, to indicate "new repository" on Github), just use a "+" icon by itself, and ensure the context makes it clear that we're talking about a repository
GitHub tried to cram way too much information into a lot of their icons, and it's basically useless IMHO. Icons shouldn't be self-contained complex symbol languages; they should be simple and depend on context for full meaning. They're not sentences, they're signposts.
But to improve the quality on the desktop in other browsers, you can use a canvas element. And you don't lose anything over image icons when zooming.
How many people have less than perfect eyesight? I suspect very many.
On Windows an unhinted TrueType text font looks horrid, an unhinted Postscript font is ok.
So, if you want an unhinted font, because you're using icons, just use TrueType shapes and don't hint them (like Font Awesome seems to do) (This doesn't cover the native mac renderer, it ignores any hints and does all the work itself)
http://t.cem.re/post/21179547863/the-secret-to-custom-sharp-...
In FF 13, IE 8, and Chrome (21.0.1180.15 dev-m) on Windows XP, I'm not seeing blurred or flattened edges with Font Awesome at all.
Actually, I'm not seeing any improvements in your "Web font icons rendering proof of concept" demo with either. Before and after look the same here for FF and IE. For Chrome, the after column is blank. (?)
I do see the blurriness in your PNG graphic on your page, so it's apparently not my eyes that are to blame: Safari looks good; FF, bad; IE9, fair.
You need to look at both window.devicePixelRatio and canvasContext.webkitBackingStorePixelRatio to detect if you need to do manual pixel-doubling.
If it's possible to detect the zoom level and rerender, it should be possible to work around this.