Webdesign, Font, Cufon, CSS – S’affranchir des polices système sur un site web avec cufón
L’objectif de cet article est bien de pouvoir mettre sur un site toutes les polices même les plus exotiques. En effet, ne pas pouvoir utiliser les polices que l’on veut sur une page web est souvent considéré comme une contrainte quasi insurmontable par les webdesigners, surtout ceux qui viennent du “print” et ils sont nombreux. C’est aussi souvent un des arguments qui milite en faveur du “tout-flash” où le problème du choix des polices ne se pose pas.
Un homme sorti du rang, Simo Kinnunen, finlandais de surcroit, s’est attaqué à ce problème et semble l’avoir résolu en créant cufón
. Pour faire simple, il s’agit d’un script JavaScript qui permet à la volée la conversion des éléments textes de votre page.
La liste des balises est celle de pratiquement de toutes les balises html : <h1>...</h1>
, <h2>...</h2>
, <h3>...</h3>
, <a>...</a>
, <p>...</p>
…
D’autres essais avaient été tenté, via un javascript notamment, un peu sur le même modèle que cufón
avec typeface.js
- Mike Davidson – sIFR – http://www.mikeindustries.com/blog/sifr/
Voir les essais assez convaincants http://www.mikeindustries.com/blog/wp-content/uploads/sifr/2.0/ - sIFR Lite! – http://www.allcrunchy.com/Web_Stuff/sIFR_lite/
Une version de la méthode précédente plus “object-oriented” dans son fonctionnement et son appel. - Facelift Image Replacement – http://facelift.mawhorter.net/examples/
Le remplacement des textes par des images avec une combinaison de php et javascript. - typeface.js — Rendering text with Javascript, <canvas>, and VML – http://typeface.neocracy.org/
Ainsi font font…
On va essayer juste à titre d’essai avec une police qui est mis à disposition sur site de cufón
. Cette police se nomme Vegur
. On passe outre le processus de conversion du fichier .ttf
au format .font.js
, par lequel on obtient un fichier .font.js
, en l’occurrence Vegur.font.js
. Cette conversion, on y revient en toute fin d’article.
Le fichier de la police Vegur
convertie en javascript
/*!
* Copyright (C) 2004-2008 dot colon. All rights reserved.
*/
Cufon.registerFont({"w":209,"face":{"font-family":"Vegur","font-weight":200,"font-stretch":"normal","units-per-em":"360","panose-1":"0 0 0 0 0 0 0 0 0 0","ascent":"270","descent":"-90","x-height":"4","bbox":"-11 -274 322 94","underline-thickness":"18","underline-position":"-36","unicode-range":"U+0020-U+00F3"},
Le fichier de la police Vegur
que nous avons renommé Ma_police_de_site
(Ma_police_de_site.font.js)
/*!
* Copyright (C) 2004-2008 dot colon. All rights reserved.
*/
Cufon.registerFont({"w":209,"face":{"font-family":"Ma_police_de_site","font-weight":200,"font-stretch":"normal","units-per-em":"360","panose-1":"0 0 0 0 0 0 0 0 0 0","ascent":"270","descent":"-90","x-height":"4","bbox":"-11 -274 322 94","underline-thickness":"18","underline-position":"-36","unicode-range":"U+0020-U+00F3"},
Source : http://github.com/sorccu/cufon/blob/master/fonts/Vegur.font.js
Charger cufón
à l’aide de mootools
Un vue rapide de l’arborescence de fichiers et de répertoires nécessaires au fonctionnement de l’ensemble. Le style de l’ensemble figure classiquement dans un fichier .css
. Un grand merci à Ben, pour la mise à disposition des fichiers et de ses explications.
Détails du répertoire js
- cufon-yui.js
- mootools-1.2-full.js
- functions.js
L’indispensable
Le nécessaire, le framework Mootools
L’accessoire
Le code source functions.js
var txt2img = { init: function(){ if(!$('page')) { log.console('init stopped !'); return false; } $('page').getElements('.txt2img').each(function(L, I){ // Cufon.replace(L, { fontFamily: 'Vegur' }); Cufon.replace(L, { fontFamily: 'Ma_police_de_site' }); }); } }; window.addEvent('domready', function() { txt2img.init(); }); |
Le code source du fichier load_cufon.php
L’ensemble des fichiers est appelé dans le fichier load_cufon.php
<?php /** timer start **/ $timer['start'] = microtime(true); /** auto detect paths **/ $self = pathinfo(__FILE__); define('BASEPATH', rtrim($self['dirname'], '/') . '/'); define('BASEURL', 'http://' . rtrim($_SERVER['HTTP_HOST'], '/') . '/' . str_replace(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/', '', rtrim($self['dirname'], '/') . '/')); /** config **/ define('_CSS', BASEURL . 'css/styles.css'); /* FONTS */ // define('_CUFON_FONT_1', BASEURL . 'fonts/Vegur.font.js'); define('_CUFON_FONT_1', BASEURL . 'fonts/Ma_police_de_site.font.js'); define('_CUFON_FRAMEWORK', BASEURL . 'js/cufon-yui.js'); define('_MOOTOOLS_FRAMEWORK', BASEURL . 'js/mootools-1.2-full.js'); define('_MOOTOOLS_MYFUNCTIONS', BASEURL . 'js/myfunctions.js'); /** timer stop **/ $timer['stop'] = microtime(true); ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>test cufon</title> <!-- css --> <link rel="stylesheet" href="<?=_CSS;?>" type="text/css" media="screen"/> <!-- End css --> <!-- cufon inclusions --> <script language="javascript" type="text/javascript" src="<?=_CUFON_FRAMEWORK;?>"></script> <script language="javascript" type="text/javascript" src="<?=_CUFON_FONT_1;?>"></script> <!-- End cufon inclusions --> <!-- mootools --> <script language="javascript" type="text/javascript" src="<?=_MOOTOOLS_FRAMEWORK;?>"></script> <script language="javascript" type="text/javascript" src="<?=_MOOTOOLS_MYFUNCTIONS;?>"></script> <!-- mootools --> </head> <body> <div id="page"> <h1 class="txt2img uppercase">Lorém ipsum dolor sît amet</h1> <br class="clear_10"> <a href="http://www.google.fr" target="_blank" class="txt2img italic">Lien Lorém ipsum dolor sît amet lien</a> <br class="clear_10"> <h2 class="txt2img italic">Lorém ipsum dolor sît amet</h2> <br class="clear_10"> <h3 class="txt2img underline">Lorém ipsum dolor sît amet</h3> <br class="clear_20"> <p class="txt2img"> Lorém ipsum dolor sît amet: consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua? Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br /><br /> Lorém ipsum dolor sît amet: consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua? Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p> <br class="clear_20"> </div> <!-- IE cufon hack to correct delay --> <script language="javascript" type="text/javascript"> Cufon.now(); </script> </body> </html> |
Extrait du code de styles.css
body { font-size: 12px; font-family: arial, helvetica, sans-serif; background-color: #ffffff; color: #434343; text-align: center; margin: 0 auto; padding: 0; } a { font-size: 12px; color: #434343; outline: none; } .clear_O { line-height: 0; clear: both; } .clear_10 { line-height: 10px; clear: both; } .clear_20 { line-height: 20px; clear: both; } h1 { background-color: #5698D2; margin: 0; padding: 10px; line-height: 16px; font-size: 16px; font-weight: normal; font-style: normal; text-decoration: none; text-transform: none; text-align: left; color: #ffffff; } h2 { background-color: #5698D2; margin: 0; padding: 10px; line-height: 14px; font-size: 14px; font-weight: normal; font-style: normal; text-decoration: none; text-transform: none; text-align: left; color: #ffffff; } h3 { background-color: #5698D2; margin: 0; padding: 10px; line-height: 12px; font-size: 12px; font-weight: normal; font-style: normal; text-decoration: none; text-transform: none; text-align: left; color: #ffffff; } /* to be continued */ |
Le plus important, le rendu du chargement
Le police est de la Vegur
mais rien ne vous empêche de faire le test avec de la TradeGothic
, GillSans
, HelveticaNeue
… Il vous faudra cependant avoir acheté les droits d’usage de cette police.
L’interface de conversion
Au terme de cette étape, vous obtiendrez le sésame pour votre site, c’est à dire la conversion de votre fichier .ttf
en .font.js
qui vous permettra de la mettre en place sur votre site.
Le site de cufón
où vous pourrez envoyer votre .tff
Les paramètres de conversion de votre police
Les paramètres plus complets de conversion de votre police
Le paramètre de sécurité, vous devez déclarer le site sur lequel vous allez utiliser cette police. Dans notre exemple, nous avons mis est www.google.com
, ils ont les moyens de supporter un procès pour du “Copyright infringement”
Pour aller plus loin
- Le site officiel
cufón - fonts for the people
http://cufon.shoqolate.com/generate/ - Quelques sites de démonstration utilisant
cufón
http://wiki.github.com/sorccu/cufon/demos - Les règles d’utilisation de
cufón
http://wiki.github.com/sorccu/cufon/styling - Le site dafont.com qui recèle des trésors de police
http://www.dafont.com/ - Des explications sur le mode de fonctionnement
cufón - fonts for the people
http://wiki.github.com/sorccu/cufon/about - La police
Vegur
donnée en exemple
http://github.com/sorccu/cufon/blob/master/fonts/Vegur.font.js - Un bonne article sur comment insérer
cufón
dans WP en attendant le plugin…
http://www.fran6art.com/webdesign/utiliser-cufon-sur-votre-blog-wordpress/ - Un point intéressant sur
cufón
et ses équivalents
http://www.alsacreations.com/actu/lire/636-cufon-nouvelle-alternative-pour-intgrer-des-polices-truetype-et-opentype-au-web.html