WOFF2

Web Open Font Format 2.0 — el estándar de oro para fuentes web, con compresión Brotli que ofrece los tamaños de archivo más pequeños.

.woff2 Web Open Font Format 2.0
TipoBinario comprimido
CompresiónBrotli
Tamaño de archivoEl más pequeño (~30 % más pequeño que WOFF)
Compatibilidad97 %+ navegadores
Ideal paraProyectos web modernos (recomendado)
BobcornSiempre incluido

¿Qué es WOFF2?

WOFF2 fue desarrollado por Google y se convirtió en una recomendación W3C en marzo de 2018. Se basa en el concepto original de WOFF, pero reemplaza la compresión zlib con Brotli — un algoritmo de compresión también desarrollado por Google — que logra ratios de compresión significativamente mejores.

Pero WOFF2 no es simplemente «WOFF con mejor compresión». Introduce una transformación de preprocesamiento que reestructura los datos de la fuente antes de la compresión, haciéndolos sustancialmente más comprimibles. Para los contornos TrueType, esto significa aplicar codificación predictiva a las coordenadas de los glifos — codificando cada punto como un delta respecto a un valor predicho en lugar de como una coordenada absoluta. El resultado es un flujo de bytes mucho más redundante que Brotli puede comprimir agresivamente.

Este enfoque en dos pasos — preprocesamiento específico del dominio seguido de compresión de propósito general — es la razón por la que WOFF2 produce consistentemente los archivos de fuente más pequeños de cualquier formato.

Cómo funciona

WOFF2 aplica un pipeline de compresión de dos fases a los datos fuente de la fuente:

  • Fase 1: transformación de preprocesamiento — las transformaciones específicas de fuentes reestructuran los datos para maximizar la compresibilidad. Para los contornos de glifos TrueType, esto usa codificación predictiva de coordenadas — cada punto se codifica como la diferencia respecto a una posición predicha, lo que produce números mucho más pequeños. Se aplican transformaciones similares a otras tablas de fuentes.
  • Fase 2: compresión Brotli — los datos preprocesados se comprimen luego con Brotli, que combina la compresión de ventana deslizante LZ77 con codificación Huffman y un diccionario estático incorporado. Brotli logra una compresión 20-30 % mejor que zlib en datos de fuentes típicos.

En el lado del navegador, el proceso se invierte: descompresión Brotli seguida de transformaciones inversas para reconstruir las tablas de fuentes originales. A pesar del paso adicional, la descompresión de WOFF2 es en realidad más rápida que la de WOFF1 — Brotli fue diseñado para una decodificación rápida, y el archivo más pequeño se transfiere más rápido por la red.

Pila de fuentes típica con WOFF2
@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2');
  font-display: swap;
}

.icon { font-family: 'MyIcons'; }
.icon-home::before { content: '\E001'; }

Observe que solo listamos un único src — WOFF2 solo. Con una cobertura de navegadores del 97 %+, muchos proyectos modernos ya no necesitan un formato de alternativa. La directiva font-display: swap le dice al navegador que muestre texto inmediatamente usando una fuente alternativa mientras se carga la fuente de iconos, evitando el texto invisible.

Ventajas e inconvenientes

    Ventajas
  • Mejor ratio de compresión de todos los formatos de fuente
  • Descompresión más rápida (Brotli está optimizado para velocidad de decodificación)
  • Recomendación W3C (estándar web oficial desde 2018)
  • Compatible con el 97 %+ de los navegadores mundiales
  • El estándar de la industria establecido para fuentes web
    Inconvenientes
  • No compatible con ninguna versión de Internet Explorer
  • Requiere herramientas de conversión (no se puede editar a mano como SVG Font)
  • No apto para instalación de fuentes a nivel de sistema operativo (use TTF para eso)

Compatibilidad con navegadores

WOFF2 cuenta con amplia compatibilidad en todos los navegadores modernos. La única brecha notable es Internet Explorer, que fue retirado por Microsoft en junio de 2022.

NavegadorVersión mínima
Chrome36+
Firefox39+
Safari12+
Edge14+
Opera23+
Internet ExplorerNo compatible

La cobertura global combinada se sitúa en aproximadamente 97 %. El ~3 % restante consiste casi en su totalidad en instalaciones de IE heredadas y navegadores móviles muy antiguos.

Consejo
En 2024 y en adelante, WOFF2 solo es suficiente para la gran mayoría de los proyectos web. Solo agregue WOFF como alternativa si sus estadísticas muestran tráfico significativo de IE 11.

Comparación de tamaños de archivo

Para ilustrar la ventaja de compresión de WOFF2, aquí están los tamaños de archivo típicos para una fuente de iconos con 200 glifos:

FormatoTamaño típicoReducción vs. TTF
.ttf~80 KBReferencia
.woff~48 KB~40 % más pequeño
.woff2~34 KB~58 % más pequeño

El ahorro se acumula con conjuntos de iconos más grandes. Una fuente de 500 glifos podría ser de 200 KB como TTF, 120 KB como WOFF y solo 82 KB como WOFF2. A lo largo de miles de cargas de página, estos kilobytes se traducen directamente en tiempos de renderizado más rápidos y menores costos de ancho de banda.

Cuándo usar WOFF2

Siempre. WOFF2 debe ser el formato predeterminado para cualquier despliegue de fuentes de iconos en la web. Ofrece los archivos más pequeños, la descompresión más rápida y compatibilidad casi universal con los navegadores.

El único escenario en el que no usaría WOFF2 es si está apuntando a Internet Explorer — en cuyo caso, combínelo con WOFF como alternativa:

@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2'),
       url('icons.woff') format('woff');
  font-display: swap;
}

Los navegadores modernos tomarán el archivo WOFF2; IE 11 recurrirá a WOFF. Todos obtienen la fuente, todos la obtienen comprimida.

En Bobcorn
WOFF2 siempre está incluido en la exportación de Bobcorn — no es opcional porque es el formato web esencial. Bobcorn usa la biblioteca ttf2woff2 con compresión Brotli para obtener resultados óptimos. Encontrará el archivo .woff2 generado junto con CSS y páginas de demostración en cada exportación.
Consejo de rendimiento
Para el mejor rendimiento de carga, use font-display: swap en su declaración @font-face. Esto permite al navegador mostrar texto inmediatamente con una fuente alternativa mientras se carga la fuente de iconos, evitando el «destello de texto invisible» (FOIT) que puede hacer que las páginas parezcan no responder.