SlideShare une entreprise Scribd logo
1  sur  25
CSS
Des polices personnalisées !
Typeface.js   Cufón

   sIFR       FLIR
Typeface.js                   Cufón
       JavaScript          Inaccessible
                pas stylable
Flash                          PHP
    sIFR   non imprimable           FLIR
        Lent             Contraignant GD
@font-face
Petite histoire :
      Introduit en CSS2 (1998)
Supporté par IE et NS, mais pas en TTF
        Supprimé de CSS 2.1
   Apparition dans Safari et Firefox
        Ré-introduit en CSS3
Compatible :
     IE 4+
 Firefox 3.5+
  Safari 3.1+
 Opera 10+
Chrome 3.0b+
Avantages :
C’est vous qui gérez !
   Maintenabilité
    Accessibilité
    Performance
     Utilisabilité
Formats :

         IE : EOT
   Les autres : TTF, OTF
+ Opera et Chrome : SVG
Bientôt WOFF (Firefox 3.6)
TTF & OTF ?

      Pas des formats web
  Peuvent être piratés facilement
Uniquement utilisable en police libre
WOFF & EOT ?
      Restriction technique à un site
Inutilisable ailleurs en local ou sur le web


             + dans WOFF
          Compression directe
       Licence intégrée au fichier
3 lignes :

@font-face {
    font-family: "Scrogglet"; /* Nom de famille */
    src: url(Scrogglet.eot); /* IE */
    src: local("Scrogglet"), url(Scrogglet.ttf) format("truetype");
}
Et hop !

h1 {
    font-family: "Scrogglet", Arial, sans-serif;
    color: red;
    font-weight: bold;
    letter-spacing: 1px;
    text-transform: uppercase;
}
•   http://www.useragentman.com/blog/2009/09/20/font-face-in-depth/
Examples !
                     Bons :
•http://www.mozilla.com/en-US/firefox/3.6b3/firstrun/
•http://nicewebtype.com/fonts/graublau-sans-web/
•http://www.kleenhanz.com/



                  Mauvais :
•http://craigmod.com/journal/font-face/ (2.5Mo de polics)
•http://hsivonen.iki.fi/ (4Mo de polices)
Performances
                 FOUT : Flash Of Unstyled Text


Firefox et Opera chargent la page avec une police système
   Les autres : affichent le texte une fois la police chargée
      IE n’affiche rien avant que la police soit chargée
       si une balise script se situe avant @font-face.
Performances
                     Chargements




IE télécharge la police dès qu’il rencontre @font-face
Les autres : Dès qu’ils le rencontrent dans font-family
Performances
               Et si le chargement plante ?


   Firefox & Opera : Le texte est en police système
Safari : Affiche le texte en police système après 60secs
       IE met 10 minutes à faire pareil que Safari
       Chrome (beta 3) n’affiche jamais le texte...
Optimisons !
FontForge et FontSquirrel pour réduire la palette
     Gzip pour gagner jusqu’à +40% de poids
       Cache et téléchargements parallèles
   Lazy Loading en JavaScript, au moins pour IE
    Définissez @font-face avant des <script>
  Supprimer les règles @font-face non utilisées
Lazy Loading ?
                    Chargement come sur Firefox

function lazyLoad() {

 var sRule1 =

 
 "@font-face {" +

 
 " font-family: 'Yanone';" +

 
 " src: url('/bin/resource.cgi?type=font&sleep=6');" +

 
 " src: local('Yanone'), " +
                "url('/bin/resource.cgi?type=font&sleep=6') " +
                "format('truetype');" +

 
 "}";


   var style1 = document.styleSheets[0];

   if ( "function" === typeof(style1.insertRule) ) {

   
 // Firefox, Safari, Chrome

   
 style1.insertRule(sRule1, 0);

   }

   else if ( "string" === typeof(style1.cssText) ) {

   
 // IE

   
 style1.cssText = sRule1;

   }

}
On retient ?
3 lignes de CSS
Optimisez les performances !
Lazy Loading = important
Adieu Cufón, Flash, ...
http://yves.vg
    Yves Van Goethem
                            novembre 2009   http://twitter.com/yvg



                             Merci !
                              Sources :
•   http://www.useragentman.com/blog/2009/09/20/font-face-in-depth/
•   http://www.stevesouders.com/blog/2009/10/13/font-face-and-performance/




                        Ressources :
•   http://www.smashingmagazine.com/2007/11/08/40-excellent-freefonts-for-professional-design/
•   http://kernest.com/
•   http://webfonts.info/wiki/index.php?title=Fonts_available_for_%40font-face_embedding
•   http://opentype.info/demo/webfontdemo.html
•   http://openfontlibrary.org/media/view/media/fonts



                                Outils :
