A font-systhesis
propriedade em CSS fornece instruções ao navegador sobre como lidar com caracteres em negrito e itálico da fonte quando o especificado font-family
não os inclui.
Vamos pegar Lato do Google Fonts como exemplo. Diz que existem 10 variações diferentes da fonte.
Cada uma dessas variações de fonte é tecnicamente um arquivo de fonte diferente. Se quisermos usar determinados pesos e estilos, vincularemos esses arquivos para que o navegador tenha algo para carregar.
Mas nem todas as fontes incluem arquivos para manipulação de peso e estilo. Nesses casos, o navegador irá “sintetizar” a própria aparência. O navegador faz o melhor que pode, mas negrito e estilo falsos às vezes tornam o texto menos legível; ou seja, menos legível do que uma versão verdadeiramente projetada. Nos casos mais brandos, podemos ver a sobreposição de caracteres. Em casos mais graves, o texto é completamente ilegível ou pode até mudar de significado - como pode acontecer com idiomas como chinês, japonês, coreano e outros scripts logográficos.
É aí que font-synthesis
entra. Ele controla quais tipos de fontes o navegador tem permissão para sintetizar.
Sintaxe
.element ( font-synthesis: none | ( weight || style ); )
Em inglês simples, isso significa font-synthesis
que aceitará:
- um valor de
none
- ou
weight
oustyle
- ambos
weight
estyle
É importante notar que font-synthesis
é considerada uma propriedade abreviada. De acordo com a especificação, é uma combinação de font-synthesis-weight
e font-synthesis-style
onde ambos aceitam valores de auto
ou none
. Como é possível obter o mesmo efeito usando a abreviação, esse é provavelmente o melhor caminho a seguir.
Valores
none
: Nem negrito nem oblíquo podem ser sintetizadosweight
: Negrito pode ser sintetizado pelo navegadorstyle
: Oblíquo pode ser sintetizado pelo navegador
font-synthesis: none; /* browser will not synthesize any font faces */ font-synthesis: style; /* browser will not synthesize a bold font face */ font-synthesis: weight; /* browser will not synthesize an oblique font face */ font-synthesis: weight style; /* browser will synthesize bold and oblique faces if they are unavailable */
Uso
font-synthesis
pode ser utilizado com todos os elementos, incluindo os ::first-letter
e ::first-line
pseudo-elementos.
Pode haver casos em que não permitir que o navegador sintetize negrito e oblíquo em um idioma inteiro faça sentido, porque qualquer um deles pode ocultar caracteres. Aqui está um exemplo retirado da especificação que desativa fontes em negrito e oblíquas sintetizadas contendo caracteres árabes:
/* Disables synthetic bolded and obliqued characters in Arabic */ *:lang(ar) ( font-synthesis: none; )
Demo
Suporte de navegador
No momento da redação, caniuse informa uma cobertura global de 20,21% da font-synthesis
propriedade.
Área de Trabalho
IE | Beira | Raposa de fogo | cromada | Safári | Ópera |
---|---|---|---|---|---|
Não | Não | 34+ | Não | 9+ | Não |
Móvel
iOS Safari | Opera Mini | Navegador Android | Chrome para Android | Firefox para Android |
---|---|---|---|---|
9+ | Todo | Não | Não | 68 |
Quer usar font-synthesis
no e-mail? O Campaign Monitor relata que é suportado pelos seguintes clientes:
- Apple Mail 10+
- Outlook para Mac
- Aplicativo AOL Alto iOS
- iOS Mail 10+
- Pardal
- G Suite
- Gmail
- Caixa de entrada do Google
Mais Informações
- Especificação de nível 4 do módulo de fontes CSS
- “Teste CSS3:
font-synthesis
“ por Eric Meyer - “How to Italicize Text” por Chris Coyier