terça-feira, 10 de novembro de 2009

Alternativas para aposentar a Arial (e Times, Verdana …)

post-chamada-23

Buscar inspiração, desenhar, arquitetar a informação, fazer o recorte e por fim morrer em 5 ou 6 fontes. Uma frustração que não vem de hoje. Uma solução é recorrer ao Flash. Vamos mostrar algumas soluções e técnicas que permitem usar outras fontes em seu site, garantindo que seus visitantes vão viualiza-las. Todas gratuitas ;-)

sIRF

Bastante conhecida, desenvolvida por Mike Davidson e Mark Wubben, sIRF (Scalable Inman Flash Replacement) usa javascript para indentificar se o usuário tem o flash plugin instalado (se não tiver, exibe uma fonte comum) e flash para substituir o texto pela fonte personalizada.

Além de ser bastante compatível (IE5+, Safari, Firefox, Opera7+) não há prejuízo na acessibilidade e não prejudica as técnicas de SEO já que o código não é alterado. Veja um exemplo.

Como funciona

A primeira coisa, é baixar a última versão no site da documentação. Eu usei a versão 3 r436, a versão 2 não abre no Flash CS4 e você vai precisar pelo menos da versão 8 Pro (ou superior).

Flash: Abra o arquivo sifr.fla (pasta flash) e edite o MovieClip principal (identificado como holder),  remova o texto padrão e configure os atributos da fonte (bold, italic e regular, sublinhado não). Selecione a fonte e os caracteres extras em Charactere Embidding (acentos, pontuação).  Exporte o filme pra swf configurando os seguintes parâmetros:

  • Flash 8 (AS2),
  • Load Order  para BottomUp
  • Protect the movie from import
  • Compress Movie

HTML: Faça as chamadas para o CSS e Javascript do sIFR

<link rel="stylesheet" href="sIFR/sifr.css" type="text/css">
<script src="sIFR/sifr.js" type="text/javascript"></script>
<script src="sIFR/sifr-config.js" type="text/javascript"></script>

Abra na pasta js, o arquivo sifr-config.js e:

  • Configure o caminho do swf exportado
  • Ative o objeto
  • Diga quem você quer substituir (e por quem)
var fonteVirtual = { src: '../sifr3-r436/flash/sifr.swf', transparent: true };
sIFR.activate(fonteVirtual);
sIFR.replace(fonteVirtual, {
selector: 'h1',
css: '.sIFR-root { background-color: #F9F9F9; color: #FF0000; }'
});

Claro que você tem muitas outras opções para configurar, veja aqui.

CSS: Agora basta configurar a classe referente ao sIFR

.sIFR-active h1 {
visibility: hidden;
font-family: Verdana;
line-height: 1em;
font-size: 18px;
}

Apartir de agora atodo elemento h1 será substituída pela fonte configurada.

Realizando alguns testes, o custo disso será o seguinte:

  • sifr.css (1kb)
  • sifr.js (28kb)
  • sifr-config.js (1kb)
  • sifr.swf (8kb)

38kb no total e alguns arquivos podem variar.

Veja o sIFR funcionando

FontBurner

Fontburner é open-source e utiliza sIFR, mas sua implementação é bem mais simples. Dispensa o Flash, configuração de javascript e css, conversão de fonte. Não prejudica o site nas ferramentas de busca.

Como funciona

Praticamente todos os recursos ficam no servidor do FontBurner e o que você precisa fazer é apenas escolher a sua fonte no repositório do site e colar o código gerado em sua página.

Por padrão, elementos H[1...6] já aparecem com a fonte substituída. Mas outros elementos também podem ser alterados atribuindo à classe css do ememento o nome da fonte. Ex,:

<span class="babelsans_bold" style="font-size:11px;">Forcei a barra com esse span que também usa a fonte BabelSans</span>

Com FontBurner  você deve escolher entra as mais de 1000 fontes disponíveis no site que fornece também um plugin para wordpress e o próprio arquivo .swf pra usar com o sIFR se necessário.

Veja funcionando

TypefaceJS

