Continuando com coisas-que-ainda-não-tinha-experimentado-a-sério, usei no mjamado.com duas web fonts do directório da Google (Cantata One para os títulos e Imprima para corpo). Já tinha usado uma ou outra nalguns projectos comerciais (e por "usado" entenda-se que a empresa tinha usado – o design não é exactamente a minha praia), mas queria ver "ao perto" o que se podia fazer com isto.
O processo é trivial e croquetes, mais ainda se aceitarmos os métodos mais simples que a própria Google recomenda. Só embati numa pequena irritação, que ainda por cima não tem solução – ironicamente, afecta outro produto da Google, o Chrome, mas apenas em Windows.
O problema é este:
Linux:
Windows:
No dobro do tamanho, para se ver melhor:
Linux:
Windows:
Como se pode ver, o rendering da fonte é uma bosta em Windows. O Chrome é o único dos "três grandes" onde isto acontece. O "porquê" de isto acontecer dava-me para meio ano de posts, mas a justificação curta é mais ou menos assim:
As fontes que usamos todos os dias (em Windows) contêm um conjunto de instruções que indicam como renderizá-la; a este conjunto de instruções chama-se, normalmente, hinting. O hinting, da forma correcta, tem de ser feito manualmente pelo designer da fonte. No entanto, a maioria dos softwares de fontes disponibiliza auto-hinting que, ajudando, não é perfeito (nem perto). As web fonts, num misto de preguiça dos designers e, sobretudo, por uma questão de poupança de largura de banda (o hinting ocupa espaço, e não é pouco), não têm ou têm a meia dúzia de instruções resultante do processo automático.
Como se justifica que funcione bem noutros sistemas operativos ou noutros browsers? É aqui que entra o problema específico do Chrome...
Voltando ao hinting – ele é usado quase em exclusivo pela tecnologia ClearType, da Microsoft; no Mac OS, o motor Quark ignora o hinting da fonte e calcula-o de novo, com métodos específicos (logo a abrir, o subpixel rendering é consideravelmente diferente do da Microsoft); em Linux, o motor usado é, habitualmente, o FreeType, que pode ser visto como um misto entre os outros dois, podendo usar o hinting da fonte, se existir, ou calculá-lo de novo automaticamente. Recentemente, a Microsoft modificou a maneira como o ClearType interage com o sistema operativo, com a API DirectWrite, que melhorou substancialmente a qualidade do render.
Como é bom de ver, o IE9 foi lançado já com suporte para DirectWrite, sendo seguido algum tempo depois pelo Firefox. O Chrome... não. E ainda não. E não têm planos para isso. E as fontes ficam horrivelmente renderizadas.
Basicamente é isto. Não tem solução. Não é previsível que tenha nos próximos tempos. Mas obrigado por jogar.
Vão pastar.