Guia de início rápido para APIs de fontes da Web
Guia de início rápido para APIs de fontes da Web
O que é uma fontAPI?
| Serviço de fontes Web | Biblioteca alojada (por exemplo, GoogleFonts, AdobeFonts) que fornece snippets de CSS <link> ou JavaScript para pesquisar ficheiros de fontes de uma CDN. |
| CSS@font-face | API de baixo nível do browser que informa o agente do utilizador onde descarregar um ficheiro de fonte e qual o nome de família a expor ao CSS. |
| API de fontes variáveis | Sintaxe mais recente (font-variation-settings, intervalos de eixo) que permite que um único ficheiro exponha vários estilos (peso, largura, inclinação, etc.). |
| Descritor de visualização de fonte | Controla a forma como o texto é renderizado enquanto a fonte está a ser carregada (auto, block, swap, fallback, optional). |
| Auxiliares de carregamento em JavaScript | Funções auxiliares opcionais (construtor FontFace, document.fonts.load()) para carregar ou pré-carregar fontes dinamicamente.|
Todos eles pertencem à família “Font API” porque expõem formas programáticas de solicitar e usar fontes.
Terminologia CSS central
| Propriedade / palavra-chave | Significado |
|---|---|
família-fonte | O nome que utiliza no CSS após o carregamento da fonte. |
src | URL(s) do(s) ficheiro(s) de origem (. woff2, . woff, . ttf, …). |
unicode-range | Subconjunto de caracteres abrangidos por um determinado ficheiro – excelente para selecionar subconjuntos. |
font-weight / font-style / font-stretch | Descritores estáticos clássicos. |
font-variation-settings | Pares chave/valor para eixos variáveis('wght' 400). |
font-display | Estratégia de renderização alternativa enquanto a fonte é carregada. |
Usando o CSS@font‑face integrado (auto-hospedado)
1<!-- 1️⃣ Put the font files on your server (or CDN) -->
2<link rel="preload" href="/fonts/Inter-Variable.woff2"
3 as="font" type="font/woff2" crossorigin>
4
5<style>
6 /* 2️⃣ Declare the family */
7 @font-face {
8 font-family: 'Inter Variable';
9 src: url('/fonts/Inter-Variable.woff2') format('woff2');
10 /* Optional – load only Latin characters */
11 unicode-range: U+0000-00FF;
12 /* Show fallback text until the font is ready */
13 font-display: swap;
14 }
15
16 /* 3️⃣ Use it */
17 body {
18 font-family: 'Inter Variable', system-ui, sans-serif;
19 }
20</style>Benefícios: controle total sobre cache, licenciamento e subconjuntos; funciona offline se você agrupar os arquivos.
CSSAPI do Googlefonts (a API de fontes públicas mais comum)
1<link href="https://fonts.googleapis.com/css2?
2family=Roboto:wght@400;700&
3family=Open+Sans:ital,wght@0,400;0,600;1,400&
4display=swap"
5rel="stylesheet">Explicação
| Parte | O que faz |
|---|---|
family=Roboto:wght@400;700 | Solicita apenas as versões normal e negrito da fonte Roboto. |
family=Open+Sans:ital,wght@0,400;0,600;1,400 | Carrega as versões normal/semibold Roman e itálico normal da OpenSans. |
display=swap | Utiliza texto alternativo até que as fontes terminem de carregar (recomendado para UX). |
Então em CSS:
1h1 { font-family: 'Roboto', sans-serif; }
2p { font-family: 'Open Sans', sans-serif; }Dicas
- Combine várias famílias em uma única solicitação – reduz as viagens de ida e volta HTTP.
- Use intervalos de eixos para fontes variáveis:
family=Inter:wght@200..800.
Exemplo de fonte variável (Googlefonts)
1<link href="https://fonts.googleapis.com/css2?
2family=Inter:wght@200..800&display=swap"
3rel="stylesheet">
4
5<style>
6 .hero {
7 font-family: 'Inter', system-ui;
8 /* Animate weight from thin → bold */
9 font-variation-settings: 'wght' 200;
10 transition: font-variation-settings .6s ease;
11 }
12 .hero:hover { font-variation-settings: 'wght' 800; }
13</style>Por que é importante: Um arquivo substitui dezenas de .woff2s estáticos → carga útil dramaticamente menor.
API de carregamento de fontes JavaScript (FontFace)
Quando utilizar – quando necessita de carregar uma fonte após o carregamento da página (por exemplo, no encaminhamento de um SPA) ou pretende aguardar que esteja pronta antes de visualizar a interface do utilizador.
1// Create a FontFace object
2const myFont = new FontFace(
3 'Custom Serif',
4 'url(/fonts/CustomSerif-VF.woff2) format("woff2")',
5 { weight: '400 900', style: 'normal' } // optional descriptors
6);
7
8// Add it to the document’s FontFaceSet
9document.fonts.add(myFont);
10
11// Start loading
12myFont.load().then(() => {
13 // Font ready → apply it
14 document.body.style.fontFamily = '"Custom Serif", serif';
15}).catch(err => console.error('Font failed', err));Você também pode consultar quais fontes estão carregadas:
1document.fonts.ready.then(() => console.log('All fonts ready'));AdobeFonts (Typekit) – outra API de fonte pública
1<link rel="stylesheet" href="https://use.typekit.net/xyz123.css">Em seguida, faça referência às famílias exatamente como listadas no kit:
1h2 { font-family: "adobe-caslon-pro", serif; }Principais diferenças em relação ao Googlefonts
- Requer uma conta da Adobe e ID do kit de incorporação (
xyz123). - Fornece opções de carregamento sync e async (
<script>… Typekit.load(); </script>).
Melhores práticas de desempenho
Subconjunto apenas de glifos necessários – use o parâmetro
unicode-rangeou o parâmetrotext=do Google Fonts.Aproveite o
preloadpara fontes críticas:
1<link rel="preload" href="/fonts/Inter-Variable.woff2"
2 as="font" type="font/woff2" crossorigin>Defina
font-displaypara pelo menosswap.
Evitebloqueara renderização de texto, o que prejudica o CLS (Cumulative Layout Shift).Combine famílias em uma solicitação ao usar GoogleFonts ou AdobeFonts.
Cache para sempre – a maioria dos CDNs envia cabeçalhos
Cache‑Controlde futuro distante para arquivos woff2.
Folha de referência rápida
| API | Como solicitar | Caso de utilização típico |
|---|---|---|
| CSS @font-face | <style>@font-face{…}</style> + opcional <link rel="preload"> | Fontes auto-hospedadas, controlo total |
| API CSS Google Fonts | <link href="https://fonts.googleapis.com/css2?..."> | Fontes gratuitas com parâmetros URL simples |
| Adobe Fonts (Typekit) | <link href="https://use.typekit.net/xxxx.css"> | Biblioteca paga com integração no sistema de design |
| API JS do FontFace | new FontFace(nome, src[, descritores]) | Carregamento dinâmico em SPAs/pacotes de tempo de execução |
| Intervalo de eixo de fonte variável | family=Inter:wght@200..800 ou CSS font-variation-settings | Reduza a quantidade de ficheiros e permita transições de peso suaves |
Exemplo de código TL;DR – uma linha para a maioria dos projetos
1<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap"
2 rel="stylesheet">
3<style>
4 body {font-family:'Montserrat',Arial,sans-serif;}
5</style>✅ Carrega apenas as versões normal e negrito → download mínimo. ✅
display=swapgarante texto alternativo rápido → boa experiência de utilização. ✅ Funciona em todos os browsers modernos sem JavaScript adicional.
E o Aspose?
Se você precisar manipular ou converter arquivos de fonte no lado do servidor (por exemplo, gerar subconjuntos, converter entre TTF/WOFF2 ou extrair métricas de glifo), a biblioteca Aspose.Font fornece uma API programática para .NET, Java e Python. Ele pode ser integrado a pipelines de construção ou serviços de back-end para preparar recursos de fontes antes de serem veiculados por meio de qualquer uma das APIs de fontes descritas acima.
Pronto para incorporar?
Copie qualquer um dos snippets acima em seu HTML/CSS/JS e você terá uma integração da Font API pronta para produção em segundos. Feliz estilo!