El embebimiento de fuentes utilizando @font-face es verdaderamente un arte oscura y compleja que debe ser dominada.
Es por eso que en esta nota te traemos la guÃa maestra sobre cómo embeber fuentes en tu sitio web. ¡Esperamos que te sea de utilidad!
Formatos de Fuentes
Hablando de forma general, hoy en dÃa, una fuente de nuestro sistema tendrá uno de estos dos formatos: TrueType (con una extensión de archivo .ttf) u OpenType (con una extensión de archivo.otf). Si bien serÃa genial tirar una fuente de estas en una web y linkearla, nos enfrentamos a dos problemas mayores:
1)Â Â Â Â Â La licencia
2)Â Â Â Â Â El soporte del navegador
Licenciación
La concesión de licencias es uno de los mayores obstáculos. Puede ser difÃcil encontrar una fuente que realmente funciona dentro de la estética general de un diseño. Es la razón por la que hemos tenido que recurrir a la exportación de imágenes sIFR o Cufon.
Incluso muchas fuentes libres tienen limitaciones en cuanto a cómo pueden ser utilizadas, muchas veces requieren instrucciones especÃficas sobre la vinculación de nuevo a la fuente original, o sólo se permite su uso en sitios no comerciales.
En estos dÃas, una serie de recursos están surgiendo, especialmente los dedicados a la incrustación de fuentes. Un buen comienzo para encontrar la fuente adecuada para nuestro proyecto serÃa Font Squirrel. Font Squirrel incluso proporciona kits @font-face para hacer que la aplicación en nuestro sitio web sea fácil. Sin embargo, incluso estos kits no dan soporte de navegadores completo.
Soporte de Navegadores
El soporte de navegadores es el mayor problema. El embebimiento de fuentes con una fuente TrueType u OpenType sólo funciona de esta forma en Firefox 3.5, Safari 3.1, y Opera 10. (Lo puedes permitir en tu copia de Chrome 2 utilizando la lÃnea de comando switch.)
Pero lo podemos mejorar todavÃa más. Podemos lograr que funcione en Internet Explorer 4+, Chrome 0.3+, Opera 9+ e incluso podemos lograr un poco de acción móvil en Safari.
EOT
Internet Explorer soporta un tipo de formato particular llamado Embedded OpenType que proporciona algo de control sobre dónde y cómo se permite embeber la fuente. Necesitarás convertir tu TTF al formato EOT. Microsoft pone a nuestra disposición una herramienta llamada WEFT pero no siempre funciona. Por suerte, hay una herramienta de lÃnea de comando llamada TTF2EOT que puede convertir tu fuente.
Si tienes un archivo OTF, necesitarás convertirlo a TTF antes de pasarlo a EOT. FontForge se puede utilizar para llevar a cabo esto.
Haz clic aquà para ver la captura de pantalla de la conversión de OTF a TTF »
Como verás pronto, tener el archivo en formato TTF nos ayudará en los próximos pasos.
SVG
Con TTF/OTF y EOT, tenemos cubiertos los navegadores decentes pero el toque de gracia es añadir más formatos de fuente a la mezcla: SVG. Las fuentes SVG son soportadas por Chrome 0.3+ sin tener que usar un hack de lÃnea de comando, junto con Opera 9 y iPhone OS 3.1.
Existe una aplicación Java llamada Batik que permite exportar a formato SVG, ésta puede echarse a andar desde la lÃnea de comando, y al hacerla andar deberás especificar el parámetro del ID. La ID es importante a la hora del CSS.
-
java -jar batik-ttf2svg.jar ./MuseoSans-500.ttf -o museo.svg -id museo
Una de las preocupaciones en la exportación a SVG es el tamaño del archivo. Inmediatamente notamos que la fuente de 29k estaba pasando más de 100k. La principal razón fue el número de elementos hkern que, supongo, se dirigen a kerning. Sin embargo, deberÃas ser capaz de eliminarlos sin afectar mucho la muestra de tu fuente, pero disminuyendo en gran medida el tamaño del archivo. La otra cosa que notamos fue glyph-name="null" en todos los nodos glyph. Estos se pueden eliminar sin afectar a la visualización de la fuente. Una vez hecho las fuentes SVG serán más pequeñas que la fuente TrueType original que se habÃa convertido.
CSS
Ahora que tenemos nuestros tres archivos-TTF (o OTF), EOT y SVG-es tiempo de comenzar con el CSS.
-
@font-face {
-
font-family: 'GothicCustom';
-
src: url("LeagueGothic.eot");
-
src: local('League Gothic'),
-
url("LeagueGothic.svg#lg") format('svg'),
-
url("LeagueGothic.otf") format('opentype');
-
}
El nombre de familia fuente que especifiquemos aquà es arbitrario.
La sintaxis SVG posee una cosa particular a notar, y esto es el anchor de ID luego del nombre de fuente. EspecifÃca la ID que utilizaste cuando realizaste la conversión SVG. De forma alternativa, abre la fuente SVG y asegúrate que el elemento fuente posee un ID.
-
<font id="lg">
Especificar la familia fuente funciona de forma normal. Sólo especifÃca el nombre de fuente que utilizaste en tu declaración @font-face.
-
font-family: 'GothicCustom', 'Arial Narrow', sans-serif;
Subconjuntos
En la captura de pantalla, dimos una demostración rápida de cómo hacer subconjuntos de fuentes limpiando los caracteres que no van a ser utilizados en la fuente final. ¿Por qué quieres hacer subconjuntos de fuentes? Hace que el archivo sea más pequeño. Algunos archivos de fuentes fácilmente pesan 200k. Eso es mucho para descargar cuando la gente no lo necesita.
Si optimizas tus imágenes ¿Por qué no hacerlo con tus fuentes?
Bug transformador de texto
Hay una advertencia a tener en cuenta al realizar subconjuntos. Una declaración text-transform: uppercase es todo lo que se necesita.
-
<div>About</div>
-
div { text-transform:uppercase; }
Esto funciona bien en Firefox y Safari, pero Opera e Internet Explorer ambos parecen hacer decidido el uso de una fuente para un carácter en particular observando el carácter en minúscula en primer lugar. Esto querÃa decir que estaba usando los caracteres en mayúsculas de una fuente de reserva. Eso es ciertamente menos que ideal.
Por supuesto, siempre puedes cambiar el código fuente HTML para que sea mayúscula, si estabas dispuesto a llegar a la muerte en la eliminación de los glifos.
Imprimir hojas de estilo
Las fuentes personalizadas también funcionan bien con las hojas de estilo de impresión. No era como el uso de técnicas de reemplazo mediante una imagen y luego tener que recurrir a una fuente del navegador aburrido para imprimir. Se siente bien la impresión de una página de nuestro sitio que todavÃa utiliza las mismas fuentes, como lo que vimos en la pantalla.