•   http://fontforge.sourceforge.net/
•   http://www.fontsquirrel.com/fontface/generator

Contenu connexe

Similaire à CSS @font-face : Des polices personnalisées

Tutoriel slideshare3
Tutoriel slideshare3Tutoriel slideshare3
Tutoriel slideshare3Rabolliot
 
20 minutes sur les typos en CSS
20 minutes sur les typos en CSS20 minutes sur les typos en CSS
20 minutes sur les typos en CSSBenoit Henry
 
Un site web responsive en une heure
Un site web responsive en une heureUn site web responsive en une heure
Un site web responsive en une heureRaphaël Goetter
 
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
Annexe1   éTude Comparative Sur Les Moteurs De RechercheAnnexe1   éTude Comparative Sur Les Moteurs De Recherche
Annexe1 éTude Comparative Sur Les Moteurs De RechercheMohamed Ben Bouzid
 
Chapitre 1_HTML_complet_version1.pdf
Chapitre 1_HTML_complet_version1.pdfChapitre 1_HTML_complet_version1.pdf
Chapitre 1_HTML_complet_version1.pdfYassineZARIOUH
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousjwajsberg
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
Rmll2010 Html5 Css3
Rmll2010 Html5 Css3Rmll2010 Html5 Css3
Rmll2010 Html5 Css3Fnot
 
Les fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigtsLes fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigtsAref Jdey
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopFrédéric Harper
 
Internationalisation du Front
Internationalisation du FrontInternationalisation du Front
Internationalisation du FrontYannick Croissant
 
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)Raphaël Goetter
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?Frédéric Harper
 
Découverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites ApacheDécouverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites ApacheChristophe Avonture
 

Similaire à CSS @font-face : Des polices personnalisées (20)

Tutoriel slideshare3
Tutoriel slideshare3Tutoriel slideshare3
Tutoriel slideshare3
 
20 minutes sur les typos en CSS
20 minutes sur les typos en CSS20 minutes sur les typos en CSS
20 minutes sur les typos en CSS
 
Un site web responsive en une heure
Un site web responsive en une heureUn site web responsive en une heure
Un site web responsive en une heure
 
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
Annexe1   éTude Comparative Sur Les Moteurs De RechercheAnnexe1   éTude Comparative Sur Les Moteurs De Recherche
Annexe1 éTude Comparative Sur Les Moteurs De Recherche
 
Chapitre 1_HTML_complet_version1.pdf
Chapitre 1_HTML_complet_version1.pdfChapitre 1_HTML_complet_version1.pdf
Chapitre 1_HTML_complet_version1.pdf
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Browser
BrowserBrowser
Browser
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
HTML5 & SilverLight 5
HTML5 & SilverLight 5HTML5 & SilverLight 5
HTML5 & SilverLight 5
 
Rmll2010 Html5 Css3
Rmll2010 Html5 Css3Rmll2010 Html5 Css3
Rmll2010 Html5 Css3
 
Les fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigtsLes fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigts
 
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshopConfoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
Confoo - 2012-02-27 au 2012-02-28 - HTML5 workshop
 
Internationalisation du Front
Internationalisation du FrontInternationalisation du Front
Internationalisation du Front
 
Flex4.5 air3.0
Flex4.5 air3.0Flex4.5 air3.0
Flex4.5 air3.0
 
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)
Un site mobile en une heure ? Top chrono ! (Barcamp-Bordeaux 2011)
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
Mioozic backfrommax
Mioozic backfrommaxMioozic backfrommax
Mioozic backfrommax
 
Découverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites ApacheDécouverte d'aeSecure, sécurisation et optimisation sites Apache
Découverte d'aeSecure, sécurisation et optimisation sites Apache
 
Atelier template
Atelier templateAtelier template
Atelier template
 

Plus de Yves Van Goethem

CSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsCSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsYves Van Goethem
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 

Plus de Yves Van Goethem (6)

Are We Playing Yet?
Are We Playing Yet?Are We Playing Yet?
Are We Playing Yet?
 
Tame The Mobile Web
Tame The Mobile WebTame The Mobile Web
Tame The Mobile Web
 
Dompter Le Web Mobile
Dompter Le Web MobileDompter Le Web Mobile
Dompter Le Web Mobile
 
CSS @font-face : Personalized fonts
CSS @font-face : Personalized fontsCSS @font-face : Personalized fonts
CSS @font-face : Personalized fonts
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
PNGHack 1.0 Presentation
PNGHack 1.0 PresentationPNGHack 1.0 Presentation
PNGHack 1.0 Presentation
 

