¿Y quién diablos es @font-face?
No, no es un usuario de twitter, se trata de una implementación de CSS, propuesta desde 1998, que por fin está logrando establecerse como estándar y que nos ofrece la posibilidad de usar en un sitio HTML tipografías que no estén instaladas en la computadora del usuario.
Un poco de historia
Una de las deudas más grandes que ha arrastrado por años el HTML con el diseño son las pobres opciones que nos ha brindado en cuanto a tipografías. Si queríamos que nuestro diseño se viera más o menos igual para todos los usuarios, había que limitarse a unas cuantas fuentes que sabíamos que estaban instaladas en casi cualquier computadora.
Partiendo de esta gran necesidad, cuando se desarrolló la especificación de CSS2 (en el lejano año de 1998) se propuso la regla @font-face para utilizar cualquier fuente, mediante la descarga de un archivo. Los que se aplicaron primero fueron los de Microsoft, quienes lo implementaron desde el Internet Explorer 4, pero utilizando un formato propietario (EOT). Entre rollos de formato y cuestiones de copyright, la iniciativa quedó descartada en la especificación CSS2.1 y se fue al baúl de las buenas ideas por unos 10 añitos.
Hace un par de años volvió a la mesa de la W3C el asunto y en la especificación de CSS3 se volvió a incorporar. A estas alturas ya ha sido implementado en casi todos los navegadores modernos, dando soporte a formatos populares como el TTF y OTF. Por su parte IE sigue soportando exclusivamente el formato EOT.
Durante estos largos 10 años han surgido ingeniosas técnicas para utilizar tipografías bonitas (aunque fuera en sólo los títulos), ya fuera utilizando Flash (sIFR), Canvas/VML (Cufón), la librería GD de PHP (FLIR), etc. así como sistemas de detección de fuentes instaladas entre otros muchos inventos que han funcionado más o menos bien, pero que finalmente no dejan de ser artimañas y trucos para solucionar una deficiencia.
La promesa
Ahora que @font-face vuelve a figurar dentro del estándar de CSS, resurge la promesa de poder usar la fuente que nosotros queramos para cualquier texto de una página web, de una forma sencilla y directa:
@font-face{ font-family:'Mi fuente embebida'; src: url('../fonts/mifuenteembebida.otf') format('opentype'); }
y luego.miselector { font-family: "Mi fuente embebida"; }
Pero… ¿funciona?
Sí… más o menos. Hay varios detalles que hay que tener presentes si queremos implementar exitosamente esta técnica.
1. El soporte y compatibilidad.
La mayoría de navegadores modernos soportan tanto el formato TTF como el OTF (y en algunas pruebas que hice obtuve mejor calidad convirtiendo a OTF). Sin embargo, parece que el Safari para iPhone sólo acepta el formato SVG (que de acuerdo a mis pruebas tiende a producir archivos muy grandes). Y queda el Internet Explorer que necesita que le generemos un archivo en formato EOT. Aquí una tabla de compatibilidad.
2. Inconsistencias.
La manera como los distintos navegadores renderean las fuentes embebidas no es totalmente homogénea ni exactamente igual a si la fuente estuviera instalada en la computadora. Algunos harán las letras más gruesas, más delgadas, más pixeleadas, etc.
3. Peso.
Recuerda que el que una fuente sea embebida significa que tiene que descargarse para poder ser utilizada. Una fuente con trazos sencillos como la Helvetica puede que nos ocupe unos 20kB, pero una con trazos ligeramente más elaborados, como la Candara ¡viene pesando unas 10 veces más! Ah, y no hay que olvidar que si queremos utilizar negritas, cursivas y negritas-cursivas hay que incrustar también los archivos correspondientes a esas variantes de estilo. De esta manera, si quisiéramos incrustar Candara en sus 3 variantes básicas ya estaríamos hablando de unos 700kB (en formato OTF).
4. Retraso.
Las fuentes embebidas no siempre se mostrarán inmediatamente. Según el navegador y si han sido cargadas en cache o no, puede tardar unos momentos en mostrarse el texto, o mostrarse primero con una fuente del sistema, en lo que se carga la fuente embebida.
5. Copyright.
Y vale la pena recordar que el asunto del Copyright aún no está resuelto y que (al menos en teoría) sólo deberíamos incrustar fuentes que tengan las licencias adecuadas
Ok, suficiente rollo… ¿cómo la uso entonces?
Bueno, realmente este artículo no es un tutorial, sino más bien es una presentación del @font-face, platicándote un poquillo de su importancia, sus peripecias, alternativas y algunos detalles que conviene tener presentes para que decidas si te conviene usarla o no para tus proyectos actuales. Así que cerraré con unos cuantos tips:
No olvides seguir usando tus listas de fuentes, para las definiciones de font-family. Es decir, poner al principio el nombre de tu fuente embebida y continuar con alternativas por si algo falla:
font-family: “Mi fuente embebida”, Verdana, Arial, Helvetica, sans-serif;
- Compara calidad y peso entre las versiones TTF y OTF y si quieres que tu fuente se vea también en IE checa que no tengas problemas para convertir a EOT, ya que este sistema tiene mecanismos de control de derechos. Existen varias herramientas sencillas y gratuitas para convertir entre formatos de fuentes.
- Checa qué variantes de la fuente (em, strong, em+strong) estarás utilizando y asegúrate de incluir todas las necesarias (no más, no menos).
- Si es importante la compatibilidad con iPhone y la fuente en SVG te queda demasiado pesada, podría valer la pena seguir considerando un método alternativo como los mencionados más arriba.
- Checa si la fuente que quieres utilizar está instalada en la computadora del usuario, para evitar descargarla inútilmente.
- Revisa “la técnica de la carita“, uno de los clásicos trucos que inventa la gente para evitar problemas de compatibilidad.
- Si realmente quieres volverte experto en la materia, checa algunos de los links que por aquí dejé, o léete este detallado tutorial.
- Si prefieres simplificarte la vida un poco puedes dejar que la Google Font API haga la mayor parte del trabajo por ti. Es un servicio muy prometedor aunque a mi juicio tiene todavía problemas grandes en la calidad del rendereo de las fuentes. Eso sí, una diferencia de 1px puede hacer que tu texto se vea mucho mejor (o mucho peor). También puede interesarte Typekit , un servicio comercial que ofrece una librería muy extensa de fuentes por suscripción.
- Lo más importante ¡experimenta y diviértete! Y si logras hacer un experimento asombroso ¡cómpartelo! @roccons
Casi nadie sabe que las fuentes que muestran los navegadores son tomadas de las instaladas en el sistema, yo lo descubrí en septiembre de 2001 precisamente porque un sitio web me daba la opción de descargar “Copperlate Gothic” para ver sus sitio “como realmente era”.
Me parece una muy buena idea que se muestren independientemente de que estén instaladas o no, pero como todo, tiene aún sus limitaciones. Estoy seguro que con el tiempo se va a encontrar una solución, yo supongo en unos 2 ó 3 años.
Coincido contigo Alberto, no creo que pase mucho tiempo para que todo esto de las fuentes sea mucho más sencillo y funcional.
Esperemos que sea asi para dejar todos estos trucos para fonts.
Hace unos 3 años, use esto en una web, y funcionaba en IE, siempre estuvo ahi…!
Sí, pero sólo funcionaba en IE. Ahora ya es un estándar y es soportado por todos los navegadores e incluso en móviles.
Bien hemos tenido la opción disponible desde hace ratos pero no se ha promocionado muchísimo. Sin embargo creo que estamos viendo un impacto mayor del @font-face en este año y me llamó mucho la atención la propuesta de google para también dar alguna opción con letras libres.
Pero si, le hace falta más tipografía a la web, definitivamente.
¿Pero cuando se va a aprobar de forma definitiva CSS3 y HTML5? Yo aún tengo muchos cñientes que usan IE6 XD
Con las noticias de Google entrando al mercado de fuentes para la web es otro gran paso para para la web. Creo que esta etapa es mas fascinante que los pasados caundo paso el dotcom boom. Y uno que decide esperar que la especificacion sea final se va quedar atras. Uno debe de experimentar con estos herramientas ahora que se pueda y mejorar tu conocimiento.
Qué tal Christian. La verdad es que me parece super interesante la propuesta de Google con su API y su librería de fuentes libres, sobre todo porque es realmente fácil de usar. Pero creo que yo todavía no me aventaba a utilizarlo en un proyecto real. Insisto en que la apariencia de los textos deja mucho que desear…
Vaya que si nos está tocando un momento emocionante en la web!
Es cierto que las especificaciones de html5 y css3 aún no están listas y pueden todavía haber cambios importantes, pero evitando meterse en asuntos demasiado complejos o experimentales, creo que ya es buen momento para empezar a jugar un poco. Te dejo un link interesante: http://html5readiness.com/
[…] ¿Y quién diablos es @font-face? […]
Y aquí va un link con buenas recomendaciones sobre cómo trabajar con CSS3 ahora, mientras sigue “cocinándose” http://www.impressivewebs.com/css3-best-practices/
No has comentado nada sobre el formato WOFF, un formato mucho más apropiado para la web.
[…] ¿Y quién diablos es @font-face? No, no es un usuario de twitter, se trata de una implementación de CSS, propuesta desde 1998, que por fin está logrando establecerse como estándar y que nos ofrece la posibilidad de usar en un sitio HTML tipografías que no estén instaladas en la computadora del usuario. […]
Muy buen artículo Rodrigo.
Para mí es muy útil la existencia del API Font de Google, entre otras cosas porque ahorras ancho de banda al cargar la fuente desde los servidores de Google, al igual que puede hacerse con librerías de JavaScript como jQuery desde su CDN.
El problema como comentas, es que todavía no renderizan de una forma óptima, y el escaso número de fuentes disponible, cosa que supongo que con el paso de los meses irán solucionado si el servicio gana importancia.
Saludos.
[…] […]
[…] ¿Y quién diablos es @font-face? (post en maestrosdelweb.com) var addthis_brand = 'Xpert';var addthis_language = 'es';var addthis_options = 'email, facebook, twitter, favorites, digg, delicious, myspace, google, reddit, live, more'; Visitas a este post: 4 […]
Cuando comencé a informarme sobre @font-face me emocioné mucho, pero pronto me bajé de la nube. El renderizado deja mucho que desear. Sólo hay algunas fuentes, las de tipo manuscrito sobre todo, que que no se ven del todo mal. De momento es algo que no puedo presentarle a un cliente.
hola, soy principiante y quisiera que el color de letra se funcionara para safari, chome gracias
Algunas tipografías aunque modifiques la extensión para IE siguen viéndose mal. En la medida de lo posible, optó por incrustar estas fuentes en una imagen.
Excelente artículo, pero considero que pasará mucho tiempo para que esto sea realmente un estándar o algo “fácil” de incorporar. Que pasa por ejemplo con Myriad Pro, una de las fuentes mas populares pero con copyright, al final @font-face seguirá teniendo limitaciones con el copyright y terminara siendo lo mismo que usar Arial, Helvetica, etc…
Por todo esto creo que una muy buena opcio nes http://www.typekit.com facil, barato y rapido.
Suerte!
Saludos desde Chile.