Guía de inicio rápido para las API de fuentes web

Guía de inicio rápido para las API de fuentes web

¿Qué es una API de fuentes?

ConceptoDescripción
Servicio de fuentes webBiblioteca alojada (p. ej., Google Fonts, Adobe Fonts) que proporciona fragmentos de CSS <link> o JavaScript para obtener archivos de fuentes de una CDN.
CSS @font-faceAPI de navegador de bajo nivel que indica al agente de usuario dónde descargar un archivo de fuente y qué nombre de familia exponer a CSS.
API de fuentes variablesSintaxis más reciente (font-variation-settings, rangos de ejes) que permite que un solo archivo exponga varios estilos (grosor, ancho, inclinación, etc.).
Descriptor de visualización de fuentesControla cómo se renderiza el texto mientras se carga la fuente (auto, block, swap, fallback, optional).
Asistentes de carga de JavaScriptAyudantes opcionales (constructor FontFace, document.fonts.load()) para cargar o precargar fuentes sobre la marcha.

Todos estos pertenecen a la familia “Font API” porque exponen formas programáticas de solicitar y utilizar fuentes.

Terminología CSS básica

Propiedad / palabra claveSignificado
font-familyEl nombre que se usa en CSS después de cargar la fuente.
srcURL de los archivos de la fuente (.woff2, .woff, .ttf, …).
unicode-rangeSubconjunto de caracteres que abarca un archivo determinado: ideal para subconjuntos.
font-weight / font-style / font-stretchDescriptores estáticos clásicos.
font-variation-settingsPares clave/valor para ejes de variables ('wght' 400).
font-displayEstrategia de renderizado alternativo mientras se carga la fuente.

Uso del CSS @font-face integrado (autohospedado)

 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>

Beneficios: control total sobre el almacenamiento en caché, las licencias y los subconjuntos; funciona sin conexión si agrupa los archivos.

Google Fonts CSS API (la API de fuentes públicas más común)

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">

Explicación

ParteQué hace
family=Roboto:wght@400;700Solicita solo los grosores normal y negrita de Roboto.
family=Open+Sans:ital,wght@0,400;0,600;1,400Carga Roman regular/seminegrita + cursiva regular de Open Sans.
display=swapUsa texto de respaldo hasta que las fuentes terminen de cargarse (recomendado para la experiencia de usuario).

Luego en CSS:

1h1 { font-family: 'Roboto', sans-serif; }
2p  { font-family: 'Open Sans', sans-serif; }

Consejos

Ejemplo de fuente variable (Google Fonts)

 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 qué es importante: Un archivo reemplaza docenas de .woff2s estáticos → carga útil dramáticamente más pequeña.

API de carga de fuentes JavaScript (FontFace)

Cuándo usar: necesitas cargar una fuente después de cargar la página (por ejemplo, en el enrutamiento SPA) o quieres esperar a que esté lista antes de mostrar la interfaz de usuario.

 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));

También puedes consultar qué fuentes están cargadas:

1document.fonts.ready.then(() => console.log('All fonts ready'));

Adobe Fonts (Typekit): otra API de fuentes públicas

1<link rel="stylesheet" href="https://use.typekit.net/xyz123.css">

Luego haga referencia a las familias exactamente como se enumeran en el kit:

1h2 { font-family: "adobe-caslon-pro", serif; }

Diferencias clave frente a Google Fonts

Mejores prácticas de rendimiento

  1. Subconjuntos: solo los glifos necesarios: use el parámetro unicode-range o text= de Google Fonts.

  2. Aproveche la precarga para fuentes críticas:

1<link rel="preload" href="/fonts/Inter-Variable.woff2"
2      as="font" type="font/woff2" crossorigin>
  1. Establezca font-display al menos en swap. Evite “bloquear” la representación de texto, lo que perjudica la métrica CLS (Cumulative Layout Shift).

  2. Combine familias en una sola solicitud cuando utilice Google Fonts o Adobe Fonts.

  3. Caché persistente: la mayoría de las CDN envían encabezados Cache-Control de futuro lejano para archivos woff2.

Hoja de referencia rápida

APICómo solicitarCaso de uso típico
CSS @font-face<style>@font-face{…}</style> + <link rel="preload"> opcionalFuentes alojadas en el servidor, control total
Google Fonts CSS API<link href="https://fonts.googleapis.com/css2?...">Fuentes gratuitas con parámetros de URL sencillos
Adobe Fonts (Typekit)<link href="https://use.typekit.net/xxxx.css">Biblioteca de pago con integración con el sistema de diseño
API JS de FontFacenew FontFace(name, src[, descriptors])Carga dinámica en SPAs/paquetes de tiempo de ejecución
Rango de ejes de fuentes variablesfamily=Inter:wght@200..800 o CSS font-variation-settingsReduce el número de archivos y habilita transiciones de grosor suaves

Ejemplo de código TL;DR: una sola línea para la mayoría de los proyectos

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>

✅ Carga solo texto regular y en negrita → descarga mínima. ✅ display=swap garantiza un texto de respaldo rápido → buena experiencia de usuario. ✅ Funciona en todos los navegadores modernos sin JavaScript adicional.


¿Qué pasa con Aspose?

Si necesita manipular o convertir archivos de fuentes en el lado del servidor (por ejemplo, generar subconjuntos, convertir entre TTF/WOFF2 o extraer métricas de glifos), la biblioteca Aspose.Font proporciona una API programática para .NET, Java y Python. Se puede integrar en procesos de compilación o servicios de back-end para preparar los recursos de fuentes antes de que se entreguen a través de cualquiera de las API de fuentes descritas anteriormente.


¿Listo para insertar?

Copie cualquiera de los fragmentos anteriores en su HTML/CSS/JS y tendrá una integración de Font API lista para producción en segundos. ¡Feliz diseño!

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.