Carregamento de fontes web: font-display, preload e subsetting

Carregamento de fontes web

Carregamento de fontes web: font-display, preload, subsetting | We.Inc

Veja o que cada valor de font-display faz com um simulador de linha do tempo, depois use preload, preconnect, subsets com unicode-range e métricas de fallback ajustadas para acabar com o layout shift.

Carregar fontes rápido se resume a quatro passos: avisar o navegador sobre a fonte cedo (preconnect ou preload), enviar arquivos WOFF2 pequenos com apenas os caracteres de que você precisa, escolher um valor de font-display adequado ao texto e dimensionar a fonte de fallback para combinar, para que nada pule. Use font-display: optional quando evitar layout shift for o mais importante.

Valores de font-display em resumo

As fontes são um dos poucos recursos que podem esconder o seu texto ou empurrar o layout de um lado para o outro. Arraste o controle abaixo para definir quanto tempo uma fonte leva para chegar e veja o que cada valor de font-display mostra a cada momento, depois copie os padrões de carregamento que mantêm as páginas estáveis.

Perguntas frequentes

O que font-display: swap faz?

Ele dá à fonte um período de bloqueio extremamente curto, que a especificação CSS Fonts recomenda manter em 100ms ou menos, e um período de troca infinito. O texto aparece na fonte de fallback quase na hora e passa para a fonte web assim que ela termina de carregar.

font-display: swap é ruim para o CLS?

Pode ser. Se o fallback e a fonte web tiverem larguras ou alturas de linha diferentes, a troca tardia move o texto e o conteúdo abaixo dele. Corrija isso com size-adjust e com os overrides de ascent, descent e line-gap no fallback, ou use optional.

Por que a minha fonte com preload é baixada duas vezes?

As fontes são buscadas em modo CORS anônimo, então o link de preload precisa do atributo crossorigin mesmo quando o arquivo está na mesma origem. Sem ele, o preload não corresponde à requisição real e a fonte é baixada de novo.

Devo fazer preload das Google Fonts?

Normalmente, não. O web.dev alerta que o preload ignora parte da negociação de conteúdo do próprio navegador, incluindo o unicode-range, então você pode acabar baixando um subset que a página nunca usa. Em vez disso, faça preconnect para fonts.googleapis.com e fonts.gstatic.com, ou hospede a fonte você mesmo e faça preload do seu próprio arquivo.

Como o unicode-range economiza bytes?

Quando uma regra @font-face tem unicode-range, o navegador só baixa aquele arquivo se a página usar pelo menos um caractere do intervalo. Divida uma fonte em arquivos de latim, cirílico ou grego e cada visitante baixa apenas os alfabetos presentes na página.

A linha do tempo de exibição da fonte

Por que trocas tardias causam layout shift

Subsetting

Fonte auto-hospedada com preload

Faça preload do único arquivo que a primeira tela precisa

as, type e crossorigin precisam estar todos presentes. A regra @font-face fica inline no head para ser descoberta na hora.

Arquivos divididos com unicode-range

Subsets latino e cirílico de uma mesma família

As duas regras compartilham o nome da família. Uma página escrita só em inglês nunca baixa o arquivo cirílico.

Um fallback dimensionado para combinar

Fallback local ajustado para reduzir o layout shift

Os números são de exemplo: meça a sua fonte em relação ao fallback e ajuste até que as duas se alinhem.

Google Fonts com preconnect e um subset para um título

A segunda folha de estilo pede apenas as letras do texto do logo, o que mantém esse arquivo minúsculo.

Simulador da linha do tempo do font-display

Visão inicial: a fonte leva 1.5 segundos para carregar; arraste o controle para mudar. Cinza é texto invisível, âmbar o fallback, azul a fonte web.

A fonte chega depois de {n}s

Fonte web não usada nesta visualização da página

Troca visível: o texto pode se reorganizar

Sem troca visível

Escala: de 0 a 5 segundos. Com optional, a especificação permite que o navegador cancele um download tardio ou o termine com prioridade muito baixa.

Períodos recomendados pela especificação

Valor

Períodos

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site