Fuentes web en CSS
Ya conoces font-family, tamaño y peso. Las fuentes web cargan una tipografía que no está necesariamente en el dispositivo del visitante — declárala con @font-face, usa el nombre de familia como cualquier otra fuente y termina con un fallback calmado.
Piezas de @font-face
📊 @font-face de un vistazo
| Pieza | Trabajo cotidiano |
|---|---|
font-family |
El nombre que inventas y luego usas en CSS |
src |
Dónde viven el/los archivo(s) de fuente (url(...) y a menudo format(...)) |
font-weight / font-style |
Qué cara representa este archivo (regular, bold, italic…) |
font-display |
Cómo se comporta el texto mientras carga la fuente (p. ej. swap) |
Piénsalo en dos pasos calmados: registra la cara con @font-face y luego llama ese mismo nombre de familia en tus reglas normales. Si omites uno, la pila nunca encuentra el archivo personalizado.
Un @font-face mínimo
Da a la cara un nombre claro y apunta src a un archivo de fuente en tu sitio (o CDN).
@font-face básico
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
Ofrece más de un formato
Los navegadores modernos prefieren woff2. Listar woff después cubre navegadores más antiguos. Pon el mejor formato primero.
woff2 luego woff
css@font-face {
font-family: "Site Sans";
src:
url("/fonts/site-sans.woff2") format("woff2"),
url("/fonts/site-sans.woff") format("woff");
font-weight: 400;
font-style: normal;
}
font-display — muestra el texto antes
font-display: swap deja que el navegador muestre texto de fallback primero y luego intercambie la fuente web al llegar — a menudo mejor que un hueco largo invisible.
Display swap
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
Usa la familia que declaraste
Tras @font-face, llama al mismo nombre font-family en tus reglas — y mantén un fallback genérico.
Aplicar la familia personalizada
cssbody {
font-family: "Site Sans", system-ui, "Segoe UI", sans-serif;
font-size: 1rem;
line-height: 1.6;
}
Un hábito calmado de autoalojamiento
Aloja solo los pesos que necesitas, prefiere woff2, pon font-display y mantén siempre una pila de sistema/genérica.
Título con cara bold cargada
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans-bold.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
h1 {
font-family: "Site Sans", Georgia, serif;
font-weight: 700;
}
Pruébalo tú
- Escribe un bloque
@font-facecon unfont-familypersonalizado y unsrcwoff2. - Añade una segunda línea
srcparawoff. - Pon
font-display: swap. - Aplica
"Your Name", sans-serifenbody. - Si tienes un archivo bold, añade un
@font-faceaparte para peso700— luegofont-weight: 700en un título.
Errores comunes
- Declarar
@font-facepero nunca usar ese nombre exacto enfont-family - Omitir la pila de fallback (se rompe si el archivo falla)
- Cargar muchos pesos y estilos que no usas (páginas lentas)
- Dejar el texto invisible mucho tiempo sin estrategia
font-display - Mezclar esta lección con text-shadow / efectos (vienen después)
Resumen
@font-faceregistra un nombre de familia personalizado y apunta a archivos de fuente- Prefiere
woff2, opcionalmente conwoffde respaldo font-display: swapa menudo mantiene el texto legible mientras cargan las fuentes- Usa el mismo nombre de familia en CSS con un fallback de sistema/genérico
- Carga solo las caras que necesitas; efectos como text-shadow son una lección posterior
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior