Fontes Web em Dispositivos Móveis: Estratégias de Carregamento e Desempenho
Fontes Web em Dispositivos Móveis: Estratégias de Carregamento e Desempenho
O Problema das Fontes Web em Celulares
Imagine que você está lendo um livro, mas o livreiro demora para entregar as páginas. Enquanto espera, você vê apenas espaços em branco. Depois que as páginas chegam, o texto finalmente aparece. Isso é exatamente o que acontece com fontes web em celulares!
Fontes web são arquivos que seu navegador precisa baixar da internet para exibir textos com estilos personalizados. Em dispositivos móveis, essa espera pode ser longa porque:
- A conexão é mais lenta que em computadores
- Os arquivos de fonte são pesados (podem ter centenas de kilobytes)
- O navegador precisa baixar, processar e renderizar a fonte antes de mostrar o texto
Três Estratégias Principais de Carregamento
1. Font Display: Controlar o Que Mostrar Enquanto EsperaA propriedade font-display é como um plano de contingência. Ela diz ao navegador: "Se a fonte não chegar a tempo, mostre isso enquanto espera".
@font-face {
font-family: 'MinhaFonte';
src: url('minha-fonte.woff2') format('woff2');
font-display: swap;
}
As opções principais são:
- swap: Mostra uma fonte padrão imediatamente, depois troca quando a fonte web chega (melhor para textos importantes)
- fallback: Espera um pouco (100ms), depois mostra a fonte padrão. Se a fonte web chegar, troca depois
- optional: Mostra a fonte padrão e só usa a web se ela chegar rápido (bom para conexões lentas)
Diferentes formatos de fonte têm tamanhos diferentes. Em celulares, cada kilobyte importa!
@font-face {
font-family: 'MinhaFonte';
src: url('fonte.woff2') format('woff2'),
url('fonte.woff') format('woff');
}
Ranking de eficiência:
- WOFF2: Mais comprimido, ideal para mobile (use sempre que possível)
- WOFF: Comprimido, compatível com navegadores antigos
- TTF/OTF: Não comprimidos, muito pesados para mobile
Você não precisa de todas as letras do alfabeto em um celular. Se seu site só usa português, por que baixar caracteres chineses?
@font-face {
font-family: 'MinhaFonte';
src: url('fonte-latin.woff2') format('woff2');
unicode-range: U+0000-00FF;
}
O unicode-range diz ao navegador: "Use esta fonte apenas para estes caracteres". Isso reduz o tamanho do arquivo em até 70%!
Medindo o Impacto no Desempenho
Como saber se suas fontes estão prejudicando a experiência? Existem duas métricas importantes:
- FOUT (Flash of Unstyled Text): O texto aparece em fonte padrão, depois muda para a web font
- FOIT (Flash of Invisible Text): O texto fica invisível enquanto a fonte carrega
Em celulares, FOUT é melhor que FOIT porque o usuário vê algo imediatamente.
Exemplo Prático Completo
/* Estratégia otimizada para mobile */
@font-face {
font-family: 'Roboto';
src: url('roboto-latin.woff2') format('woff2');
font-display: swap;
unicode-range: U+0000-00FF;
font-weight: 400;
font-style: normal;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
Este código:
- Usa WOFF2 (mais eficiente)
- Aplica
swappara mostrar texto rapidamente - Carrega apenas caracteres latinos
- Tem uma fonte padrão como fallback
Dicas Finais para Mobile
- Limite a 2-3 fontes web por página
- Prefira fontes do sistema (mais rápidas) quando possível
- Use
font-display: swappara textos críticos - Comprima e faça subset de todas as fontes
- Teste em conexões 4G lentas, não apenas WiFi
Key Takeaways
- Fontes web são arquivos pesados que atrasam a renderização em celulares; use font-display: swap para mostrar texto imediatamente com uma fonte padrão enquanto a fonte web carrega
- Escolha o formato WOFF2 (mais comprimido) e aplique subsetting com unicode-range para carregar apenas os caracteres necessários, reduzindo o tamanho do arquivo em até 70%
- Meça o impacto usando métricas como FOUT e FOIT; em mobile, é melhor mostrar texto rapidamente em uma fonte padrão (FOUT) do que deixá-lo invisível enquanto carrega (FOIT)
Enjoyed this reading?
SharpStack delivers personalized tech readings every day, calibrated to your skill level. 5 minutes a day to stay sharp.
“Stay sharp. At your pace. Everyday.”