As fontes da web são essenciais para o design e a identidade visual de um site, mas se não forem otimizadas,
podem impactar negativamente o desempenho. Vamos explorar como usar font-display
, pré-carregar
fontes e considerar fontes variáveis para garantir que seu site carregue rapidamente sem sacrificar a estética.
font-display
para Controlar o Carregamento de FontesA propriedade font-display
permite controlar como as fontes são exibidas enquanto estão sendo
carregadas. Isso evita problemas como "flash de texto invisível" (FOIT) ou "flash de texto não
estilizado" (FOUT).
@font-face {
font-family: 'MyFont';
src: url('/fonts/myfont.woff2') format('woff2');
font-display: swap; /* Controla o comportamento de carregamento */
}
font-display
auto
: Comportamento padrão do navegador (geralmente causa FOIT).block
: Oculta o texto até que a fonte seja carregada (FOIT).swap
: Exibe uma fonte alternativa até que a fonte personalizada seja carregada
(evita FOIT).fallback
: Combina block
e swap
, mas com um tempo
limite menor.optional
: Tenta carregar a fonte, mas usa a alternativa se a fonte não estiver
pronta rapidamente.@font-face {
font-family: 'MyFont';
src: url('/fonts/myfont.woff2') format('woff2');
font-display: swap; /* Exibe uma fonte alternativa enquanto a fonte personalizada carrega */
}
O pré-carregamento de fontes garante que elas sejam carregadas o mais cedo possível, melhorando o tempo de exibição do texto.
<link rel="preload" href="/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin>
rel="preload"
: Indica que o recurso deve ser carregado
prioritariamente.as="font"
: Especifica que o recurso é uma fonte.crossorigin
: Necessário para fontes hospedadas em domínios diferentes (CDNs).
<head>
<link rel="preload" href="/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin>
<style>
@font-face {
font-family: 'MyFont';
src: url('/fonts/myfont.woff2') format('woff2');
font-display: swap;
}
body {
font-family: 'MyFont', sans-serif;
}
</style>
</head>
Fontes variáveis permitem armazenar múltiplos pesos e estilos em um único arquivo, reduzindo o número de solicitações HTTP.
@font-face {
font-family: 'MyVariableFont';
src: url('/fonts/myvariablefont.woff2') format('woff2-variations');
font-weight: 100 900; /* Define a faixa de pesos suportados */
font-stretch: 75% 125%; /* Define a faixa de largura suportada */
}
@font-face {
font-family: 'MyVariableFont';
src: url('/fonts/myvariablefont.woff2') format('woff2-variations');
font-weight: 100 900;
font-stretch: 75% 125%;
}
body {
font-family: 'MyVariableFont', sans-serif;
font-weight: 400; /* Peso normal */
}
h1 {
font-weight: 700; /* Peso bold */
}
Aqui está um exemplo completo que combina todas as técnicas:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Otimização de Fontes</title>
<link rel="preload" href="/fonts/myvariablefont.woff2" as="font" type="font/woff2" crossorigin>
<style>
@font-face {
font-family: 'MyVariableFont';
src: url('/fonts/myvariablefont.woff2') format('woff2-variations');
font-weight: 100 900;
font-stretch: 75% 125%;
font-display: swap;
}
body {
font-family: 'MyVariableFont', sans-serif;
font-weight: 400;
}
h1 {
font-weight: 700;
}
</style>
</head>
<body>
<h1>Olá, Mundo!</h1>
<p>Este é um exemplo de otimização de fontes da web.</p>
</body>
</html>
Otimizar fontes da web é crucial para melhorar o desempenho do seu site. Use font-display
para
controlar o carregamento, pré-carregue fontes críticas e considere fontes variáveis para reduzir solicitações
HTTP. Pequenas otimizações podem resultar em grandes ganhos de desempenho!