TypefaceJS é uma biblioteca javascript open-source, cross-browser (Firefox 1.5+, Safari 2+ e Internet Explorer 6+) . Utiliza o recursos do próprio navegador para desenho de vetor (<canvas> e SVG para Firefox, Safari e Opera e VML para IE). Aceita seleção de texto e copiar-colar.

Como funciona

Converta a fonte escolhida (OpenType ou TrueType) para o formato typeface javascript. Nele está as coordenadas do desenho da fonte. Use o próprio conversor do site.

Conversor de fonte do TypefaceJS

Em seguida, importe  a biblioteca do typeface e o script da fonte convertida, nesta sequência. Se houver uma folha de estilo, deve vir antes dos scripts.

<link rel="stylesheet" type="text/css" href="css/estilo.css">
<script src="js/typeface-0.13.js"></script>
<script src="js/gentilis_bold.typeface.js"></script>

Aplique a classe typeface-js nos elementos que deseja aplicar a fonte. Recomendo que procure aplicar apenas em título já que existe uma tempo de processamento.

Limitações

TypefaceJS funcionou muito bem. A sua biblioteca nem é tão pesada (25kb na versão 0.13). Os scripts convertidos variam de acordo com a fonte escolhida. O problema encontrado foi durante a conversão das fontes. O conversor online, respeita os direitos de distribuição das fontes identificando e bloqueando se preciso. Se a fonte escolhida não se enquadrar, esqueça. Talvez haja uma solução aqui.

Veja o Typeface funcionando

Cufón

Consiste em duas partes, o gerador e sua renderização por javascript. Cufón é uma mistura de SVG, VML, JSON. Dispõe de cache pra acelerar a renderização da fonte. O arquivo da fonte convertido pra javscript é bem pequeno, de um teste que fiz deu 15kb e sua biblioteca principal 18kb (versão comprimida). Sua API bem documentada e cheio de exemplos

Como funciona

Use o generator do Cufón pra adquirir a versão SVG/JS da fonte. Faça o download da última versão da biblioteca e coloque os dois (ou mais, se houver outra fonte) script na sua página e use o comando Cufon.replace para apontar o elemento que irá receber a fonte. O parâmetro também pode ser uma querie de bibliotecas JS como Prototype, JQuery.

<script src="cufon-yui.js" type="text/javascript"></script>
<script src="wanta_500.font.js" type="text/javascript"></script>
<script type="text/javascript">
  Cufon.replace('h1');
</script>

Veja o Cufón funcionando

Facelift

“Uma alternativa ao  sIFR”. Esse é o slogan do FLIR (Facelift Image Replacement). Funciona com PHP com a biblioteca GD (para criação de imagens) gerando imagens dinamicamente.

Como funciona

A primeira coisa a fazer (depois de efetuar o download, claro!) é configurar o arquivo config-flir.php.  Diretórios, fontes, cache entre outros parâmetros. Elementos h1…h5 já são aplicados automaticamente pela função js FLIR.auto().  Importando o javascript (33kb) e definindo os elementos que serão substituídos, a nova fonte já será aplicada. Também é possível usar queries para elementos mais específicos

<script language="javascript" src="/path-to/facelift/flir.js"></script>
<script type="text/javascript">
  FLIR.init( { path: '/path-to/facelift/' } );
  // automatico para h1 e h3.special
  FLIR.auto( [ 'h1',  'h3.special'] );
  // O emelento H3 terá uma fonte 'tribal'
  FLIR.replace( 'h3' , new FLIRStyle({ cFont:'tribal' }) );
</script>

A documentaçao deixa a desejar, mas os parâmetros do config-flir.php e pelos exemplos vai tranquilo.

Como grande parte do processamento fica por conta do PHP, há uma certa demora que pode causar um comportamento estranho mas o cache ta pra tentar resolver. O interessante é que há mais flexibilidade nas conversões de fontes, além de ser mais fácil substituí-las.

Veja FLIR funcionando

Mais

Tags: ,

Sobre o autor:

Thiago Bussiki
Graduado em Desenvolvimento de Sistemas, Pós-graduando em Design de Interação pelo Instituto Faber-Ludens. Programador PHP desde 2000. Desenvolve projetos em: Ruby on Rails, Flex, Wordpress, Symfony entre outros. Mais informações no LinkedIn. Siga-me no Twitter.

Deixe uma resposta