Formato de fonte web aberta (.woff)

Recomendação Padrão

Web Open Font Format (WOFF) é o formato aberto de fontes para web de primeira geração, recomendado pelo W3C. Ele armazena fontes TrueType ou OpenType padrão com compactação zlib e metadados XML de licenciamento.

Inspeção e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos WOFF pela sequência inicial de bytes:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

Assinatura do arquivo em bytes (magic bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos WOFF pela sequência inicial de bytes:

ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):

77 4F 46 46

REPRESENTAÇÃO ASCII: wOFF

Padronização: Recomendação W3C (2012)

Especificações técnicas

Estrutura do contêinerCabeçalho WOFF de 44 bytes, diretório de tabelas, dados das tabelas compactados com zlib e, opcionalmente, metadados estendidos e dados privados
CompressãoCompactação Deflate (zlib) aplicada a cada tabela de fontes
Ordem dos bytes (endianness)Big-Endian (padrão SFNT)
Espaços de corHerdado das tabelas de fontes subjacentes
Canais e EstruturaContornos de glifos TrueType ('glyf') ou PostScript ('CFF '), métricas e recursos tipográficos
Dimensões MáximasAté 65.535 glifos por arquivo de fonte
TransparênciaHerdado do formato de fonte subjacente
Streaming e ProgressivoA descompressão tabela por tabela permite o carregamento de fontes em fluxo (streaming)

Matriz de comparação técnica: WOFF e formatos concorrentes

Atributo técnicoWOFF (Atual)WOFF2TTFOTF
Codificador de compressãoDeflate (zlib) por tabelaBrotli com pré-processamento de tabelaSFNT não compactadoSFNT não compactado
Assinatura MágicawOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Tamanho Relativo do Arquivo~40% menor que o TTF~60% menor que o TTFPadrão de referência (100%)Padrão de referência (100%)
Ambiente de DestinoNavegadores web legados (IE9+, Safari 5+)O suporte varia conforme o navegador.Sistemas operacionais de desktopEditoração eletrônica e impressão

Modos comuns de corrupção e guia de recuperação com editor hexadecimal

Aviso no console do navegador: 'Failed to decode downloaded font: OTS parsing error'.

Causa principal: Incompatibilidade no comprimento declarado da tabela não compactada ou fluxo zlib danificado.

Recuperação: Recomprima as tabelas de fontes ou converta para WOFF2 usando o conversor de fontes do File2File.app.

Análise de segurança e vetores de ataque a analisadores

Os navegadores web analisam arquivos WOFF baixados de domínios web não confiáveis usando o OpenType Sanitizer (OTS) para bloquear cargas úteis de exploração.

Vetores de ataque conhecidos

  • Leitura excessiva de buffer (over-read) durante a descompressão zlib de pedaços corrompidos da tabela de fontes.
  • Campos de comprimento de tabela incompatíveis acionando estouros de buffer de heap em renderizadores de fontes.
  • Negação de serviço por esgotamento de memória durante a expansão da tabela de fontes.

Melhores práticas defensivas: Sempre sanitize arquivos WOFF baixados com o OTS antes de passá-los para os mecanismos de fontes do sistema operacional.

Origens históricas e marcos

2018Substituído pelo WOFF2 como o padrão de fontes web preferido devido à compressão Brotli superior.
2012A W3C publica oficialmente o WOFF 1.0 como uma Recomendação de Padrão Web formal.
2009Henrik Rydgård, Tal Leming e Jonathan Kew especificam o WOFF para resolver questões de licenciamento de fontes web.

Principais vantagens

  • Reduz em 30% a 50% o tamanho de fontes para web em comparação com arquivos TTF ou OTF sem compactação.
  • Compatibilidade retroativa universal em todos os navegadores web de desktop e dispositivos móveis lançados desde 2011.
  • Inclui um bloco de metadados XML opcional para licenciamento de fontes, créditos de autoria e informações de direitos autorais da casa tipográfica.

Limitações técnicas e desvantagens

  • Foi sucedido pelo WOFF2, que gera arquivos cerca de 30% menores com o algoritmo Brotli.
  • Não pode ser instalado diretamente em sistemas operacionais de desktop (Windows/Mac) sem conversão para TTF/OTF.
  • O algoritmo de compressão zlib mais antigo é menos eficiente do que os codificadores de entropia modernos.

Curiosidades técnicas

  • Os bytes mágicos do WOFF 1.0 são 'wOFF' (0x77 0x4F 0x46 0x46), enquanto o WOFF 2.0 usa 'wOF2'.
  • As fundições de tipos passaram a permitir o uso de suas fontes na web com a criação do WOFF, cujo contêiner especializado distinguia fontes para web de fontes para desktop que podiam ser copiadas.
  • O WOFF foi implementado originalmente no Firefox 3.6 em 2010 antes de se tornar uma recomendação oficial da W3C.

Perguntas técnicas frequentes

Qual é a diferença entre WOFF e WOFF2?

O WOFF usa compressão zlib, enquanto o WOFF2 usa o algoritmo Brotli mais recente do Google e transformações de tabela, resultando em arquivos que são cerca de 30% menores que o WOFF.

Como posso converter uma fonte WOFF para TTF ou OTF para uso no desktop?

Você pode converter arquivos WOFF em fontes de desktop instaláveis TTF ou OTF em segundos usando o File2File.app diretamente no seu navegador web.

Eu ainda preciso do WOFF 1.0 em sites modernos?

Não. Todos os navegadores modernos suportam WOFF2 nativamente. O WOFF 1.0 só é necessário se você precisar dar suporte a navegadores legados obsoletos como o Internet Explorer.