CSS @font-face : Des polices personnalisées

  • 2. Typeface.js Cufón sIFR FLIR
  • 3. Typeface.js Cufón JavaScript Inaccessible pas stylable Flash PHP sIFR non imprimable FLIR Lent Contraignant GD
  • 5. Petite histoire : Introduit en CSS2 (1998) Supporté par IE et NS, mais pas en TTF Supprimé de CSS 2.1 Apparition dans Safari et Firefox Ré-introduit en CSS3
  • 6. Compatible : IE 4+ Firefox 3.5+ Safari 3.1+ Opera 10+ Chrome 3.0b+
  • 7. Avantages : C’est vous qui gérez ! Maintenabilité Accessibilité Performance Utilisabilité
  • 8. Formats : IE : EOT Les autres : TTF, OTF + Opera et Chrome : SVG Bientôt WOFF (Firefox 3.6)
  • 9. TTF & OTF ? Pas des formats web Peuvent être piratés facilement Uniquement utilisable en police libre
  • 10. WOFF & EOT ? Restriction technique à un site Inutilisable ailleurs en local ou sur le web + dans WOFF Compression directe Licence intégrée au fichier
  • 11. 3 lignes : @font-face { font-family: "Scrogglet"; /* Nom de famille */ src: url(Scrogglet.eot); /* IE */ src: local("Scrogglet"), url(Scrogglet.ttf) format("truetype"); }
  • 12. Et hop ! h1 { font-family: "Scrogglet", Arial, sans-serif; color: red; font-weight: bold; letter-spacing: 1px; text-transform: uppercase; }
  • 13. http://www.useragentman.com/blog/2009/09/20/font-face-in-depth/
  • 14. Examples ! Bons : •http://www.mozilla.com/en-US/firefox/3.6b3/firstrun/ •http://nicewebtype.com/fonts/graublau-sans-web/ •http://www.kleenhanz.com/ Mauvais : •http://craigmod.com/journal/font-face/ (2.5Mo de polics) •http://hsivonen.iki.fi/ (4Mo de polices)
  • 15. Performances FOUT : Flash Of Unstyled Text Firefox et Opera chargent la page avec une police système Les autres : affichent le texte une fois la police chargée IE n’affiche rien avant que la police soit chargée si une balise script se situe avant @font-face.
  • 16. Performances Chargements IE télécharge la police dès qu’il rencontre @font-face Les autres : Dès qu’ils le rencontrent dans font-family
  • 17. Performances Et si le chargement plante ? Firefox & Opera : Le texte est en police système Safari : Affiche le texte en police système après 60secs IE met 10 minutes à faire pareil que Safari Chrome (beta 3) n’affiche jamais le texte...
  • 18. Optimisons ! FontForge et FontSquirrel pour réduire la palette Gzip pour gagner jusqu’à +40% de poids Cache et téléchargements parallèles Lazy Loading en JavaScript, au moins pour IE Définissez @font-face avant des <script> Supprimer les règles @font-face non utilisées
  • 19. Lazy Loading ? Chargement come sur Firefox function lazyLoad() { var sRule1 = "@font-face {" + " font-family: 'Yanone';" + " src: url('/bin/resource.cgi?type=font&sleep=6');" + " src: local('Yanone'), " + "url('/bin/resource.cgi?type=font&sleep=6') " + "format('truetype');" + "}"; var style1 = document.styleSheets[0]; if ( "function" === typeof(style1.insertRule) ) { // Firefox, Safari, Chrome style1.insertRule(sRule1, 0); } else if ( "string" === typeof(style1.cssText) ) { // IE style1.cssText = sRule1; } }
  • 21. 3 lignes de CSS
  • 23. Lazy Loading = important
  • 25. http://yves.vg Yves Van Goethem novembre 2009 http://twitter.com/yvg Merci ! Sources : • http://www.useragentman.com/blog/2009/09/20/font-face-in-depth/ • http://www.stevesouders.com/blog/2009/10/13/font-face-and-performance/ Ressources : • http://www.smashingmagazine.com/2007/11/08/40-excellent-freefonts-for-professional-design/ • http://kernest.com/ • http://webfonts.info/wiki/index.php?title=Fonts_available_for_%40font-face_embedding • http://opentype.info/demo/webfontdemo.html • http://openfontlibrary.org/media/view/media/fonts Outils : • http://fontforge.sourceforge.net/ • http://www.fontsquirrel.com/fontface/generator