Viernes, 23 de Octubre de 2009 a las 18.51
Hola, antes de nada merci por esta entrada referente al @font face.
Mira estoy experimentando y tengo unas dudas que me gustaria hacerte.
El tema de licencias en la fuente que he elegido me pone:
Rockwell (OpenType)
Fuente Open Type, Firmado digitalmente, TrueType Outlines
Nombre: Rockwell
Tamaño de archivo: 57 KB
Versión: Versión 1.65
Digitized data copyright (C) 1992 - 1997 The Monotype Corporation. Rockwell® is a trademark of The Monotype Corporation which may be registered in certain jurisdictions.
Portions copyright Microsoft Corporation. All rights reserved.
No tengo muy claro si puedo o no usarla en una web?
Luego el problema de los soportes de los navegadores, yo uso firefox ultima version y por ejemplo el archivo eot creado con el programa que facilita microsoft funciona pero tu comentas que suba la fuente original y la fuente eot solo sea para IE, y me pierdo con el resto de los navegadores, me refiero con chrome, safari, y para el iphone de momento no pienso en el, jeje.
Bueno espero no preguntarte cosas dificiles de responderme.
Gracias!!
Sábado, 24 de Octubre de 2009 a las 11.03
Muy buen articulo, lo que me parece es un poco coñazo lo de tener que adaptar las fuentes. ¿No se ralentiza la página al cargar con tantas fuentes?
Por cierto la palabra embeder no existe, se dice incrustar.
Saludos
Lunes, 26 de Octubre de 2009 a las 12.08
Con los subconjuntos tienes el problema del peso resuelto.
Por otra parte, el concepto de incrustar no es el mismo que el de embeber. La palabra no existe, es una adaptación de la palabra "embed" en inglés, que se ya utiliza generalizadamente en textos en español.
Martes, 27 de Octubre de 2009 a las 16.49
Pues no será el mismo pero embed en español significa incrustar :\
Jueves, 5 de Noviembre de 2009 a las 17.26
Me funciona perfecto para explorer, pero no funciona en safari, ni chrome ni firefox, estoy haciendo algo mal??
Jueves, 5 de Noviembre de 2009 a las 17.31
Hola, Vickolo
¿Lo has probado en las versiones correspondientes? Recuerda que sólo funciona en Firefox 3.5, Safari 3.1, y Opera 10.
Saludos!