<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://jeremie.patonnier.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Chez Jérémie</title>
  <link>http://jeremie.patonnier.net/</link>
  <atom:link href="http://jeremie.patonnier.net/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Chez Jérémie, parfois c'est sérieux, parfois non !</description>
  <language>fr</language>
  <pubDate>Thu, 26 Jan 2012 10:50:04 +0100</pubDate>
  <copyright>Creative Commons BY-NC-SA 2.0 Fr</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Des effets pour le Web</title>
    <link>http://jeremie.patonnier.net/post/2012/01/12/Des-effets-pour-le-Web</link>
    <guid isPermaLink="false">urn:md5:16a6f2bb353a700e14ca0bed0405a292</guid>
    <pubDate>Thu, 12 Jan 2012 09:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>CSS</category><category>Firefox</category><category>Internet Explorer</category><category>SVG</category><category>webdesign</category><category>Webkit</category>    
    <description>&lt;p&gt;Cet article est la traduction d&amp;#8217;&lt;a hreflang=&quot;en&quot; href=&quot;http://drublic.de/blog/effects-for-the-web/&quot;&gt;un article de Christian «&amp;#160;Schepp&amp;#160;» Schaefer&lt;/a&gt; à propos des nouvelles propriétés de filtres CSS3 et montre comment commencer à les utiliser tout en proposant des solution de repli basées sur ce que supportent les navigateurs actuels.&lt;/p&gt;    &lt;p&gt;A la fin des années 90, CSS 2.1 nous a fourni un ensemble d&amp;#8217;outils de base pour pouvoir enfin se débarrasser des mises en page en tableaux. Maintenant c&amp;#8217;est le tour de CSS3 qui nous donne de nouveaux outils plus précis pour gérer les détails de mise en forme&amp;#160;: Les fontes embarquées, les coins arrondis, les dégradés, la transparence des éléments et des couleurs, les ombre portées sur le texte et les boites, etc.&lt;/p&gt;
&lt;p&gt;Évidement, lorsqu&amp;#8217;on compare notre outillage à celui de logiciels comme Photoshop, on se dit qu&amp;#8217;on pourrait rêver mieux. Ce genre de logiciel permet, par exemple, de désaturer une image ou bien de la rendre plus nette ou plus floue. Pourquoi aurions-nous besoin de ce genre d&amp;#8217;outil pour le Web&amp;#160;? Et bien, désaturer ou flouter une partie de page Web peut être un moyen de guider le regard de vos visiteurs sur des zones choisies. Ça pourrais aussi aider vos visiteurs à concentrer leur attention sur les zones qui n&amp;#8217;ont pas été modifiées. Par exemple, on peut utiliser ce genre d&amp;#8217;effets pour mettre en scène une galerie d&amp;#8217;images&amp;#160;:&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://mikematas.com/#%21g9/2nLk/photos/one_week_in_japan_-_3_of_5&quot;&gt;&lt;img title=&quot;Mike Matas - One Week In Japan&quot; alt=&quot;Mike Matas - One Week In Japan&quot; src=&quot;http://jeremie.patonnier.net/public/web-effect/Mike-Matas-One-Week-In-Japan.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;D&amp;#8217;un autre coté, un effet de netteté peut être utile lorsque vous réduisez une image dans le navigateur. Sans lui, vous allez perdre un certain nombre de détails sur cette image.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;sharpen.jpg&quot; src=&quot;http://jeremie.patonnier.net/public/web-effect/sharpen.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Voila, ce serait génial si nous pouvions avoir ce genre d&amp;#8217;effets à notre disposition, un peu comme la propriété CSS &lt;code&gt;opacity&lt;/code&gt; qui nous permet de rendre un élément transparent. Malheureusement, ce n&amp;#8217;est pas le cas.&lt;/p&gt;
&lt;h2&gt;Le &lt;em&gt;status quo&lt;/em&gt; actuel&lt;/h2&gt;
&lt;p&gt;Au lieu de cela, pour simuler un effet de désaturation/niveau de gris nous sommes actuellement obligés de passer en revue «&amp;#160;à la main&amp;#160;», via Javascript, toutes les propriétés utilisant de la couleur sur un éléments donnée pour leur attribuer la valeur de gris que l&amp;#8217;on veut. Dès que l&amp;#8217;on doit faire face à des images ou de la vidéo, c&amp;#8217;est encore plus compliqué&amp;#160;: Dans ce cas-là, nous avons besoin de nous appuyer sur la balise &lt;a hreflang=&quot;en&quot; href=&quot;http://spyrestudios.com/html5-canvas-image-effects-black-white/&quot;&gt;Canvas de HTML5 pour pouvoir changer leur couleur pixel par pixel&lt;/a&gt; puis pour remplacer l&amp;#8217;élément d&amp;#8217;origine. Même si nous nous appuyons sur des bibliothèques tel que &lt;a hreflang=&quot;en&quot; href=&quot;http://camanjs.com/examples&quot;&gt;CamanJS&lt;/a&gt; ou &lt;a hreflang=&quot;en&quot; href=&quot;http://www.iliasiovis.com/hoverizr/&quot;&gt;Hoverizr&lt;/a&gt;, ça reste quand même un truc assez sale.&lt;/p&gt;
&lt;p&gt;Un effet de flou peut également être simulé à l&amp;#8217;aide des propriétés &lt;a hreflang=&quot;de&quot; href=&quot;http://webstandard.kulando.de/post/2011/12/09/css3-text-shadow-erzeugt-blur-effekt-tag-10-im-css3-adventskalender-2011&quot;&gt;text-shadow&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;http://tympanus.net/codrops/2011/12/14/item-blur-effect-with-css3-and-jquery/&quot;&gt;box-shadow&lt;/a&gt; en leur appliquant la même couleur que le texte ou l&amp;#8217;arrière-plan auquel elles se rapportent. Le problème, c&amp;#8217;est que cette illusion ne fonctionnera pas avec les boîtes multicolores non plus qu&amp;#8217;avec les images ou les vidéos comme précédemment. Une fois de plus, il faudra se reposer sur des manipulation à base de Canvas HTML5. Arf!&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://tympanus.net/codrops/2011/12/14/item-blur-effect-with-css3-and-jquery/&quot;&gt;&lt;img alt=&quot;Item Blur Effect with CSS3 and jQuery&quot; src=&quot;http://jeremie.patonnier.net/public/web-effect/Item-Blur-Effect-with-CSS3-and-jQuery-Google-Chrome_2011-12-18_11-37-58.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Á propos de la balise Canvas: La bibliothèque &lt;a hreflang=&quot;en&quot; href=&quot;https://github.com/pmura/blurry.js&quot;&gt;blurry.js&lt;/a&gt; propose une solution particulièrement brutale à cette histoire de flou. Elle va extraire tout le contenu à flouter, va le recréer dans une balise Canvas (en utilisant partiellement Cufón), va le flouter et enfin va réinjecter le tout à l&amp;#8217;emplacement de l’original.&lt;/p&gt;
&lt;p&gt;En ce qui concerne la netteté, il n&amp;#8217;existe actuellement aucun truc basé sur CSS pour réaliser un tel effet, ce qui nous laisse une fois de plus seul face à la balise Canvas.&lt;/p&gt;
&lt;h2&gt;SVG à la rescousse&lt;/h2&gt;
&lt;p&gt;Il est intéressant de noter que SVG connaît la notion de &lt;a hreflang=&quot;en&quot; href=&quot;http://electricbeach.org/?p=950&quot;&gt;filtres&lt;/a&gt; depuis des lustres avec, entre autre, les mélanges de couleurs, l&amp;#8217;ajustement de la luminosité et du contraste, les effets d&amp;#8217;éclairage, le «&amp;#160;&lt;em lang=&quot;en&quot;&gt;displacement mapping&lt;/em&gt;&amp;#160;», les flous gaussien et de déplacement, le bruit, la netteté, etc.&lt;/p&gt;
&lt;p&gt;Ainsi, maintenant que SVG est de plus en plus largement supporté, nous pourrions essayer de placer nos contenus, non plus dans du HTML, mais plutôt dans du SVG que l&amp;#8217;on placerait dans du HTML. Nous serions alors capables d&amp;#8217;&lt;a hreflang=&quot;en&quot; href=&quot;http://dev.opera.com/articles/view/how-to-do-photoshop-like-effects-in-svg/&quot;&gt;appliquer n&amp;#8217;importe quel effet à notre contenu&lt;/a&gt;. Le problème, c&amp;#8217;est que la plupart des intégrateurs HTML risquent de ne pas être très chauds pour se mettre à produire du balisage SVG de ce genre&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_xml&quot;&gt;&amp;lt;text font-family=&quot;Arial&quot; font-weight=&quot;900&quot; font-size=&quot;40&quot; x=&quot;20&quot; y=&quot;55%&quot;&amp;gt;SVG Example&amp;lt;/text&amp;gt;&lt;/pre&gt;&lt;p&gt;Il existe un truc un peu plus sympa en SVG, c&amp;#8217;est la balise &lt;code&gt;foreignObject&lt;/code&gt;. &lt;a hreflang=&quot;en&quot; href=&quot;http://ajaxian.com/archives/foreignobject-hey-youve-got-html-in-my-svg&quot;&gt;Elle nous permet d&amp;#8217;inclure n&amp;#8217;importe quel type de balisage à l’intérieur d&amp;#8217;un contenu SVG&lt;/a&gt;. C&amp;#8217;est un peu comme mettre du SVG directement dans un document HTML5, mais dans l&amp;#8217;autre sens. Dès que vous avez inclus vos trucs dans du SVG, vous pouvez y appliquer des filtres comme vous le feriez pour n&amp;#8217;importe qu&amp;#8217;elle autre partis de votre contenu SVG. &lt;a hreflang=&quot;en&quot; href=&quot;http://dev.opera.com/articles/view/applying-color-tints-to-web-pages-with-s/&quot;&gt;Vous pouvez embarquer une page HTML entière et lui appliquer des filtres&lt;/a&gt;, ou &lt;a href=&quot;http://www.flother.com/examples/canvas-blur/v4/blur.svg&quot;&gt;vous restreindre à une simple image bitmap&lt;/a&gt;. Bien sûr, vous devez mettre votre contenu SVG lui-même dans une page HTML, ce qui peut conduire à quelques migraines (du HTML embarqué dans du SVG embarqué dans du HTML). Le support navigateur pour la balise &lt;code&gt;foreignObject&lt;/code&gt; est &lt;a hreflang=&quot;en&quot; href=&quot;http://caniuse.com/#feat=svg-html&quot;&gt;plutôt bon&lt;/a&gt;. Seul Internet Explorer reste à la traine. Heureusement, Internet Explorer 10 va rattraper le coup en supportant à la fois les filtres SVG et la balise &lt;code&gt;foreignObject&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;Les filtres SVG sur du contenu HTML via CSS&lt;/h2&gt;
&lt;p&gt;Depuis sa version 3.5, Firefox va encore plus loin. Il vous permet d&amp;#8217;appliquer un filtre SVG, défini dans un document externe, à n&amp;#8217;importe quel contenu HTML en passant simplement par une feuille de style. Nous pouvons, par exemple, définir dans un document SVG un filtre de flou gaussien (feGaussianBlur) ayant un rayon de 2 pixels et lui donner l&amp;#8217;identifiant &lt;code&gt;gaussian_blur&lt;/code&gt;&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &lt;br /&gt;&quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&amp;gt;&lt;br /&gt;&amp;lt;svg width=&quot;1&quot; height=&quot;1&quot; version=&quot;1.1&quot; &lt;br /&gt;xmlns=&quot;http://www.w3.org/2000/svg&quot; &lt;br /&gt;xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;defs&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter id=&quot;gaussian_blur&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;feGaussianBlur in=&quot;SourceGraphic&quot; stdDeviation=&quot;2&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/defs&amp;gt;&lt;br /&gt;&amp;lt;/svg&amp;gt;&lt;/pre&gt;&lt;p&gt;On peut alors référencer ce filtre à l&amp;#8217;aide du nom du fichier SVG et de son l&amp;#8217;identifiant au sein de notre feuille de style pour l&amp;#8217;appliquer à toutes les images&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;img {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filter: url(blur.svg#gaussian_blur);&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://jeremie.patonnier.net/public/web-effect/Unscha_rfe-via-CSS-Filter-SVG-Mozilla-Firefox_2011-12-18_21-18-59.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez voir cette &lt;a hreflang=&quot;en&quot; href=&quot;http://jeremie.patonnier.net/public/web-effect/blur/blur.html&quot;&gt;démo en &lt;em lang=&quot;en&quot;&gt;live&lt;/em&gt; ici&lt;/a&gt;. Hélas, comme je vous le disais, ça ne fonctionne qu&amp;#8217;avec Firefox.&lt;/p&gt;
&lt;p&gt;Bien heureusement, ce n&amp;#8217;est pas la fin de l&amp;#8217;histoire. Internet Explorer connaît lui aussi les filtres. Ceux-ci ne sont pas basés sur SVG, mais sur des mécanismes propres à la bibliothèque graphique de Windows&amp;#160;: DirectX. Parmi ces filtres certains sont bien connus pour nous aider à résoudre certains bugs (le filtre alpha pour les image PNG) ou pour imiter certaines fonctionnalités de CSS3 (le filtre des dégradé). Néanmoins, il en existes d&amp;#8217;autres très similaires aux filtres SVG&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;/* Flou de 2 pixels de rayon */&lt;br /&gt;filter: progid:DXImageTransform.Microsoft.Blur(pixelradius=2);&lt;br /&gt;/* Flou de mouvement de 13 pixel avec un angle de 310° */&lt;br /&gt;filter: progid:DXImageTransform.Microsoft.MotionBlur(strength=13, direction=310);&lt;br /&gt;/* niveau de gris / désaturation */&lt;br /&gt;filter: gray;&lt;br /&gt;/* Effet « Rayon X » (inversion des niveaux de gris) */&lt;br /&gt;filter: xray;&lt;br /&gt;/* cône de lumière */&lt;br /&gt;filter: light();&lt;br /&gt;/* Extrusion */&lt;br /&gt;filter: progid:DXImageTransform.Microsoft.emboss();&lt;/pre&gt;&lt;p&gt;Vous trouverez une liste complète de ces filtres ici&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://msdn.microsoft.com/en-us/library/ms673539%28v=VS.85%29.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ms673539(v=VS.85).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ainsi, à l&amp;#8217;aide de commentaires conditionnels, nous pouvons désormais proposer un certain nombre d&amp;#8217;effets à deux familles de navigateurs qui à elles deux représente une part non négligeable du marché&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_html&quot;&gt;&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;&amp;lt;!--[if lte IE 9]&amp;gt; &amp;lt;html class=&quot;ie&quot; lang=&quot;en&quot;&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;!--[if gt IE 9]&amp;gt;&amp;lt;!--&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Blur via CSS&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;img {&lt;br /&gt;&amp;nbsp; filter: url(blur.svg#gaussian_blur);&lt;br /&gt;}&lt;br /&gt;.ie img {&lt;br /&gt;&amp;nbsp; margin: -2px;&lt;br /&gt;&amp;nbsp; filter: progid:DXImageTransform.Microsoft.blur(pixelradius=2);&lt;br /&gt;&amp;nbsp; zoom: 1;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;img src=&quot;http://jeremie.patonnier.net/post/2012/01/12/stadt.jpg&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; alt=&quot;Some rights reserved by zigazou76&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; width=&quot;500&quot; height=&quot;333&quot;&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;&lt;code&gt;margin: -2px&lt;/code&gt; permet de contre balancer le changement de dimension de l&amp;#8217;image provoqué par le filtre. &lt;code&gt;zoom: 1&lt;/code&gt; est necessaire pour que la plupart des filtres fonctionnent avec in IE6/7. Malheureusement, IE10 ne supporte plus les filtres propriétaires de Microsoft et n&amp;#8217;autorise pas encore les filtres SVG sur du contenu HTML &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://jeremie.patonnier.net/public/web-effect/blur/blur2.html&quot;&gt;Vous trouverez ici la version modifié de l&amp;#8217;exemple&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Un certain nombre de personnes ont apprécié l&amp;#8217;idée de Firefox d&amp;#8217;ouvrir les filtres SVG au contenu HTML. Ils ont donc formé un nouveau groupe au W3C appelé &lt;em lang=&quot;en&quot;&gt;W3C FX Task Force&lt;/em&gt; dont l&amp;#8217;objectif est de standardiser et simplifier l&amp;#8217;usage des filtres SVG dans tous les navigateurs. Puisque Firefox avait défriché le terrain des filtres d&amp;#8217;effets, le premier brouillon de spécification est vite arrivé sous le nom de &lt;a style=&quot;font-style: italic;&quot; href=&quot;https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html&quot; target=&quot;_blank&quot;&gt;W3C Filter Effects 1.0&lt;/a&gt;. Les mécanismes proposés dans ce brouillon fonctionnent à peu près comme dans Firefox tout en offrant en plus un certain nombre de raccourcis vers les effets les plus intéressants. Les filtres bénéficiant d&amp;#8217;un raccourci fonctionnent sans l&amp;#8217;aide d&amp;#8217;un fichier SVG externe. Ils sont directement codés au cœur du navigateur. Les raccourcis en question sont&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;grayscale&lt;/li&gt;
&lt;li&gt;sepia&lt;/li&gt;
&lt;li&gt;saturate&lt;/li&gt;
&lt;li&gt;hue-rotate&lt;/li&gt;
&lt;li&gt;invert&lt;/li&gt;
&lt;li&gt;opacity&lt;/li&gt;
&lt;li&gt;brightness&lt;/li&gt;
&lt;li&gt;contrast&lt;/li&gt;
&lt;li&gt;blur&lt;/li&gt;
&lt;li&gt;drop-shadow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un autre avantage de ces raccourcis, c&amp;#8217;est qu&amp;#8217;ils peuvent être animés via les transformations et les animations CSS&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;.foo {&lt;br /&gt;&amp;nbsp; filter: blur(2px);&lt;br /&gt;&amp;nbsp; transition: filter 1s ease-in-out;&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;br /&gt;.foo:hover {&lt;br /&gt;&amp;nbsp; filter: blur(0);&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;Ce serait plus difficile et moins efficace de réaliser cela dans un document SVG.&lt;/p&gt;
&lt;p&gt;Pour finir, les effets de filtre prévois d&amp;#8217;être enrichie à l&amp;#8217;aide des &lt;a hreflang=&quot;en&quot; href=&quot;http://www.adobe.com/devnet/html5/articles/css-shaders.html&quot;&gt;&lt;em lang=&quot;en&quot;&gt;vertex shaders&lt;/em&gt; et &lt;em lang=&quot;en&quot;&gt;fragment shaders&lt;/em&gt; d&amp;#8217;OpenGL/WebGL&lt;/a&gt;. Les &lt;em lang=&quot;en&quot;&gt;vertex shaders&lt;/em&gt; permettront d&amp;#8217;appliquer un maillage 2D sur un élément que vous pourrez alors déformer en déplaçant tous les points du maillage selon une formule mathématique de votre choix. Les &lt;em lang=&quot;en&quot;&gt;fragment shaders&lt;/em&gt; d&amp;#8217;un autre côté permettront de réaliser ces transformations mathématiques sur les couleurs de chacun des pixels de cet élément. Ces deux types de filtres bénéficieront en plus de l’accélération matérielle de votre carte graphique.&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.adobe.com/devnet/html5/articles/css-shaders.html&quot;&gt;&lt;img alt=&quot;CSS shaders Cinematic effects for the web&quot; src=&quot;http://jeremie.patonnier.net/public/web-effect/CSS-shaders-Cinematic-effects-for-the-web-Adobe-Developer-Connection-Google_2011-12-18_19-31-01.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Par un heureux hasard, il y a quelques semaines les premières implémentations de ces filtres sont apparues dans les &lt;a hreflang=&quot;en&quot; href=&quot;http://nightly.webkit.org/&quot;&gt;compilations nocturnes de Webkit&lt;/a&gt; et sont à présent disponibles dans &lt;a hreflang=&quot;en&quot; href=&quot;http://tools.google.com/dlpage/chromesxs&quot;&gt;Chrome Canary&lt;/a&gt;. Ça veut dire que d&amp;#8217;ici 3 mois les filtres CSS seront disponibles dans la version stable de Chrome et à brève échéance dans Safari. Ça veut également dire que nous ne sommes pas loin de pouvoir commencer à utiliser des filtres CSS sur 90 à 95% du marché des navigateurs&amp;#160;!&lt;/p&gt;
&lt;p&gt;Si l&amp;#8217;on en revient à notre exemple, tout ce que nous avons à faire pour supporter Webkit est de rajouter un simple &lt;code&gt;-webkit-filter: blur(2px);&lt;/code&gt;. Néanmoins, il faudra faire attention de le placer &lt;strong&gt;après&lt;/strong&gt; la propriété &lt;code&gt;filter&lt;/code&gt; non-préfixée. La raison étant que lorsque Webkit supportera la version non-prefixée de la propriété &lt;code&gt;filter&lt;/code&gt;, la syntaxe propre à Firefox créra des problèmes avec la transition CSS que nous allons appliquer pour passer doucement entre la version flou et nette de l&amp;#8217;image via &lt;code&gt;-webkit-transition: -webkit-filter 1s ease-in-out;&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;sh_html&quot;&gt;&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;&amp;lt;!--[if lte IE 9]&amp;gt; &amp;lt;html class=&quot;ie&quot;&amp;gt; &amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;!--[if gt IE 9]&amp;gt;&amp;lt;!--&amp;gt; &amp;lt;html&amp;gt; &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Blur via CSS&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;img {&lt;br /&gt;&amp;nbsp; filter: url(blur.svg#gaussian_blur);&lt;br /&gt;&amp;nbsp; -webkit-filter: blur(2px);&lt;br /&gt;&amp;nbsp; -webkit-transition: -webkit-filter 1s ease-in-out;&lt;br /&gt;}&lt;br /&gt;img:hover {&lt;br /&gt;&amp;nbsp; filter: none;&lt;br /&gt;&amp;nbsp; -webkit-filter: blur(0);&lt;br /&gt;}&lt;br /&gt;.ie img {&lt;br /&gt;&amp;nbsp; margin: -2px;&lt;br /&gt;&amp;nbsp; filter: progid:DXImageTransform.Microsoft.blur(pixelradius=2);&lt;br /&gt;&amp;nbsp; zoom: 1;&lt;br /&gt;}&lt;br /&gt;.ie img:hover {&lt;br /&gt;&amp;nbsp; margin: 0;&lt;br /&gt;&amp;nbsp; filter: none;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;img src=&quot;http://jeremie.patonnier.net/post/2012/01/12/stadt.jpg&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; alt=&quot;Some rights reserved by zigazou76&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; width=&quot;500&quot; height=&quot;333&quot;&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://jeremie.patonnier.net/public/web-effect/blur/blur3.html&quot;&gt;La dernière version de l&amp;#8217;exemple&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Et voila, des effets de filtres pour tout le monde&amp;#160;! Faisons de 2012 l&amp;#8217;année des filtres CSS et &lt;a hreflang=&quot;en&quot; href=&quot;http://davidwalsh.name/dw-content/css-filters.php&quot;&gt;amusez-vous bien avec&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2012/01/12/Des-effets-pour-le-Web#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2012/01/12/Des-effets-pour-le-Web#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/54</wfw:commentRss>
      </item>
    
  <item>
    <title>Documenter le Web ouvert, pourquoi et comment</title>
    <link>http://jeremie.patonnier.net/post/2012/01/02/Documenter-le-Web-ouvert%2C-pourquoi-et-comment</link>
    <guid isPermaLink="false">urn:md5:6ca6c11fd35d2d86b5c63a3809b939ca</guid>
    <pubDate>Mon, 02 Jan 2012 09:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>documentation</category><category>Mozilla</category><category>Opera</category><category>W3C</category>    
    <description>&lt;p&gt;Cela fait quelques temps que je m&amp;#8217;implique dans plusieurs projets visant
à documenter ou à fournir du matériel pédagogique concernant les
technologies du web dit ouvert (standards et technologies sous licences
open-source). De mon point de vue, cet effort de documentation est
nécessaire pour plusieurs raison que je vais vous détailler ici et
j&amp;#8217;espère bien convaincre quelques-uns d&amp;#8217;entre vous de me suivre sur ce
long chemin… un peu aride, il faut bien l&amp;#8217;admettre :-P&lt;/p&gt;    &lt;h2&gt;Pourquoi&amp;#160;?&lt;/h2&gt;
&lt;p&gt;En temps que «&amp;#160;vieux&amp;#160;» du Web (je créer des sites à titre personnel depuis 1997 et à titre professionnel depuis 2000), j&amp;#8217;ai appris le Web «&amp;#160;à la dure&amp;#160;» en lisant quelques livres de qualité inégale, en utilisant outrancièrement la fonction «&amp;#160;afficher la source&amp;#160;» de mes navigateurs et en fréquentant divers forums de discussion. J&amp;#8217;ai fait beaucoup d&amp;#8217;erreurs (et je continue à en faire) mais en rencontrant les bonnes personnes et en apprenant de ces erreurs j&amp;#8217;ai réussie à progresser pour arriver ou j&amp;#8217;en suis aujourd&amp;#8217;hui. Certes, je ne regrette rien, mais franchement ce n&amp;#8217;était pas simple tout les jours et s&amp;#8217;il est possible de se simplifier la vie, autant ne pas s&amp;#8217;en priver.&lt;/p&gt;
&lt;p&gt;Au delà de mes considérations personnelles et de mes propre besoins et envies, il y a tout de même quelques points notables qui militent en faveur d&amp;#8217;une documentation plus importante et plus «&amp;#160;normé&amp;#160;» des différentes technologies Web.&lt;/p&gt;
&lt;h3&gt;Place aux jeunes&lt;/h3&gt;
&lt;p&gt;Je vois actuellement arriver une nouvelle génération de développeurs et d&amp;#8217;intégrateurs Web. A mon grand désarrois, peu d&amp;#8217;entre eux sont vraiment doués. C&amp;#8217;est quelque chose d&amp;#8217;assez normal, tout le monde ne peut pas être un génie. Mais le problème ne se situe pas là. Le problème est souvent bien en amont au niveau de leur formation. Malheureusement, il existe encore peu de cycles d&amp;#8217;études qui forment vraiment aux technologies et problématiques propres au Web (en France, on est encore trop dans la dichotomie&amp;#160;: écoles d&amp;#8217;informatique d&amp;#8217;un coté qui ne font que survoler les technologies Web sans en voir les aspects fonctionnels&amp;#160;; écoles d&amp;#8217;art et de design de l&amp;#8217;autre coté qui survolent vaguement les aspects fonctionnels en faisant totalement l&amp;#8217;impasse sur les aspects techniques). Ainsi, la qualité de la formation dispensée dépend donc encore trop souvent de la qualité des professeurs et formateurs. La difficulté, c&amp;#8217;est qu&amp;#8217;eux même ont du mal à trouver des sources d&amp;#8217;informations leur permettant de rester à jour. L&amp;#8217;effort de veille à faire pour qu&amp;#8217;un formateur reste au niveau est énorme et parfois difficile si l&amp;#8217;on cherche du matériel pédagogique dans une langue autre que l&amp;#8217;anglais. Pire&amp;#160;! De trop nombreuses sources d&amp;#8217;informations sont parfois médiocres pour ne pas dire complètement fausse et le plus souvent peu ou pas mises à jour (le cas W3School, par exemple, a donné lieu à &lt;a hreflang=&quot;en&quot; href=&quot;http://w3fools.com/&quot;&gt;de vives réactions&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Avec tout ça, on voit bien qu&amp;#8217;il est finalement, aujourd&amp;#8217;hui encore, assez difficile de se former correctement aux technologies et techniques de mise en œuvre des sites Web.&lt;/p&gt;
&lt;h3&gt;La complexification des technologies&lt;/h3&gt;
&lt;p&gt;Les standards du Web sont quelque chose qui évolue en permanence. Depuis plus de 20 ans, ces technologies gagnent en maturité, changent, s&amp;#8217;enrichissent et s&amp;#8217;affinent. Depuis environs 3 ans maintenant, les choses vont même en s&amp;#8217;accélérant. HTML5 change profondément la nature du langage HTML, CSS3 enrichie considérablement le nombre de propriétés disponibles, ECMAScript vient de passer en version 5 et la 6 est en préparation, etc. Le retour d&amp;#8217;un univers concurrentiel sur le marché des navigateurs, l&amp;#8217;émergence du Web mobile, tout cela contribue à rendre les technologies toujours plus complexes et à rendre leur implémentation parfois très hétérogène d&amp;#8217;un navigateur à l&amp;#8217;autre.&lt;/p&gt;
&lt;p&gt;Quelques chiffres bruts pour se rendre compte&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;HTML4&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/html4/index/elements.html&quot;&gt;91 balises&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/html4/index/attributes.html&quot;&gt;119 attributs&lt;/a&gt; -&amp;gt; HTML5&amp;#160;: environ &lt;a hreflang=&quot;en&quot; href=&quot;http://dev.w3.org/html5/markup/&quot;&gt;107 balises&lt;/a&gt; et plus de &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/html5-diff/#new-attributes&quot;&gt;143 attributs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CSS2.1&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/CSS21/propidx.html&quot;&gt;115 propriété&lt;/a&gt; -&amp;gt; CSS3&amp;#160;: près de 250 propriétés (&lt;a hreflang=&quot;en&quot; href=&quot;http://meiert.com/en/indices/css-properties/&quot;&gt;C&amp;#8217;est une estimation&lt;/a&gt; car les travaux de spécification ont à peine commencé)&lt;/li&gt;
&lt;li&gt;SVG 1.1&amp;#160;: &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/SVG/eltindex.html&quot;&gt;80 balises&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/SVG/attindex.html&quot;&gt;267 attributs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Plusieurs centaines d&amp;#8217;interfaces DOM (je n&amp;#8217;ai pas eu le courage de compter)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et encore, là, il ne s&amp;#8217;agit que du sommet de l&amp;#8217;iceberg des différentes technologies Web. Et puis, quid des implémentations&amp;#160;? Quel navigateur supporte quoi&amp;#160;? Et avec quel degré de précision/bugs&amp;#160;? Ou et comment trouver des informations pertinentes et à jour sur toutes ces technologies, leur fonctionnement et leurs interactions&amp;#160;?&lt;/p&gt;
&lt;p&gt;Et puis tant qu&amp;#8217;on en est à complexifier les choses, allons jusqu&amp;#8217;au bout. La fonctionnalité suprême des navigateurs, le fameux «&amp;#160;afficher la sources&amp;#160;» et en train d&amp;#8217;en prendre un petit coup dans l&amp;#8217;aile. En effet, les techniques d&amp;#8217;optimisation des performances (pour ne citer qu&amp;#8217;elles) ont un petit effets de bords, elles ont tendance à rendre les codes sources illisibles par les êtres humains. Mais même sans ça, examiner le code source d&amp;#8217;une bibliothèque Javascript de 200Ko est très loin d&amp;#8217;être une partie de plaisir. Aujourd&amp;#8217;hui, n&amp;#8217;espérez donc pas apprendre sérieusement Javascript simplement en lisant du code (ce que j&amp;#8217;ai pourtant fait il y a plus de 10&amp;nbsp;ans).&lt;/p&gt;
&lt;p&gt;Contrairement à une idée reçu, le Web ce n&amp;#8217;est pas simple. Je ne sais pas pour vous, mais s&amp;#8217;il existe des sources d&amp;#8217;informations fiables me permettant de m&amp;#8217;y retrouver, ce sera avec plaisir que je les accueillerai.&lt;/p&gt;
&lt;h2&gt;Comment&amp;#160;?&lt;/h2&gt;
&lt;p&gt;J&amp;#8217;en arrive donc à un constat simple&amp;#160;: ressources de qualité douteuse + complexification des technologies = il faut rentrer dans une logique de documentation un peu plus sérieuse que ce qui a été fait jusqu&amp;#8217;à présent.&lt;/p&gt;
&lt;h3&gt;L&amp;#8217;initiative individuel&lt;/h3&gt;
&lt;p&gt;Jusqu&amp;#8217;à une date très récente, l&amp;#8217;effort de documentation des technologies du Web ouvert passait par des initiatives individuelles. Chaque développeur web ayant son propre site ou blog sur lequel il note et documente ce qui l&amp;#8217;intéresse ou lui manque (c&amp;#8217;est typiquement ce que je fais sur ce site &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ). Les plus fameux à ma connaissance sont sans doute&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;en&quot; href=&quot;http://www.positioniseverything.net/&quot;&gt;Position is everything&lt;/a&gt; qui documente tous les bugs de Internet Explorer 6 (et 7) en matière de CSS (je ne compte plus les fois ou ce site m&amp;#8217;a sauvé la vie)&lt;/li&gt;
&lt;li&gt;&lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;en&quot; href=&quot;http://www.quirksmode.org/&quot;&gt;Quirks mode&lt;/a&gt; de Peter-Paul Koch qui détail la compatibilité des propriétés CSS d&amp;#8217;un navigateur à l&amp;#8217;autre (on notera en ce moment le boulot que fait PPK sur le support des navigateurs mobiles)&lt;/li&gt;
&lt;li&gt;&lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;en&quot; href=&quot;http://www.alistapart.com/&quot;&gt;A list apart&lt;/a&gt; et ce que l&amp;#8217;on peut considérer comme son équivalent Français&amp;#160;: &lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;fr&quot; href=&quot;http://openweb.eu.org/&quot;&gt;OpenWeb&lt;/a&gt; qui produisent des articles à la fois précis et accessible à tous.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il en existe évidement bien d&amp;#8217;autre et il est impossible de les citer tous. Ceci étant, pour intéressant qu&amp;#8217;il soit, cet effort de documentation reste encore très dispersé, peu structuré et nécessite de prendre le temps de chercher ce dont on a besoin tout en requérant une bonne dose d&amp;#8217;esprits critique pour trier le bon grain de l&amp;#8217;ivraie.&lt;/p&gt;
&lt;h3&gt;W3C et consort.&lt;/h3&gt;
&lt;p&gt;Deuxième source historique de documentation&amp;#160;: le W3C et autre organisme de standardisation. C&amp;#8217;est bête à dire, mais lire les spécifications des technologies peut être une mine d&amp;#8217;or si l&amp;#8217;on cherche des informations techniques précises. Malheureusement, il faut bien se le dire, les spécifications ne sont pas écrite pour le commun des mortels… en tout cas pas pour les développeurs Web. En effet, les spécifications sont de la matière brute. Elles sont écrite avant tout pour les fabriquant de logiciel (navigateurs, éditeur de code, etc.) et surtout, elles ne permettent pas de savoir quelles sont les différences d&amp;#8217;implémentation d&amp;#8217;un logiciel à l&amp;#8217;autre. Leur lecture est donc rarement suffisante (et parfois même inutile… par exemple, essayer de lire la spécification d&amp;#8217;ECMAScript pour apprendre le Javascript, c&amp;#8217;est un peu comme regarder la formule chimique du beurre pour apprendre à faire un gâteau).&lt;/p&gt;
&lt;p&gt;Saluons tout de même l&amp;#8217;initiative du HTML Working Group qui, dans le cadre de HTML5, produit deux documents à destination des développeurs Web&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/html5-author/&quot;&gt;http://www.w3.org/TR/html5-author/&lt;/a&gt; Version expurgé des spécificités purement techniques liées à l&amp;#8217;implémentation de HTML et qui se concentre sur ce qui est vraiment utile pour les créateurs de sites Web.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://dev.w3.org/html5/markup/&quot;&gt;http://dev.w3.org/html5/markup/&lt;/a&gt; La liste détaillé de toutes les balises HTML5&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Les fabricants de navigateurs&lt;/h3&gt;
&lt;p&gt;Une autre source de documentation parfois méconnus mais très riche existe&amp;#160;: la documentation officiel des fabricants de navigateur. C&amp;#8217;est vraiment dommage qu&amp;#8217;elles ne soient pas plus connus car on y trouve parfois des perles&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;MSDN&lt;/strong&gt;&amp;#160;: &lt;a href=&quot;http://msdn.microsoft.com/&quot;&gt;http://msdn.microsoft.com/&lt;/a&gt;&lt;br /&gt;Documentation officiel de Microsoft, vous y trouverez absolument tout concernant les technologies implémentées dans Internet Explorer (et tout les autres produits Microsoft). Son seul vraie problème est d&amp;#8217;être extrêmement mal structuré quand on l&amp;#8217;aborde de l&amp;#8217;extérieur (comprendre, via un autre moyen que les pages d&amp;#8217;aide des produits Microsoft). Pour la petite histoire, les technologies Web, c&amp;#8217;est là&amp;#160;: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa155073.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/aa155073.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MDN&lt;/strong&gt;&amp;#160;: &lt;a href=&quot;https://developer.mozilla.org/&quot;&gt;https://developer.mozilla.org/&lt;/a&gt;&lt;br /&gt;Site de documentation de Mozilla. Originellement fait pour documenter les technologies propres à Firefox, il est actuellement en train d&amp;#8217;évoluer pour proposer une documentation agnostique sur tous les standards Web. En particulier, on y trouve la documentation de référence pour Javascript. Sa principale caractéristique est d&amp;#8217;être un wiki éditable par tout le monde, c&amp;#8217;est donc le lieu idéal pour y trouver (et y créer) la documentation dont vous avez besoin&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dev Opera&lt;/strong&gt;&amp;#160;: &lt;a href=&quot;http://dev.opera.com/&quot;&gt;http://dev.opera.com/&lt;/a&gt;&lt;br /&gt;On y trouve à la fois la documentation officiel des produits Opera, des articles des équipes d&amp;#8217;Opera (chaque employé y a un blog pro.) mais également des articles écrits par des développeurs web indépendants. En effet, n&amp;#8217;importe qui peut ouvrir un compte utilisateur et y écrire des articles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La seul ombre au tableau, c&amp;#8217;est le projet Webkit qui ne dispose pas d&amp;#8217;une documentation officielle (en tout cas, je ne l&amp;#8217;ai pas encore trouvée). On notera tout de même que depuis un peu plus de 1 an, les équipes de Google collabore avec Mozilla au sein de MDN pour que la documentation de référence soit la plus générique possible.&lt;/p&gt;
&lt;h3&gt;Le temps de l&amp;#8217;action&lt;/h3&gt;
&lt;p&gt;Le fait est qu&amp;#8217;on est encore loin d&amp;#8217;avoir des documentations dignes de ce nom et, soyons claire, on n&amp;#8217;est finalement jamais aussi bien servi que par soit même.&lt;/p&gt;
&lt;p&gt;Aussi, je vous invite à écrire ce que vous savez. Il n&amp;#8217;est pas nécessaire de faire de très long articles détaillés, mais simplement, mettre le résultat de vos expérimentations (à titre d&amp;#8217;exemple, regardez ce que font Raphael Goetter avec &lt;a style=&quot;font-style: italic;&quot; href=&quot;http://www.ie7nomore.com/&quot;&gt;IE7 no more&lt;/a&gt; ou la Web Agency Tympanus sur &lt;a hreflang=&quot;en&quot; href=&quot;http://tympanus.net/codrops/&quot;&gt;son blog&lt;/a&gt;). Quoi que vous en pensiez, ce sera toujours utile à quelqu&amp;#8217;un (ne serais-ce que pour vous). Ok, ce que vous découvrez à peut-être déjà été écris ailleurs… mais ça n&amp;#8217;a pas d&amp;#8217;importance car plus il y a d&amp;#8217;articles sur le même sujet, plus l&amp;#8217;information est facile à trouver. Ne soyez pas timide, écrivez &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mais ce n&amp;#8217;est qu&amp;#8217;un début. Pour aller plus loin, je vous invite à regarder de près l&amp;#8217;initiative &lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;en&quot; href=&quot;http://movethewebforward.org/&quot;&gt;Move the web forward&lt;/a&gt; qui détaille tout ce qu&amp;#8217;il est possible de faire pour contribuer (au delà de la documentation) à améliorer le Web.&lt;/p&gt;
&lt;p&gt;Enfin, et c&amp;#8217;est là que les choses commence à se structurer, plusieurs organisations travaillent sur la documentation du Web ouvert. On notera en particulier deux acteurs majeurs de ce travail de documentation&amp;#160;:&lt;/p&gt;
&lt;h4&gt;Mozilla&lt;/h4&gt;
&lt;p&gt;Depuis 2 ans environ, Mozilla a entamé un travail de fond visant à transformer MDN pour en faire une source de documentation neutre. Ainsi, pour tout ce qui concerne les standards du Web, vous y trouverez une documentation de référence pour les principaux langages (HTML, CSS, SVG, MathML, Javascript, etc.). L&amp;#8217;objectif est, pour chaque balise, propriété, API, attribut, … de fournir une explication de comment ils s&amp;#8217;utilisent avec des exemples, des cas d&amp;#8217;usage, tout en documentant les spécificités liées aux implémentations de chaque navigateur.&lt;/p&gt;
&lt;p&gt;Réaliser une telle documentation prend du temps et toute les bonnes volontés sont appréciées. Si vous voulez participer, vous n&amp;#8217;avez rien d&amp;#8217;autre à faire que de vous créer un compte utilisateur sur MDN et à écrire (c&amp;#8217;est un Wiki rappelons-le). Si vous ne savez pas par quel bout commencer ou si vous pensez que vous n&amp;#8217;êtes pas à la auteur pour participer, j&amp;#8217;organise tous les mercredi une soirée de découverte de MDN dans &lt;a href=&quot;http://www.mozilla.org/en-US/about/contact.html#map-europe-paris&quot;&gt;les bureaux de Mozilla à Paris&lt;/a&gt;. N&amp;#8217;hésitez pas à venir, même si c&amp;#8217;est juste par curiosité, il y a à boire et à manger &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; . Plus d&amp;#8217;information sur la soirée de mercredi prochain&amp;#160;: &lt;a href=&quot;https://mercredidoc.etherpad.mozilla.org/4&quot;&gt;https://mercredidoc.etherpad.mozilla.org/4&amp;#160;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;W3C&lt;/h4&gt;
&lt;p&gt;L&amp;#8217;été dernier, le W3C à lancé les &lt;em&gt;Community Groups&lt;/em&gt; et un des premiers à avoir été créé fut le &lt;a style=&quot;font-style: italic;&quot; hreflang=&quot;en&quot; href=&quot;http://www.w3.org/community/webed/&quot;&gt;Web Education Community Group&lt;/a&gt;. Ce groupe a été créé à l&amp;#8217;initiative de Chris Mills de chez Opera. Chris a proposé de partager le Web Standards Curriculum d&amp;#8217;Opera sous licence libre. Il a donc été mis sur &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/community/webed/wiki/Main_Page&quot;&gt;un Wiki dédié au W3C&lt;/a&gt; et désormais, tout le monde peu participer à son enrichissement. De manière plus général, ce &lt;em&gt;Community Group&lt;/em&gt; à pour vocation de créer et promouvoir du matériel pédagogique à destination des professeurs et formateurs qui enseignent la création de sites Web.&lt;/p&gt;
&lt;p&gt;Si vous êtes formateur ou enseignant vous devriez sérieusement envisager de participer à ce groupe. Contrairement aux groupes de travail sur les spécifications, la participation aux &lt;em&gt;Community Groups&lt;/em&gt; est gratuite. En ce qui me concerne, je prévois de participer à la traduction Française du Web Standards Curriculum. Si vous voulez aider à faire cette traduction, laisser un message sur &lt;a hreflang=&quot;en&quot; href=&quot;http://lists.w3.org/Archives/Public/public-webed/&quot;&gt;la mailing-list du groupe&lt;/a&gt;, je vous recontacterai alors pour qu&amp;#8217;on se coordonne &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La documentation du Web ouvert est un espace à défricher. Si vous voulez bénéficier d&amp;#8217;une documentation de qualité, pour vous ou pour les autres, c&amp;#8217;est à vous d&amp;#8217;agir. Soyons claire, documenter est un travail long et ingrat dont on ne retire les fruits que plusieurs mois ou année plus tard. Ceci étant, il n&amp;#8217;y a pas de secret, les projets qui marchent ce sont les projets qui bénéficient d&amp;#8217;une documentation de qualité. C&amp;#8217;est également vraie du Web et de la création de site. Retenez cependant 2 choses&amp;#160;: Quelque soit votre contribution, aussi petite soit-elle, il y aura toujours quelqu&amp;#8217;un pour vous en remercier un jour&amp;#160;; Si vous devez documenter quelque chose, documentez ce dont vous avez besoin pour vous-même, d&amp;#8217;autre auront un jour ou l&amp;#8217;autre le même problème que vous… la documentation est sans doute le seul domaine d&amp;#8217;activité ou une action purement égoïste est également totalement altruiste &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://jeremie.patonnier.net/post/2012/01/02/Documenter-le-Web-ouvert%2C-pourquoi-et-comment#comment-form</comments>
      <wfw:comment>http://jeremie.patonnier.net/post/2012/01/02/Documenter-le-Web-ouvert%2C-pourquoi-et-comment#comment-form</wfw:comment>
      <wfw:commentRss>http://jeremie.patonnier.net/feed/atom/comments/53</wfw:commentRss>
      </item>
    
  <item>
    <title>Paris Web 2011 : SVG et Typographie</title>
    <link>http://jeremie.patonnier.net/post/2011/10/18/Paris-Web-2011-%3A-SVG-et-Typographie</link>
    <guid isPermaLink="false">urn:md5:0f39052f4df563d533923a2e56944875</guid>
    <pubDate>Tue, 18 Oct 2011 16:58:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>conférence</category><category>paris-web</category><category>SVG</category><category>typographie</category>    
    <description>&lt;p&gt;Paris Web 2011&amp;#160;s&amp;#8217;est tenu les 13, 14 et 15 octobre dernier. Cette année encore j&amp;#8217;y étais et force et de reconnaitre qu&amp;#8217;une fois de plus, l&amp;#8217;équipe a sué sang et eau pour en faire un évènement de qualité inégalé. Bravos à tous, vous avez assuré grave &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;    &lt;p&gt;Le programme était vraiment d&amp;#8217;excellente facture, et je retiendrai en particulier deux conférences&amp;#160;: D&amp;#8217;une part, celle d&amp;#8217;Antony Ricaud qui a pris le temps d&amp;#8217;expliquer et de détailler comment fonctionne un navigateur (chose que peu de web designer connaissent mais qui explique beaucoup de choses, comme par exemple &amp;#8220;pourquoi les sélecteurs CSS sont lus de droite à gauche&amp;#8221;)&amp;#160;; D&amp;#8217;autre part, celle de &lt;a href=&quot;http://www.celinecelines.com/&quot;&gt;celinecelines&lt;/a&gt; qui a fait la démonstration d&amp;#8217;une énergie incroyable et d&amp;#8217;un enthousiasme peu commun, mais ô combien communicatif et stimulant. Merci Céline.&lt;/p&gt;
&lt;p&gt;De mon coté, ça a été un peu le grand schelem. En effet, l&amp;#8217;équipe d’organisation à accepter toutes mes propositions (&amp;#8216;^_^) je me suis donc retrouvé à présenter un lightning talk, une conférence et un atelier&amp;#8230; argle&amp;#160;!&lt;/p&gt;
&lt;h2&gt;Lightning talk&lt;/h2&gt;
&lt;p&gt;Le challenge consistait à parler d&amp;#8217;un sujet pendant seulement 4 minutes. Ça demande d&amp;#8217;aller droit à l&amp;#8217;essentiel et d&amp;#8217;être percutant. Vu que je traitai déjà de sujet assez sérieux pour ma conférence et mon atelier, j&amp;#8217;ai proposé un &amp;#8220;truc rigolo&amp;#8221;. J&amp;#8217;ai donc fait une animation SVG pour illustrer la lutte permanente des standards du Web pour un Internet meilleur. J&amp;#8217;ai demandé l&amp;#8217;aide de ma collègue Corinne Massacry pour réaliser tout le &amp;#8220;Character Design&amp;#8221; et j&amp;#8217;ai réalisé toute les animations à la main (il n&amp;#8217;y a pas d&amp;#8217;éditeur d&amp;#8217;animation SVG connu à ce jour, donc, tout à la mimine&amp;#8230; ce qui prend un temps infinie, j&amp;#8217;ai terminé l&amp;#8217;animation la veille de la conf en y passant la nuit :-/)&lt;/p&gt;
&lt;p&gt;Voila le résultat&amp;#160;:&lt;/p&gt;
&lt;object data=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/animation.svg&quot; type=&quot;image/svg+xml&quot; width=&quot;512&quot; height=&quot;384&quot;&gt;&lt;/object&gt;
&lt;p&gt;Vous pouvez télécharger le fichier SVG ici&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/animation.svg&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/animation.svg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour la petite histoire, l&amp;#8217;ensemble des éléments graphiques ont été réalisés avec Adobe Illustrator. Pour ce qui est de la réalisation de l&amp;#8217;animation, dans le mesure où, lorsqu&amp;#8217;on code à la main, c&amp;#8217;est très difficile de se déplacer d&amp;#8217;un point à l&amp;#8217;autre de l&amp;#8217;animation, je l&amp;#8217;ai animée à l&amp;#8217;envers. Concrètement, j&amp;#8217;ai animé la dernière scène, puis l&amp;#8217;avant dernière scène, etc. De cette manière, à chaque fois que je rafraichissais l&amp;#8217;animation, je voyais immédiatement ce que je venais d&amp;#8217;animer sans avoir à attendre que le début de l&amp;#8217;animation soit joué (plusieurs minutes) pour pouvoir vérifier ce que je venais de faire (parfois moins d&amp;#8217;une seconde d&amp;#8217;animation)&lt;/p&gt;
&lt;h2&gt;Conférence&amp;#160;: &amp;#8220;La typographie, mon navigateur et moi&amp;#8221;&lt;/h2&gt;
&lt;p&gt;Lors de cette conférence, j&amp;#8217;ai eu l&amp;#8217;occasion d&amp;#8217;expliquer comment les polices typographiques sont miraculeusement affichées par les navigateurs &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Le coté sympa, c&amp;#8217;est qu&amp;#8217;à l&amp;#8217;origine, cette conférence devait durée 30 minutes et que suite au désistement de dernière minute d&amp;#8217;un orateur, elle a finalement pu durée 1 heure avec plein de questions et réponses. Je vous met les slides ici, mais la vidéo sera sans doute beaucoup plus intéressante. Je vous tiens au courant dès qu&amp;#8217;elle est disponible.&lt;/p&gt;
&lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/9734822?rel=0&quot; width=&quot;510&quot; height=&quot;426&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;
&lt;h2&gt;Atelier&amp;#160;: &amp;#8220;SVG et le web design moderne&amp;#8221;&lt;/h2&gt;
&lt;p&gt;1h30 à la découverte de SVG. Je ne cache pas que pendant l&amp;#8217;atelier j&amp;#8217;ai un peu angoissé en voyant les nombreux visages extrêmement sérieux et concentré en face de moi. Heureusement, il semblerai que l&amp;#8217;atelier ait bien plus à tout le monde. Je vous met ici les slides, les exemples et les différents liens que j&amp;#8217;ai eu l&amp;#8217;occasion d&amp;#8217;évoquer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les slides&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/presentation.odp&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/presentation.odp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les exemples&amp;#160;:
&lt;ul&gt;
&lt;li&gt;Exemple d&amp;#8217;un fichier SVG basic&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/basic.svg&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/basic.svg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les différentes manière d&amp;#8217;inclure du SVG dans du HTML&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/inclusion.html&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/inclusion.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Comparaison entre SVG, RaphaelJS et Canvas&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/svg-raphael-canvas.htm&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/svg-raphael-canvas.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Exemple d&amp;#8217;usage avancé avec CSS3&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/monsieur-ou-madame-1.htm&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2011/atelier/monsieur-ou-madame-1.htm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Les liens à voir (en vrac)&amp;#160;:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://raphaeljs.com&quot;&gt;http://raphaeljs.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/wout/raphael-svg-import&quot;&gt;https://github.com/wout/raphael-svg-import&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://mbostock.github.com/d3/&quot;&gt;http://mbostock.github.com/d3/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jvectormap.owl-hollow.net&quot;&gt;http://jvectormap.owl-hollow.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rickardsund.com&quot;&gt;http://rickardsund.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://discover.store.sony.com//piiq/&quot;&gt;http://discover.store.sony.com//piiq/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://evolutionofweb.appspot.com&quot;&gt;http://evolutionofweb.appspot.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://vlog.it&quot;&gt;http://vlog.it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://type.method.ac&quot;&gt;http://type.method.ac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.goodreads.com&quot;&gt;http://www.goodreads.com&lt;/a&gt; (l&amp;#8217;icone de &amp;#8220;rating&amp;#8221; est en SVG et reprend les données réelles de vote sur chaque livre)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.drawastickman.com&quot;&gt;http://www.drawastickman.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nissanusa.com/leaf-electric-car/index&quot;&gt;http://www.nissanusa.com/leaf-electric-car/index&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en/SVG&quot;&gt;https://developer.mozilla.org/en/SVG&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Là aussi, la vidéo sera bien plus parlante, je vous la mettrai dès qu&amp;#8217;elle sera là &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Voila, comme d&amp;#8217;habitude, c&amp;#8217;était bien chouette, encore un gros merci aux organisateurs et vivement l&amp;#8217;année prochaine (mais je proposerai moins de choses parce que là, c&amp;#8217;était vraiment trop dur de préparer tout ça).&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>SudWeb 2011 : Coup d'essai, coup de maitre</title>
    <link>http://jeremie.patonnier.net/post/2011/06/21/SudWeb-2011-Coup-d-essai-coup-de-maitre</link>
    <guid isPermaLink="false">urn:md5:373447ea13b59e6d210229c7b95526c1</guid>
    <pubDate>Tue, 21 Jun 2011 09:54:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>English</category><category>SudWeb</category><category>SVG</category>    
    <description>    &lt;p lang=&quot;en&quot;&gt;&lt;em&gt;Note for English speaker, there is an English version down below &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Le 27 mai dernier, j&amp;#8217;ai eu la chance de participer à la toute première édition de SudWeb à Nîmes. Partie sur une boutade lors du dernier Paris Web, les organisateurs se sont juste arrachés pour arriver à monter le truc en à peine 6 mois. Bravo à tous, ce fût beau&amp;#160;! Car on peut le dire, pour un coup d&amp;#8217;essai, ce fût un coup de maitre. Au delà de la logistique impeccable, l&amp;#8217;ensemble du programme des conférences était tout simplement parfait. Mixant à la fois les aspects fonctionnels, techniques et prospectifs, l&amp;#8217;équilibre du déroulé m&amp;#8217;a complètement estomaqué (ainsi que le respect des horaires, tenus d&amp;#8217;une main de fer, couplé à des moments de pause ô combien conviviaux).&lt;/p&gt;
&lt;p&gt;Vous n&amp;#8217;y étiez pas&amp;#160;? Ce n&amp;#8217;est pas grave. D&amp;#8217;une part toutes les conférences ont été filmées et devraient être disponibles prochainement et d&amp;#8217;autre part, il y aura une autre édition l&amp;#8217;année prochaine, viendez-y &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;En ce qui concerne mon nombril, j&amp;#8217;ai eu l&amp;#8217;occasion d&amp;#8217;y donner une conférence sur un sujet qui me tient à cœur depuis un peu plus d&amp;#8217;un an&amp;#160;: SVG. Au cours de cette conférence, j&amp;#8217;ai montré ce qu&amp;#8217;il était possible de faire aujourd&amp;#8217;hui avec SVG (qui, rappelons le, est disponible dans tous les navigateurs moderne). Plutôt que de m&amp;#8217;attacher aux questions techniques qui tourne autour de cette technologie, j&amp;#8217;ai préféré mettre l&amp;#8217;accent sur des outils et des résultats concrets. L&amp;#8217;idée étant de montrer comment des designers et les développeurs on déjà utilisé SVG et ce qu&amp;#8217;il apporte au web design moderne.&lt;/p&gt;
&lt;p&gt;Évidemment, même si j&amp;#8217;ai oublié de le préciser pendant la conférence, je n&amp;#8217;ai pas pu m’empêcher de réaliser mes slides en SVG, les voici (cliquez sur l&amp;#8217;image pour lui donner le focus et utilisez les flèches de direction pour passer d&amp;#8217;un slide à l&amp;#8217;autre)&amp;#160;:&lt;/p&gt;
&lt;object type=&quot;image/svg+xml&quot; data=&quot;http://jeremie.patonnier.net/experiences/sudweb2011/presentation.svg&quot; height=&quot;384&quot; width=&quot;512&quot;&gt;
&lt;p&gt;Vous pouvez accéder à ma présentation SVG à cette adresse&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/experiences/sudweb2011/presentation.svg&quot;&gt;http://jeremie.patonnier.net/experiences/sudweb2011/presentation.svg&lt;/a&gt;&lt;/p&gt;
&lt;/object&gt;
&lt;p&gt;A noter que je cite tous les sites suivant&amp;#160;:&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Outils&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://code.google.com/p/svgweb/&quot;&gt;http://code.google.com/p/svgweb&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://raphaeljs.com/&quot;&gt;http://raphaeljs.com&lt;/a&gt;&amp;#160;: Vous devriez tous avoir cette bibliothèque dans votre trousse à outils si vous voulez réaliser du SVG tout en étant compatible avec les vieux IE.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.highcharts.com/&quot;&gt;http://www.highcharts.com&lt;/a&gt;&amp;#160;: LA bibliothèque pour faire des graphiques de données sans vous casser la tête.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://mbostock.github.com/d3/&quot;&gt;http://mbostock.github.com/d3/&lt;/a&gt;&amp;#160;: D3.js est une bibliothèque qui vous permet de mapper des données au seins de graphiques vectoriels en SVG. C&amp;#8217;est un pont technique idéal entre les développeurs qui doivent manipuler ces données et les designers qui doivent les mettre en scène.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Références&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.thenounproject.com&quot;&gt;http://www.thenounproject.com&lt;/a&gt;&amp;#160;: Projet mettant à disposition des icones libres de droit au format SVG. Indispensable pour réaliser de la signalétique. A noter que toutes les icones proposées sont composées d&amp;#8217;un seul est unique chemin SVG ce qui en fait une base travail extrêmement propre et malléable pour les Web designers.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.bifter.co.uk&quot;&gt;http://www.bifter.co.uk&lt;/a&gt;&amp;#160;: Web comics humoristique intégralement réalisé en SVG.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://opendata.zeit.de/pisa-wohlstands-vergleich/visualisierung.php&quot;&gt;http://opendata.zeit.de/pisa-wohlstands-vergleich/visualisierung.php&lt;/a&gt;&amp;#160;: Le journal allemand Zeit propose une visualisation de données démographiques intégralement réalisée en SVG&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.nissanusa.com/leaf-electric-car/index&quot;&gt;http://www.nissanusa.com/leaf-electric-car/index&lt;/a&gt;&amp;#160;: Dans la série &amp;#8220;Non, ce n&amp;#8217;est pas du Flash&amp;#8221; Nissan USA fait une magnifique utilisation de SVG pour proposer une navigation non linéaire des caractéristiques de sa nouvelle voiture électrique. A noter que RaphaelJS est utilisé pour assurer la compatibilité avec IE6, 7 et 8 (et oui).&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://rickardsund.com&quot;&gt;http://rickardsund.com&lt;/a&gt;&amp;#160;: Je n&amp;#8217;ai pas de mot assez fort pour exprimer l&amp;#8217;adoration que j&amp;#8217;ai pour ce site. Pour moi, Il représente la quintessence du Web design moderne. D&amp;#8217;un coté un design épuré à l’extrême qui sert parfaitement son propos. Il est l’œuvre de &lt;a hreflang=&quot;en&quot; href=&quot;http://hugoahlberg.com/&quot;&gt;Hugo Ahlberg&lt;/a&gt; qui a un lourd passif de designer Flash, ce qui lui a permis de s&amp;#8217;extraire des contraintes (artificielles) du design web traditionnel. D&amp;#8217;un autre coté, il est intégré à la perfection en utilisant exclusivement des standards Web&amp;#160;: HTML5 (à noter en particulier la magnifique utilisation de l&amp;#8217;API History), CSS3, JS (Du &amp;#8220;mouse gesture&amp;#8221; de toute beauté) et bien sur du SVG (par petites touches mais indispensables). Ce travail formidable a été réalisé par &lt;a hreflang=&quot;en&quot; href=&quot;http://danielmahal.com/&quot;&gt;Daniel Mahal&lt;/a&gt; et &lt;a href=&quot;https://twitter.com/pixlCoder/&quot;&gt;Daniel Connor&lt;/a&gt; qui font là une démonstration d&amp;#8217;excellence de ce que devrais toujours être une intégration aux standards, en particulier la maitrise de la dégradation élégante qui est quasi parfaite&amp;#160;: Ce site fonctionne dans IE6&amp;#160;! Vous DEVEZ regarder la source de ce site et vous en inspirer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour conclure, je n&amp;#8217;ai plus qu&amp;#8217;une chose à dire&amp;#160;: Longue vie à SudWeb, vivement l&amp;#8217;année prochaine &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p lang=&quot;en&quot;&gt;On May 27th, I got the chance to attend the very first SudWeb event in Nîmes, France. Starting on a joke during the last Paris Web event, the people behind SudWeb make it possible in just 6 months. Thanks dudes that was awesome! We can say it, for a first run that was a master piece. Beyond the perfect logistic, the program was just great. Talks were amazingly well balanced between functional, technical &lt;span title=&quot;Cliquer ici pour voir d'autres traductions&quot; class=&quot;hps&quot;&gt;and prospective subjects (and the schedule was perfectly mastered with good time to talk and network with people).&lt;/span&gt;&lt;/p&gt;
&lt;p lang=&quot;en&quot;&gt;You wasn&amp;#8217;t their&amp;#160;? Don&amp;#8217;t worry. First, all the talks were camcorded and should be available soon. Second, there will be another edition next year, attend it &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p lang=&quot;en&quot;&gt;On my own, I had the opportunity to give a talk about one of my favorite subject for a year now&amp;#160;: SVG. During this talk, I show off what is it possible to make with SVG today (which, as a reminder, is available in all modern browsers). Instead of talking about technical stuffs, I focused on tools and practical results. The idea was to demonstrate how designers and developers had used SVG and what that technology brings to modern Web design.&lt;/p&gt;
&lt;p lang=&quot;en&quot;&gt;Of course, even if I forgot to mention it during my talk, I felt oblige to made my slides with SVG. Here there are (see above, click on the image to give it the focus then use the arrow keys to switch between the slides).&lt;/p&gt;
&lt;p lang=&quot;en&quot;&gt;Note that I use all the following web sites as examples:&lt;/p&gt;
&lt;h2 lang=&quot;en&quot;&gt;Tools&lt;/h2&gt;
&lt;ul lang=&quot;en&quot;&gt;&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://code.google.com/p/svgweb/&quot;&gt;http://code.google.com/p/svgweb&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://raphaeljs.com/&quot;&gt;http://raphaeljs.com&lt;/a&gt;
: You should all have that library in your toolbox if you want to use SVG with IE compatibility in mind.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.highcharts.com/&quot;&gt;http://www.highcharts.com&lt;/a&gt;&amp;#160;: THE library to build charts without headache.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://mbostock.github.com/d3/&quot;&gt;http://mbostock.github.com/d3/&lt;/a&gt;
: D3.js is a library that allow you to connect data with graphics. This is an awesome bridge between developers that deal with data and designer that deal with graphics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 lang=&quot;en&quot;&gt;References&lt;/h2&gt;
&lt;ul lang=&quot;en&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.thenounproject.com/&quot;&gt;http://www.thenounproject.com&lt;/a&gt;
: That project collect visual symbol and make them available in SVG. Note that all the symbols are made of one single SVG path. That make them highly usable as a work basis for Web designers.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.bifter.co.uk/&quot;&gt;http://www.bifter.co.uk&lt;/a&gt;&amp;#160;: A humorous Web comics build with SVG.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://opendata.zeit.de/pisa-wohlstands-vergleich/visualisierung.php&quot;&gt;http://opendata.zeit.de/pisa-wohlstands-vergleich/visualisierung.php&lt;/a&gt;&amp;#160;: The dutch newspaper Zeit had a demographic data representation driven by SVG.&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.nissanusa.com/leaf-electric-car/index&quot;&gt;http://www.nissanusa.com/leaf-electric-car/index&lt;/a&gt;
: Ok, so &amp;#8220;This is NOT Flash&amp;#8221;. This is a great SVG work made by Nissan USA to build a non-linear navigation system. Take care about the library behind the scene, it&amp;#8217;s RaphaelJS. This means that it works properly even with IE6, 7 and 8 (crazy!).&lt;/li&gt;
&lt;li&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://rickardsund.com/&quot;&gt;http://rickardsund.com&lt;/a&gt;
: I do not have strong enough words to express my love for this web site. To me, it&amp;#8217;s the best of modern Web design. On the one hand, the simplistic design suits its subject perfectly. It has been made by &lt;a hreflang=&quot;en&quot; href=&quot;http://hugoahlberg.com/&quot;&gt;Hugo Ahlberg&lt;/a&gt;
who has extensive skills in Flash design. Those skills give him the ability to overcome the classic HTML web design. On the other hand, This Web site is perfectly develop with Web standards only&amp;#160;: HTML5 (with a noticeable use of the History API), CSS3, JS (awesome mouse gesture) and, of course, some small (but essential) touches of SVG. This amazing work has been done by &lt;a hreflang=&quot;en&quot; href=&quot;http://danielmahal.com/&quot;&gt;Daniel Mahal&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/pixlCoder/&quot;&gt;Daniel Connor&lt;/a&gt; who demonstrate what a Web standards front-end development should always be. They especially mastered the graceful degradation: This site works perfectly with
IE6&amp;#160;! You SHOULD look at the source and use it as an inspiration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p lang=&quot;en&quot;&gt;To conclude, there is one thing left&amp;#160;: Live long SudWeb, I strongly hope for the next edition &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Alors s'en vient le temps du changement.</title>
    <link>http://jeremie.patonnier.net/post/2011/04/13/Alors-s-en-vient-le-temps-du-changement.</link>
    <guid isPermaLink="false">urn:md5:64b9ab70559b8ce0a7233e584c9b230f</guid>
    <pubDate>Wed, 13 Apr 2011 11:59:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Élucubrations</category>
        <category>Moi ma vie mon oeuvre</category><category>SudWeb</category><category>SVG</category><category>typographie</category>    
    <description>    &lt;p&gt;Je sais que je blogue assez peu en ce moment. Ne m&amp;#8217;en veuillez pas, c&amp;#8217;est qu&amp;#8217;il se passe pas mal de choses actuellement pour moi avec peux de temps pour venir écrire ici.&lt;/p&gt;
&lt;p&gt;D&amp;#8217;abord, si vraiment vous voulez lire des trucs que j&amp;#8217;ai écrit moi-même comme un grand, allez faire un tour sur &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net&quot;&gt;typographisme.net&lt;/a&gt;, mon dernier billet en date parlant des &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net/post/Les-ligatures-dans-les-navigateurs&quot;&gt;ligatures dans les navigateurs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En suite, je suis en train de préparer ma présentation pour &lt;a hreflang=&quot;fr&quot; href=&quot;http://sudweb.fr/&quot;&gt;SudWeb 2011&lt;/a&gt;. Comme je vais y parler de SVG, je ne peux bien sur pas faire autrement que de préparer un support de présentation lui aussi en SVG &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; (il sera en ligne après la conf). Ça se passe le 27 mai à Nîmes, &lt;a hreflang=&quot;fr&quot; href=&quot;http://sudweb.fr/category/Programme&quot;&gt;le programme est alléchant&lt;/a&gt; et &lt;a hreflang=&quot;fr&quot; href=&quot;http://tickets.web-ux.org/&quot;&gt;le prix raisonnable&lt;/a&gt;, n&amp;#8217;hésitez pas à venir y faire un tour.&lt;/p&gt;
&lt;p&gt;Enfin, je change de travail &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Après 5 ans passé au sein de Cetelem (organisme de crédit pour les particulier du groupe BNP Paribas) en temps que responsable d&amp;#8217;équipe de développement web, je vais rejoindre &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.clever-age.com/&quot;&gt;CleverAge&lt;/a&gt; où je serais consultant web (ou chef de projet ça dépendra des clients et des missions &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ). C&amp;#8217;est prévu pour le 2 mai et en attendant, c&amp;#8217;est un peu &amp;#8220;je cours dans tous les sens pour plier les questions administratives&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Sur ce&amp;#8230; qu&amp;#8217;un millier de colombes constipées illuminent votre journée.&lt;br /&gt;A bientôt &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Paris-Web 2010 : CSS3 Aujourd'hui</title>
    <link>http://jeremie.patonnier.net/post/2011/02/16/Paris-Web-2010-CSS3-Aujourd-hui</link>
    <guid isPermaLink="false">urn:md5:536dadcaa5b9be04be6eff968c198164</guid>
    <pubDate>Wed, 16 Feb 2011 13:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>CSS</category><category>paris-web</category><category>vidéo</category>    
    <description>Maintenant, que les vidéos sont en ligne, voici un petit retour sur Paris-Web 2010 ou j&amp;#8217;ai animé un atelier sur le thème &amp;#8220;CSS3 Aujourd&amp;#8217;hui&amp;#8221;.&lt;br /&gt;    &lt;p&gt;Depuis maintenant 5 ans, Paris-Web, c&amp;#8217;est un peu le rendez-vous annuel des faiseurs de Web français. Cette année fut assez exceptionnelle, et tous les participants (visiteurs, orateurs et organisateurs) sont tous à peu près d&amp;#8217;accord pour dire que c&amp;#8217;était un excellent millésime (si ce n&amp;#8217;est le meilleur pour l&amp;#8217;instant). Les conférences étaient d&amp;#8217;un niveau exceptionnel, l&amp;#8217;organisation sans tache et le hashtag #sharethelove a été largement employé sur Twitter pour qualifier l&amp;#8217;ambiance générale (bon, on n&amp;#8217;a pas pu éviter tous les trolls, mais ça s&amp;#8217;est bien passé).&lt;/p&gt;
&lt;p&gt;Sur les conférences, j&amp;#8217;ai noté en particulier celle de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.paris-web.fr/2010/programme/macrotypographie-page-web.php&quot;&gt;Anne-Sophie Fradier sur la macro-typographie&lt;/a&gt; (qui a subtilement servi de tremplin au projet que j&amp;#8217;ai monté avec elle et d&amp;#8217;autres d&amp;#8217;un site dédié à &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net&quot;&gt;la typographie sur le Web&lt;/a&gt;) et celle de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.paris-web.fr/2010/programme/html5-et-ses-amis-nouvelles-apis.php&quot;&gt;Paul Rouget sur les nouvelles API issu de HTML5&lt;/a&gt;. Paul était super content car d&amp;#8217;une part tout a marché et les démos montrées étaient franchement bluffantes (faire un sondage en live grâce aux Web Sockets, c&amp;#8217;est un peu la classe quand même).&lt;/p&gt;
&lt;p&gt;De mon coté, j&amp;#8217;ai animé un atelier sur le thème &amp;#8220;CSS3 Aujourd&amp;#8217;hui&amp;#8221;. J&amp;#8217;y ai passé en revue ce qu&amp;#8217;il est possible de faire dès à présent avec CSS3&amp;#160;en commençant quand même sur quelques rappels importants liés à CSS2. En effet, CSS3 n&amp;#8217;est jamais qu&amp;#8217;une &amp;#8220;amélioration&amp;#8221; de CSS2. L&amp;#8217;atelier s&amp;#8217;est bien passé mais il a duré 1h30, là ou j&amp;#8217;avais du matériel pour 3h. Ceci dit, grâce à la vidéo, je me rends compte que ça ne s&amp;#8217;est pas trop vu (sauf vers la fin), même si je n&amp;#8217;ai pas pu entrer dans le code autant que je le voulais. Ceci dit, il a été possible de bien discuter avec la salle (c&amp;#8217;était le but, mais dans la vidéo c&amp;#8217;est un peu frustrant car il n&amp;#8217;y avait pas de prise de son d&amp;#8217;ambiance) et les principaux thèmes ont pu être vu.&lt;/p&gt;
&lt;p&gt;Si vous y étiez ou si vous voulez voir les exemples en même temps que vous regardez la vidéo, toutes mes slides sont disponibles&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/parisweb2010/&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2010/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ainsi que tous les exemples de code&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/parisweb2010/exemples/&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2010/exemples/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et donc, la vidéo de l&amp;#8217;atelier car cette année pour la première fois, certains ateliers ont été filmés (merci aux étudiants de Cifacom et à l&amp;#8217;équipe Paris-Web pour le boulot réalisé)&amp;#160;:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;594&quot; height=&quot;475&quot; id=&quot;video&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.dailymotion.com/swf/video/xgv2fe?additionalInfos=0&quot; /&gt;
&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.dailymotion.com/swf/video/xgv2fe?width=594&amp;additionalInfos=0&quot; width=&quot;594&quot; height=&quot;475&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Why are SVG Fonts so different?</title>
    <link>http://jeremie.patonnier.net/post/2011/02/07/Why-are-SVG-Fonts-so-different</link>
    <guid isPermaLink="false">urn:md5:4b0c3e53cd421d3d629f27f0b570b946</guid>
    <pubDate>Mon, 07 Feb 2011 09:30:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>English</category><category>SVG</category><category>webdesign</category>    
    <description>&lt;p lang=&quot;fr&quot;&gt;&lt;em&gt;Une version française de cet article est disponible sur typographisme.net&amp;#160;: &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net/post/Pourquoi-les-fontes-SVG-sont-elles-diff%C3%A9rentes-des-autres&quot;&gt;Pourquoi les fontes SVG sont-elles différentes des autres&amp;#160;?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m sad to see that there are many misconception about SVG fonts. I&amp;#8217;ve read a lot of articles and complains about the SVG font format and the last (but not the least) was &lt;a hreflang=&quot;en&quot; href=&quot;http://limi.net/articles/firefox-acid3&quot;&gt;an article from Alexander Limi &lt;/a&gt;explaining why Firefox will not pass the Acid3 test mainly due to a lack of SVG font support. All those complain are misplaced in many way because SVG fonts are misunderstood. Really? But in this case, what are SVG fonts made for? Let&amp;#8217;s see that.&lt;/p&gt;    &lt;h2&gt;Forget it for regular text&lt;/h2&gt;
&lt;p&gt;One of the biggest misconceptions about SVG fonts is thinking that this format is suitable for regular HTML text. Unfortunately, it is not! In my opinion, this misconception is mainly due to Apple. Until iOS 4.2, SVG was the only format available to use custom fonts on iPhone and iPad. And because this support was (is?) somewhat buggy, SVG fonts&amp;#8217; reputation was badly injured.&lt;/p&gt;
&lt;p&gt;Anyway, beyond iOS SVG font support, it&amp;#8217;s a fact that SVG font format does not support font hinting. To understand that so called &amp;#8220;lack&amp;#8221; it&amp;#8217;s important to think back about the specificity of the SVG image format. SVG shapes are placed in an absolute coordinate system and SVG documents do not have text flow ability such as HTML documents. Also, SVG documents do not necessarily have pixel perfect dimensions and the shapes can be subjected to mathematical transformations (rotation, scaling, skewing, etc.). So this means that a glyph can be placed anywhere in a document and its shape modified, but most of the time it won&amp;#8217;t match a pixel perfect size nor even a pixel perfect grid. With all those constraints, hinting is not really helpful because it needs a pixel grid system to give its best.&lt;/p&gt;
&lt;p&gt;If you simply try to use a WOFF font in an HTML document and apply a CSS3&amp;#160;2D transform, you&amp;#8217;ll see that even with a hinting system, this does not really make a difference. But on the contrary, on regular HTML text that is pixel perfect positioned, SVG fonts are not so beautiful especially at small size. So yes, in an HTML document, SVG fonts are poor. But, as I said, it&amp;#8217;s not their main purpose.&lt;/p&gt;
&lt;h2&gt;The power of drawing tools&lt;/h2&gt;
&lt;p&gt;In regards of other fonts formats, one of the biggest advantages of SVG fonts is the way shapes can be drawn.&lt;/p&gt;
&lt;p&gt;Technically speaking, the shapes in SVG fonts can be made of any kind of curves (cubic or quadratic Bezier in different flavors or arc definitions) where shapes in TrueType fonts can only be made of quadratic Bezier curves. OpenType fonts are a bit smarter by supporting cubic Bezier curves, but for what I know no other font format supports arc definition. So, in theory the outlines produced for SVG fonts could be much more optimized than in other font formats. Ok, let&amp;#8217;s be honest, it is not often the case in classical glyph design. But there is more. Because SVG fonts could use all the power of SVG it is possible to draw very complex shapes by mixing arbitrary paths and basic SVG shapes, which gives you a more control over your font design. So when you want &lt;strong&gt;to design an ornamental font, SVG gives you better tools&lt;/strong&gt; to do so.&lt;/p&gt;
&lt;p&gt;Practically speaking, it&amp;#8217;s possible to use any software supporting SVG to draw fonts. This includes traditional font software such as FontForge but it&amp;#8217;s also possible to take full advantage of drawing software such as Adobe Illustrator or Inkscape (this one provides powerful tools for drawing fonts). Of course such drawing software can be used to produce outlines for other font formats but you&amp;#8217;ll always need to export them inside a specific font tool to convert those outlines to the right curves definition (which can have side effects on your design). With SVG, you don&amp;#8217;t need to. &lt;strong&gt;You can directly use the output from your drawing software&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Animation, filters, video&amp;#8230; \o/&lt;/h2&gt;
&lt;p&gt;Let&amp;#8217;s go forward. SVG, beyond its drawing ability, has some amazing extension such as gradients, patterns, clipping, masking, animations, filters or even foreign object inclusion. It means that you can use all of this inside your SVG fonts. Yes it&amp;#8217;s possible to produce native animated font with SVG. With filters, you can produce blurry or textured fonts. And with foreign object inclusion&amp;#8230; Wow&amp;#160;! There&amp;#8217;s no limit. Why not imagine a font with a sound background? Yes it&amp;#8217;s possible, just include an HTML audio element and it&amp;#8217;s done.&lt;/p&gt;
&lt;p&gt;Of course it&amp;#8217;s not necessarily wise to do such things. Especially if you want to use such a font for regular text. But think about it. The SVG font format unleashes your creativity to a brand new world. Say good-bye to the legacy &amp;#8220;lead &amp;amp; paper&amp;#8221; typography and jump out the final frontier with the upcoming of fonts made FOR the web (and not just backported to it).&lt;/p&gt;
&lt;h2&gt;Embedding and DOM Access&lt;/h2&gt;
&lt;p&gt;You think it&amp;#8217;s amazing? Let&amp;#8217;s go one step further in the twilight zone.&lt;/p&gt;
&lt;p&gt;Historically speaking, ten years ago, SVG font was the only font format that could be embedded inside an SVG document. This feature was required to ensure that the rendering of a font inside an SVG document would remain consistent across different platforms and user-agents. Today, thanks to CSS @font-face and Data URI, it&amp;#8217;s possible to embed any type of font format, but still, SVG fonts have always a huge advantage here.&lt;/p&gt;
&lt;p&gt;As you know, SVG is an XML format so SVG font as well. This means that you can embed SVG fonts inside any XML document (for example in an SVG image or in an XHTML document and, in a near future, with HTML5, in any ordinary HTML document) and still have access to the glyphs through the DOM of the XML document. And this is huge because it means two crazy things:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You can easily access the font content through Javascript and change it as you wish for whatever reason. &lt;strong&gt;The SVG font format lets you in control of each individual glyph at runtime&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You can use CSS to style each individual glyph which gives you an amazing control on how the font will be rendered.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The other font formats do not provide such an easy and full access to their core design.&lt;/p&gt;
&lt;h2&gt;Security, accessibility, bla, bla, bla&amp;#8230;&lt;/h2&gt;
&lt;p&gt;With such great power come amazing responsibilities. Security is one of the main concerns about SVG fonts. As &lt;a hreflang=&quot;en&quot; href=&quot;http://developers.slashdot.org/comments.pl?sid=1713004&amp;amp;cid=32847010&quot;&gt;Borris Zbarsky points out&lt;/a&gt;&amp;#160;: &lt;q&gt;Once you put an &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; in a glyph, all sorts of issues arise&lt;/q&gt; and is damn right. This point have to be discussed but is it a reason to drop everything? I don&amp;#8217;t think so. &lt;/p&gt;
&lt;p&gt;Another concern is about accessibility - so highly interactive fonts raise many issues, for example &amp;#8220;how the user can control the animation on an animated font?&amp;#8221;. But these questions are basically of the same type as those SVG brings on its own. So it&amp;#8217;s possible to rely on the solutions available for SVG in a general purpose.&lt;/p&gt;
&lt;p&gt;Of course it&amp;#8217;s necessary for both browser constructors and web authors to take care about all those constrains. I&amp;#8217;m sure some evil web authors will use SVG fonts badly, sure that browser vendors (all of them) do not presently do their best to support SVG fonts. So be it - but I think that SVG fonts are a real turning point in the history of typography and should be taken for what they really are: an amazing tool to bring fresh design ideas in typography and cool typography in web design. And it&amp;#8217;s important to remember that SVG fonts do not play the same game as WOFF fonts on the web. Both formats have their strengths and weaknesses but there are not mutually exclusive. &lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Arrétez de me casser les gonades avec border-radius</title>
    <link>http://jeremie.patonnier.net/post/2011/01/03/arretez-de-me-casser-les-gonades-avec-border-radius</link>
    <guid isPermaLink="false">urn:md5:837acf50498174c4f381975e7de2362e</guid>
    <pubDate>Mon, 03 Jan 2011 09:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>agacement</category><category>CSS</category><category>webdesign</category>    
    <description>&lt;p&gt;Ça faisait longtemps que je ne m&amp;#8217;était pas énervé et pour bien commencer la nouvelle année, sachez le, j&amp;#8217;en ai un peu marre. Marre de quoi me diriez-vous&amp;#160;? J&amp;#8217;en ai marre de ces intégrateurs qui se gargarisent avec &lt;code&gt;border-radius&lt;/code&gt;, marre de ces gens qui ne jurent que par &lt;code&gt;box-shadow&lt;/code&gt;, marre de ces crétins qui réduisent CSS3 au module &amp;#8220;Border &amp;amp; Background&amp;#8221;. &lt;code&gt;Border-radius&lt;/code&gt;, c&amp;#8217;est l&amp;#8217;arbre qui cachent la forêt. CSS 3 est d&amp;#8217;une richesse incroyable et pour l&amp;#8217;instant, les constructeurs de navigateurs n&amp;#8217;implémentent que de toutes petites choses, le gros reste à venir (et si vous prenez 5 minutes pour aller survoler les specs, même pas les lire, juste les survoler, vous verrez qu&amp;#8217;il y a du lourd).&lt;/p&gt;
&lt;p&gt;Soyons clairs, aujourd&amp;#8217;hui, les seuls gars que je prend au sérieux à propos de CSS 3, ce sont ceux qui me parlent des sélecteurs et des Media Queries CSS 3 car c&amp;#8217;est là que se cache la vraie puissance actuelle de CSS 3 (et pour le future les transformations 2D et 3D, les différents systèmes de positionnements et de mise en page, la génération de contenu, etc. autant dire que ça va être la fête du slip le jour où on aura tout ça dans nos boites à outils). Si vous voulez vous la péter avec le module &amp;#8220;Border &amp;amp; Background&amp;#8221;, c&amp;#8217;est possible. Mais dans ce cas, c&amp;#8217;est du coté de &lt;code&gt;border-image&lt;/code&gt; qu&amp;#8217;il faut aller fouiner et surtout, surtout, arrêtez de vous extasier sur &lt;code&gt;border-radius&lt;/code&gt; et &lt;code&gt;box-shadow&lt;/code&gt; qui ne sont que de la poudre au yeux.&lt;/p&gt;    &lt;p&gt;Voilà pour l&amp;#8217;échauffement, passons à la mise à mort. Je vais vous détailler pourquoi &lt;code&gt;border-radius&lt;/code&gt; et &lt;code&gt;box-shadow&lt;/code&gt; ne sont que des résidus de cagoinces (si, si).&lt;/p&gt;
&lt;h2&gt;Le cas border-radius&lt;/h2&gt;
&lt;p&gt;Combien de fois ai-je entendu &amp;#8220;Oui, mais tu comprends, pour les bords arrondis, &lt;code&gt;border-radius&lt;/code&gt;, c&amp;#8217;est mieux&amp;#8221;. Mieux&amp;#160;? Mieux que quoi exactement&amp;#160;? Non parce que sans déconner, moi, intégrer des bords arrondis, ça fait plus de 10 ans que je le fait. Ok, ne soyons pas de mauvaise foi, &lt;code&gt;border-radius&lt;/code&gt; permet de faire des bords arrondis &amp;#8220;sans image&amp;#8221; ni &amp;#8220;sur-balisage HTML&amp;#8221; ni &amp;#8220;Javascript&amp;#8221;. C&amp;#8217;est donc bien &lt;em&gt;une autre méthode&lt;/em&gt;, parfois plus légère, pour réaliser des bords arrondis &lt;em&gt;simple&lt;/em&gt;s. Mais je ne vois pas en quoi c&amp;#8217;est &amp;#8220;mieux&amp;#8221;&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Pas d&amp;#8217;image&amp;#160;: Donc ça c&amp;#8217;est un non-argument absolue. Que dites-vous&amp;#160;? Économiser des requêtes HTTP pour les performances&amp;#160;? Vous ne connaissez pas &lt;a href=&quot;https://developer.mozilla.org/en/data_URIs&quot;&gt;les DATA URL&lt;/a&gt;&amp;#160;? Qui sont implémentées par &lt;em&gt;tous&lt;/em&gt; les navigateurs qui supportent &lt;code&gt;border-radius&lt;/code&gt; et avec &lt;a href=&quot;http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/&quot;&gt;des équivalents pour les vieux IE&lt;/a&gt;&amp;#160;! Mmmh&amp;#160;? Réduire le poids des pages Web&amp;#160;? Non sans rire, vous en êtes à optimiser 500 octets d&amp;#8217;image (le poids maximum d&amp;#8217;une image correctement compressée pour faire l&amp;#8217;équivalent de ce que permet border-radius)&amp;#160;! Vous êtes sur que vous n&amp;#8217;avez pas autre chose à optimiser avant, comme la durée de vie du cache de vos ressources statiques par exemple&amp;#160;? Accessoirement, l&amp;#8217;utilisation d&amp;#8217;images pour gérer les bordures offre d&amp;#8217;énormes avantages graphiques car elles permettent de créer des formes bien plus subtiles et complexes donc, allez plutôt trifouiller &lt;code&gt;border-image&lt;/code&gt; et &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.alsacreations.com/tuto/lire/1068-sprites-css-background-position.html&quot;&gt;apprenez à faire des sprites CSS&lt;/a&gt;, hein.&lt;/li&gt;
&lt;li&gt;Pas de sur-balisage HTML&amp;#160;: Ceci est un argument presque recevable sauf que&amp;#8230; Sauf que dans la vraie vie, ce n&amp;#8217;est vraie que si vous cherchez à intégrer des boites qui s&amp;#8217;élargissent à la fois en hauteur et en largeur et qui doivent s&amp;#8217;afficher avec des coins transparents. Une fois sortie de ce cas de figure, somme toute assez rare, il y a 9 chances sur 10 (voir 9,9 si vous vous intéressez aux sélecteurs CSS 3) que votre code source soit suffisamment balisé pour vous permettre de rajouter des bords arrondis sans avoir à vous casser la tête sur le HTML (et je ne vous parle même pas d&amp;#8217;utiliser des techniques un peu délicates comme &lt;a hreflang=&quot;en&quot; href=&quot;http://jeremie.patonnier.net/post/2010/11/22/before-et-after-des-pseudo-elements-qui-ont-du-style&quot;&gt;les pseudo-éléments CSS&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Pas besoin de Javascript&amp;#160;: Donc, là, vous ne le voyez pas, mais je suis sous mon bureau, ravagé par une crise de fou rire. Si vous avez tout lu jusque là, vous aurez sans doute deviné que je n&amp;#8217;ai jamais utilisé une once de Javascript pour produire des bords arrondis. Mais même si c&amp;#8217;était le cas&amp;#8230; en toute honnêteté, c&amp;#8217;était quand la dernière fois que vous avez créer un site qui n&amp;#8217;embarque pas une bibliothèque Javascript à tout faire (jQuery, Prototype, YUI, etc.)&amp;#160;? Accessoirement, si vous avez pris de bonnes habitudes en terme de &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.nota-bene.org/Javascript-non-intrusif-le-debat&quot;&gt;Javascript non-intrusif&lt;/a&gt;, ça ne devrait pas vous poser l&amp;#8217;ombre d&amp;#8217;un cas de conscience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alors, oui, &lt;code&gt;border-radius&lt;/code&gt;, ça peut être plus simple et plus rapide&amp;#8230; mais c&amp;#8217;est aussi très limité dès que vous voulez essayer de produire des bordures un peu chiadées graphiquement parlant (genre avec un petit reflet de lumière ou avec un petit déséquilibre dans les formes&amp;#8230; bref, si vous voulez un truc un peu moins raide). Et dans ce cas-là&amp;#8230; mmmh&amp;#8230; je crois qu&amp;#8217;il y a un truc en CSS 3 qui s&amp;#8217;appelle &lt;code&gt;border-image&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;box-shadow, ni fait, ni à faire&lt;/h2&gt;
&lt;p&gt;Ayant donc d&amp;#8217;autorité décrété que &lt;code&gt;border-radius&lt;/code&gt; c&amp;#8217;était plutôt &amp;#8220;bof&amp;#8221;, je vais maintenant faire de même avec &lt;code&gt;box-shadow&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Box-shadow&lt;/code&gt; est cette propriété qui, comme son nom l&amp;#8217;indique, permet de créer des ombres portés et, comme son nom ne l&amp;#8217;indique pas, des effets de halo, de lumière et même&amp;#8230; de bordures&amp;#160;! Et oui&amp;#160;! En soit, c&amp;#8217;est une propriété intéressante (en tout cas beaucoup plus que &lt;code&gt;border-radius&lt;/code&gt;), dès qu&amp;#8217;on cherche à la tordre pour en faire autre choses que ce qu&amp;#8217;elle suggère. Malheureusement, elle souffres de quelques défauts que je qualifie assez volontiers de majeur&amp;#160;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Les ombres (ou lumières) générées sont carrées ou plus exactement, elles ont la forme exacte de la boite sur laquelle la propriété est appliquée (ce qui inclue l&amp;#8217;usage de &lt;code&gt;border-radius&lt;/code&gt; heureusement, mais pas la transparence des images, j&amp;#8217;y reviens plus loin). Certes, elles peuvent être distendues ou contractées homothétiquement, mais pas déformées à l&amp;#8217;envie. Donc, si vous souhaitez créer des effets graphiques un peu travaillés, du genre feuille-de-papier-qui-se-décolle-sur-un-coin, vous repassez par la case image (et vous ne touchez pas 20&amp;#160;000 Francs, votre client n&amp;#8217;en ayant rien à foutre que vous galériez à produire l&amp;#8217;effet qu&amp;#8217;il attend&amp;#8230; il fallait y penser avant).&lt;/li&gt;
&lt;li&gt;Si vous ne mettez pas une couleur d&amp;#8217;arrière plan à la boite qui génère l&amp;#8217;ombre, celle-ci sera&amp;#8230; troué&amp;#160;! Et oui, &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/css3-background/#the-box-shadow&quot;&gt;c&amp;#8217;est la spec qui le dit&lt;/a&gt;&amp;#160;: &lt;q lang=&quot;en&quot;&gt;The shadow is drawn outside the border edge only: it is clipped inside the border-box of the element.&lt;/q&gt;. En clair, la partie de l&amp;#8217;ombre qui est sous la boite correspondante n&amp;#8217;est pas rendue et puis voilà, c&amp;#8217;est tout&amp;#8230; iiirk&amp;#160;! Vous pourriez m&amp;#8217;objecter que ça peut être utile. Oui, c&amp;#8217;est vrai, mais pas toujours et comme ce n&amp;#8217;est pas paramétrable, c&amp;#8217;est chiant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Donc, de deux choses l&amp;#8217;une&amp;#160;: Soit vous atteigniez le niveau zéro du web design (et franchement, une boite à bord arrondi et/ou avec une ombre porté, oui, c&amp;#8217;est le niveau zéro du web design&amp;#160;; le truc que tous les apprentis intégrateurs font le premier jour où ils découvrent les joies de CSS) et avez besoin de produire de simples ombres portées ou des effets de lueur interne sur une boite, dans ce cas, c&amp;#8217;est ok, cette propriété est faite pour vous&amp;#160;; soit vous voulez réalisez des effets un peu plus complexes et vous allez vite vous rendre compte que ce n&amp;#8217;est pas plus simple ou pire, que c&amp;#8217;est carrément limité et vous allez alors soit vous rabattre vers l&amp;#8217;utilisation d&amp;#8217;images (là encore, &lt;code&gt;border-image&lt;/code&gt; peut bien vous aider&amp;#8230; oui, je sais, je suis un peu lourd là, mais il faut vraiment voir toute la souplesse graphique qu&amp;#8217;offre cette propriété) soit, si vous êtes un peu plus aventureux, vous allez regarder du coté des filtres SVG (aventureux car pour l&amp;#8217;instant, l&amp;#8217;application de filtres SVG sur des éléments HTML ne fonctionne qu&amp;#8217;avec Firefox 4&amp;#8230; qui n&amp;#8217;est pas encore sorti au moment ou je publie ce coup de gueule).&lt;/p&gt;
&lt;p&gt;Je ne suis pas le seul à penser que &lt;code&gt;box-shadow&lt;/code&gt; est une propriété mal finie. En effet, les développeurs de webkit ont implémenté une autre propriété d&amp;#8217;ombre&amp;#160;: &lt;code&gt;-webkit-svg-shadow&lt;/code&gt;. Cette propriété ne fait actuellement l&amp;#8217;objet d&amp;#8217;aucune normalisation, mais elle est une tentative pour porter la souplesse des ombres SVG vers CSS sans avoir à subir toute la lourdeur des primitives de filtres SVG. L&amp;#8217;idée étant d&amp;#8217;avoir une propriété qui gère pleinement la transparence des boites HTML et des images pour créer des ombres qui ont des formes complexes. En effet, essayez d&amp;#8217;appliquer &lt;code&gt;box-shadow&lt;/code&gt; à une image transparente&amp;#8230; l&amp;#8217;ombre sera carré&amp;#160;: fail&amp;#160;! (Ceci étant dit, les développeurs de Webkit ferait mieux de travailler sur l&amp;#8217;implémentation de &lt;code&gt;box-shadow&lt;/code&gt;. Essayez de créer &lt;a hreflang=&quot;en&quot; href=&quot;http://code.google.com/p/chromium/issues/detail?id=25334&quot;&gt;une ombre interne sur une boite avec &lt;code&gt;border-radius&lt;/code&gt;&lt;/a&gt; et vous comprendrez de quoi je parle).&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Aaaah, je me sens mieux&amp;#160;!&lt;/p&gt;
&lt;p&gt;Vous l&amp;#8217;aurez compris, en ce qui me concerne ces deux propriétés ne méritent pas l&amp;#8217;attention qu&amp;#8217;on leur porte. Certes, elles apportent des solutions élégantes à certains problèmes communs d&amp;#8217;intégration mais sans non plus porter à elles seules la révolution qu&amp;#8217;est CSS3. De fait, je ne les renie pas car elles ont leur utilité (et il m&amp;#8217;arrive même de les utiliser, si, si&amp;#160;!). Cependant, il existe moult autres propriétés CSS3&amp;#160;en cour d&amp;#8217;implémentation qui sont infiniment plus utiles (mais aussi infiniment moins sexy). En particulier, je vous invite à regarder de près ce qui ce fait au sein du &lt;a hreflang=&quot;en&quot; href=&quot;http://dev.w3.org/csswg/css3-ui/&quot;&gt;module CSS Basic UI&lt;/a&gt; avec en particulier les propriétés &lt;code&gt;box-sizing&lt;/code&gt; et &lt;code&gt;pointer-events&lt;/code&gt; qui sont assez discrètes mais super utiles au quotidien (non mais vraiment&amp;#160;!) ainsi que toutes les pseudo-classes de ce module et du &lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/css3-selectors&quot;&gt;module CSS selecteur Level 3&lt;/a&gt;. Ah&amp;#160;! Et au fait, est-ce que je vous ai parlé de &lt;code&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://www.w3.org/TR/css3-background/#border-images&quot;&gt;border-image&lt;/a&gt;&lt;/code&gt;&amp;#160;? &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>:before et :after, des pseudo-éléments qui ont du style</title>
    <link>http://jeremie.patonnier.net/post/2010/11/22/before-et-after-des-pseudo-elements-qui-ont-du-style</link>
    <guid isPermaLink="false">urn:md5:0d771a8d82faea70fa8a50fee43fc432</guid>
    <pubDate>Mon, 22 Nov 2010 09:00:00 +0100</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Web</category>
        <category>CSS</category><category>webdesign</category>    
    <description>&lt;p&gt;En ces temps de buzz autour de CSS3, on en oublie les supers outils qui existent dans CSS2 et qui sont largement exploitables. Parmi ceux-ci, on trouve les pseudo-éléments :before et :after. Ces pseudo-éléments ont longtemps été négligés par les designers et intégrateurs Web pour deux raisons essentiellement&amp;#160;: Premièrement, IE6 et IE7 ne les comprennent pas, donc à l&amp;#8217;époque ou ces deux navigateur était dominant c&amp;#8217;était inutilisable&amp;#160;; Deuxièmement, les ayatollahs de l&amp;#8217;accessibilité stigmatisent assez volontiers ces deux pseudo-éléments (parfois à raison) ce qui a tendance à effrayer les designers et intégrateurs qui finalement s&amp;#8217;y intéressent peu.&lt;/p&gt;
&lt;p&gt;Pourtant, ces deux paravent masquent la puissance de ces outils. Le premier point est facilement contournable avec un peu de Javascript et le deuxième point est totalement injustifié dès lors qu&amp;#8217;on utilise ces pseudo-éléments pour ce qu&amp;#8217;ils sont&amp;#160;: des aides à la mise en forme. Je vais donc vous montrer comment fonctionnent ces pseudo-éléments, vous allez voir, c&amp;#8217;est génial &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; &lt;/p&gt;    &lt;h2&gt;Des pseudo quoi&amp;#160;?&lt;/h2&gt;
&lt;p&gt;CSS2 définie donc deux pseudo-éléments sobrement accessible via les sélecteurs &lt;code&gt;:before&lt;/code&gt; et &lt;code&gt;:after&lt;/code&gt;. Hop, hop, hop&amp;#8230; pseudo quoi&amp;#160;? Comme son nom l&amp;#8217;indique, un pseudo-élément est un truc qui ressemble à un élément, qui a le gout d&amp;#8217;un élément, qui se comporte comme un élément&amp;#8230; mais qui n&amp;#8217;en est pas un. Et oui, les pseudo-élément CSS sont à HTML ce que la bière sans alcool est&amp;#8230; euh&amp;#8230;&amp;nbsp; à la bière.&lt;/p&gt;
&lt;p&gt;Diantre, un élément qui n&amp;#8217;en ait pas un&amp;#160;! Aurais-je donc trop bu de l&amp;#8217;alcool sus-nommé&amp;#160;? Que nenni. La principal différence technique entre un pseudo-éléments et un élément &amp;#8220;normal&amp;#8221; se résume assez simplement&amp;#160;: Les pseudo-éléments n&amp;#8217;apparaissent jamais dans l&amp;#8217;arbre DOM des documents mais influencent sur le rendu visuel de celui-ci comme si c&amp;#8217;était le cas. &lt;/p&gt;
&lt;p&gt;Cet état de fait à deux conséquences&amp;#160;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Toutes les aides à l&amp;#8217;accessibilité qui reposent sur l&amp;#8217;exploitation du DOM ne &amp;#8220;verront&amp;#8221; jamais les pseudo-éléments.&lt;/li&gt;
&lt;li&gt;Manipuler les pseudo-éléments via Javascript ne peut pas se faire via l&amp;#8217;API DOM, mais uniquement via des modifications de style (et encore, difficilement).&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Emplacement et comportement&lt;/h2&gt;
&lt;p&gt;Maintenant que vous avez compris ce que sont ces pseudo-éléments, comment ceux-ci s&amp;#8217;intègrent dans le rendu visuel des éléments traditionnels&amp;#160;?&lt;/p&gt;
&lt;p&gt;Un pseudo-éléments est toujours défini relativement à un élément réel (c&amp;#8217;est à dire qui existe dans l&amp;#8217;arbre DOM). Cela signifie, qu&amp;#8217;il est visuellement rendu comme un enfant de cet élément réel (et pas comme un élément frère placé avant ou après l&amp;#8217;élément de référence contrairement à ce qu&amp;#8217;on pourrait croire). &lt;code&gt;:before&lt;/code&gt; désignera donc le pseudo-élément qui sera visuellement placé &lt;em&gt;avant le premier enfant&lt;/em&gt; de l&amp;#8217;élément de référence et &lt;code&gt;:after&lt;/code&gt; désignera le pseudo-élément qui sera visuellement placé &lt;em&gt;après le dernier enfant&lt;/em&gt; de l&amp;#8217;élément de référence. Notez que si
vous utilisez ces deux sélecteurs tout seul, cela reviens à faire une
utilisation implicite du sélecteur universel &lt;code&gt;*&lt;/code&gt;. Ainsi, la règle
&lt;code&gt;:before{...}&lt;/code&gt; seule est équivalente à la règle &lt;code&gt;*:before{...}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En outre, un pseudo-élément va se comporter visuellement de la même façon qu&amp;#8217;un élément HTML &lt;code&gt;span&lt;/code&gt;. Arrêtons-nous ici un petit moment car c&amp;#8217;est sans doute le point le plus important à comprendre pour arriver à devenir créatif avec les pseudo-élément. Je le redis&amp;#160;: un pseudo-élément va se comporter visuellement de la même façon qu&amp;#8217;un élément HTML &lt;code&gt;span&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Un bon schéma valant mieux qu&amp;#8217;une longue explication voila ce que ça implique.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;before-after.png&quot; src=&quot;http://jeremie.patonnier.net/public/pseudo-elements/before-after.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dans le premier cas, l&amp;#8217;élément référent ne contient que du texte, les pseudo-éléments vont donc s&amp;#8217;inclure dans le flux du texte. Dans le deuxième cas, l&amp;#8217;élément référent contient un enfant de type bloc, les pseudo-éléments vont donc se placer avant et après ce bloc.&lt;/p&gt;
&lt;h2&gt; Génération de contenu&lt;/h2&gt;
&lt;p&gt;Voila, les pseudo-éléments ont trouvé leur place et on peut leur appliquer tous les styles disponibles pour les mettre en forme, c&amp;#8217;est génial&amp;#8230; sauf que&amp;#8230; Sauf que ce ne sont que des boites vides. Certes, les perspectives ouvertes sont déjà assez immenses quand on a un peu d&amp;#8217;imagination (et Dieu sait qu&amp;#8217;il faut en avoir pour faire de l&amp;#8217;intégration Web&amp;#160;!). Mais là ou ça devient vraiment fun, c&amp;#8217;est quand on commence à remplir ces pseudo-éléments avec du contenu.&lt;/p&gt;
&lt;p&gt;Normalement, c&amp;#8217;est quand on en arrive à ce point qu&amp;#8217;on assiste à une levée de boucliers des intégristes de l&amp;#8217;accessibilité&amp;#8230; les sots&amp;#160;! En général, leur argument principal est que les contenus générés n&amp;#8217;étant pas présent dans le DOM, tout les outils d&amp;#8217;accessibilité ne peuvent pas exploiter ces contenus (sans parler des navigateurs qui ne comprennent tout simplement pas les pseudo-éléments). C&amp;#8217;est vrai, et il est important de s&amp;#8217;en souvenir. Ceci étant dit, il est bon de rappeler que tout les contenus n&amp;#8217;ont pas à êtres accessibles, surtout s&amp;#8217;ils servent un objectif décoratif. Donc, OUI, c&amp;#8217;est possible de générer du contenu en CSS si celui-ci n&amp;#8217;a qu&amp;#8217;une vocation décorative. Pire&amp;#160;! J&amp;#8217;irai plus loin, je vous le recommande. En effet, générer des contenus décoratifs en CSS réduit le bruit autour des contenus devant être accessible. Et donc, bien utilisés, &lt;code&gt;:before&lt;/code&gt; et &lt;code&gt;:after&lt;/code&gt; peuvent vous aider à améliorer l&amp;#8217;accessibilité de vos sites.&lt;/p&gt;
&lt;p&gt;La génération de contenu dans un pseudo-éléments passe par l&amp;#8217;utilisation de la propriété CSS &lt;code&gt;content&lt;/code&gt;. Cette propriété peut accepter plusieurs valeurs différentes selon ce que vous voudrez générer. Notez que même si vous ne voulez qu&amp;#8217;une boite vide, vous devrez utiliser la propriété &lt;code&gt;content&lt;/code&gt; avec une chaine vide. En effet, la valeur par défaut de cette propriété (&lt;code&gt;normal&lt;/code&gt;) fait que les pseudo-éléments ne sont pas affichés.&lt;/p&gt;
&lt;h3&gt;Du texte&lt;/h3&gt;
&lt;p&gt;Le plus simple à faire c&amp;#8217;est de générer du texte. Cela ce fait très simplement de la manière suivante&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;div.alert:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : &quot;WARNING: &quot;; &lt;br /&gt;/* Ici, vous préfixez tous vos messages d'alerte avec un texte qui n'a pas besoin d'être accessible. C'est un choix de design &lt;ins&gt;acceptable s'il existe dans la page HTML un autre moyen d'identifier ces messages comme étant des alertes. Si ce n'est pas le cas, vous commettez une grave erreur d'accessibilité.&lt;/ins&gt;. &lt;del&gt;En effet, si vous générez beaucoup d'alertes, il peut être fastidieux d'entendre une revue d'écran vous dire &quot;WARNING-DEUX-POINTS&quot; en permanence. Ici, ce ne sera pas le cas &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/del&gt; */ &lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;MAJ du 24/11&amp;#160;:&lt;/strong&gt;&lt;em&gt; Suite au échanges dans les commentaires avec Stéphane &amp;#8220;Roudoudou d&amp;#8217;amour&amp;#8221; Deschamps, il est nécessaire de comprendre que toute insertion de texte via CSS doit être soupesé avec attention car les conséquences en terme d&amp;#8217;accessibilité peuvent être importante.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Notez que vous pouvez mettre n&amp;#8217;importe quel caractère Unicode dans une chaine générée. La syntaxe pour insérer un code Unicode est &lt;code&gt;\00XXXX&lt;/code&gt; ou la chaine XXXX représente le code Unicode hexadécimal de votre caractère. Petite exception à cela&lt;sup&gt;&lt;a href=&quot;http://jeremie.patonnier.net/post/2010/11/22/before-et-after-des-pseudo-elements-qui-ont-du-style#note1&quot; title=&quot;En fait ce n'est pas une exception, mais la gestion des échappements de caractères avec CSS n'est pas forcément très simple, donc, je vous encourage à vous familiariser avec la notation \00XXXX et à considérer \A comme une exception.&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, les retours à la ligne disposent d&amp;#8217;un raccourcis&amp;#160;: &lt;code&gt;\A&lt;/code&gt;. Par exemple, si vous voulez rajouter une espace insécable avant un deux-points, ça donnera&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;label:after{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : &quot;\00202F:&quot;; &lt;br /&gt;/* Là aussi, vous n'avez peut-être pas forcément envie que votre revue d'écran vous dise &quot;DEUX-POINT&quot; tout le temps hein ? */ &lt;br /&gt;}&lt;/pre&gt;
&lt;h3&gt;Des images&lt;/h3&gt;
&lt;p&gt;Il est également possible d&amp;#8217;inclure des images grâce à la fonction &lt;code&gt;url()&lt;/code&gt;. Ce qui donnera&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;div.alert:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : url(exclamation.png);&lt;br /&gt;}&lt;/pre&gt;
&lt;h3&gt;Des compteurs&lt;/h3&gt;
&lt;p&gt;Très utile si on veut numéroter des éléments (que ceux-ci soient ou non des listes ordonnées n&amp;#8217;a aucune importance) comme des titres par exemples. Pour cela, il faut utiliser les fonctions &lt;code&gt;counter()&lt;/code&gt; ou &lt;code&gt;counters()&lt;/code&gt; en conjonction avec les propriétés &lt;code&gt;counter-reset&lt;/code&gt; et &lt;code&gt;counter-increment&lt;/code&gt;. Je ne vais pas vous détailler l&amp;#8217;usage des compteurs qui mériterai un article à lui seul, mais cela fait également partis de ces outils sous-estimés de CSS2. Voici un petit exemple simple&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-reset: alert; /* On défini le compteur avec un nom arbitraire */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.alert:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-increment : alert;&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : counter(alert, decimal);&lt;br /&gt;/* avant la virgule, c'est le nom du compteur, après la virgule, c'est son style. La valeur du style est la même que pour la propriété list-style-type */&lt;br /&gt;}&lt;/pre&gt;
&lt;h3&gt;Des valeurs d&amp;#8217;attribut&lt;/h3&gt;
&lt;p&gt;Enfin, il est possible de récupérer et donc d&amp;#8217;afficher les valeurs des attributs de l&amp;#8217;élément référent qui contiendra les pseudo-éléments. Je ne vous met pas d&amp;#8217;exemple, mais je vous invite à relire l&amp;#8217;article que j&amp;#8217;ai écris sur ce sujet&amp;#160;: &lt;a href=&quot;http://jeremie.patonnier.net/post/2010/06/23/Ameliorez-vos-liens-avec-la-generation-de-contenu-CSS&quot;&gt;Améliorez vos liens avec la génération de contenu CSS&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Grand Schelem, Belote et Quinte Flush Royal&lt;/h3&gt;
&lt;p&gt;Et le plus beau dans tout ça, c&amp;#8217;est que vous pouvez mixer tout ça ensemble&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;body{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-reset: alert;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div.alert:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-increment : alert;&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : url(exclamation.png) &quot;\00202FWARNING\00202F&quot; counter(alert) &quot;\00202F: &quot;;&lt;br /&gt;/* Notez que je n'ai pas remis le style du compteur. Son style par défaut est &quot;decimal&quot; */&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;Ceci dit, soyez raisonnable, ce n&amp;#8217;est pas parce qu&amp;#8217;on peut le faire qu&amp;#8217;on doit le faire &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; Pensez aussi et surtout à vos utilisateurs.&lt;/p&gt;
&lt;h2&gt;Cas d&amp;#8217;usage&lt;/h2&gt;
&lt;p&gt;La théorie c&amp;#8217;est bien, la pratique c&amp;#8217;est mieux. Voici quelques cas d&amp;#8217;usage, mais je suis sur que vous saurez en trouver d&amp;#8217;autres &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;puces et numérotation&lt;/h3&gt;
&lt;p&gt;Les conteurs vous permettent d&amp;#8217;une part de reprendre le contrôle des puces et numéros sur les listes, mais vous permettent également de numéroter d&amp;#8217;autre choses, des titres par exemple&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;article{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-reset : c1 c2 c3;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article h1{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-increment : c1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article h2{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-increment : c2;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;article h3{&lt;br /&gt;&amp;nbsp;&amp;nbsp; counter-increment : c3;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article h1:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content: counter(c1) &quot;. &quot;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article h2:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content: counter(c1) &quot;.&quot; counter(c2) &quot;. &quot;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;article h3:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content: counter(c1) &quot;.&quot; counter(c2) &quot;.&quot; counter(c3, lower-alpha) &quot;. &quot;;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&amp;gt; &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/pseudo-elements/compteurs.html&quot;&gt;Voir l&amp;#8217;exemple des conteurs sur les titres&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Bords arrondis&lt;/h3&gt;
&lt;p&gt;Voici une utilisation avancé des pseudo-éléments. Habituellement, lorsque vous voulez réaliser des bords arrondis avec CSS2, vous êtes obligé de rajouter du balisage HTML (ou SVG, ou VML) pour pouvoir avoir assez d&amp;#8217;éléments à styler pour chacun des coins (peut importe que cet ajout de balises soit fait à priori dans la source HTML ou à posteriori via Javascript, le principe reste le même). Plutôt que de polluer le DOM du document (ce qui peut avoir des conséquences fâcheuses avec certains sélecteurs CSS2 et 3), vous pouvez avantageusement exploiter les pseudo-éléments pour afficher vos coins.&lt;/p&gt;
&lt;p&gt;En effet, en positionnant votre élément de référence de manière &lt;code&gt;relative&lt;/code&gt; et en positionnant vos pseudo-éléments de manière &lt;code&gt;absolute&lt;/code&gt; (et en exploitant correctement la propriété &lt;code&gt;z-index&lt;/code&gt;), vous vous retrouvez avec un élément qui potentiellement dispose de 3 couches d&amp;#8217;arrière-plan et de deux emplacement pour des images supplémentaires. En claire, vous pouvez empiler jusqu&amp;#8217;à 5 images pour créer des effets graphiques de malade.&lt;/p&gt;
&lt;p&gt;Schématiquement, cela donnera un empilement des éléments de ce genre&amp;#160;:&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Ordre d'empilement des couches&quot; alt=&quot;Ordre d'empilement des couches&quot; src=&quot;http://jeremie.patonnier.net/public/pseudo-elements/before-after-2.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le code CSS associé à ce schémas est le suivant&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;div{&lt;br /&gt;&amp;nbsp;&amp;nbsp; position : relative;&lt;br /&gt;&amp;nbsp;&amp;nbsp; z-index : 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div:before,&lt;br /&gt;div:after{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : &quot;&quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; position : absolute;&lt;br /&gt;&amp;nbsp;&amp;nbsp; z-index : -1; /* Oui, z-index accepte les valeurs négatives */&lt;br /&gt;&amp;nbsp;&amp;nbsp; top : 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; left : 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; width : 100%;&lt;br /&gt;&amp;nbsp;&amp;nbsp; height : 100%;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div:after{&lt;br /&gt;&amp;nbsp;&amp;nbsp; z-index : -2;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;Cette technique souffre tout de même de quelques limites (sinon, ce ne serait pas drôle)&amp;#160;: &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Les contenus des pseudo-éléments étant considérés comme du texte en ligne, ils peuvent être délicat à positionner ailleurs que en haut et à gauche du pseudo-éléments (c&amp;#8217;est possible, mais ça donne lieu à des contorsions techniques un peu disgracieuses à mon gout)&lt;/li&gt;
&lt;li&gt;Si vous voulez avoir des coins arrondis sur une boite extensible en largeur ET en hauteur, les coins ne pourront pas être tous transparent (par contre, pour une extension sur un seul axe, c&amp;#8217;est possible).&lt;/li&gt;
&lt;li&gt;La gestion des &lt;code&gt;margin&lt;/code&gt; et &lt;code&gt;padding&lt;/code&gt; de l&amp;#8217;élément de référence demande un peu d&amp;#8217;attention pour être sur que les pseudo-éléments se comportent correctement (une petite révision du modèle de boite et du positionnement CSS n&amp;#8217;est pas inutiles &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ). &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;gt; &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/pseudo-elements/bords-arrondis.html&quot;&gt;Voir l&amp;#8217;exemple des bords arrondis&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Décoration de contenu&lt;/h3&gt;
&lt;p&gt;De manière général, les pseudo-éléments vous permettent de sortir du cadre (littéral) imposé par le modèle de boite CSS pour décorer les éléments.Voici quelques exemples simples.&lt;/p&gt;
&lt;h4&gt;La création de guillemets graphiques autour des éléments blockquote&lt;/h4&gt;
&lt;p&gt;Un exemple simple pour habiller les éléments &lt;code&gt;blockquote&lt;/code&gt; consiste à créer des guillemets avec &lt;code&gt;:before&lt;/code&gt; et &lt;code&gt;:after&lt;/code&gt; et à les &amp;#8220;faire sortir&amp;#8221; pour leur donner une valeur graphique.&lt;/p&gt;
&lt;p&gt;Notez que pour faire de &amp;#8220;vrai&amp;#8221; guillemet via CSS, il existe aussi la propriété &lt;code&gt;quote&lt;/code&gt; qui est mieux adaptée (surtout pour gérer la localisation des règles typographiques)&lt;/p&gt;
&lt;p&gt;&amp;gt; &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/pseudo-elements/decoration.html&quot;&gt;Voir l&amp;#8217;exemple des blockquote&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Réaliser des icônes sous forme de fontes &lt;/h4&gt;
&lt;p&gt;Avec la démocratisation de @font-face, on voit arriver certains usages un peu surprenant. C&amp;#8217;est le cas des icônes sous forme de fontes. Plutôt que d&amp;#8217;utiliser des images, on peut utiliser des polices typographiques qui contiennent des images vectorielles plutôt que des lettres. Ça permet d&amp;#8217;avoir des icônes qui vont bien supporter l&amp;#8217;agrandissement et la réduction. Au delà du fait que je trouve ça techniquement idiot (SVG est bien plus adapté à ce cas d&amp;#8217;usage), cela pose de sérieux problèmes d&amp;#8217;accessibilité. En effet, un caractère, même s&amp;#8217;il ne ressemble pas à une lettre sera compris comme tel par les navigateurs (et donc lu comme tel par les revus d&amp;#8217;écran&amp;#160;!).&lt;/p&gt;
&lt;p&gt;C&amp;#8217;est là que :before et :after peuvent aider à l&amp;#8217;accessibilité&amp;#160;! En positionnant vos icônes dans des pseudo-éléments, les aides à l&amp;#8217;accessibilité n&amp;#8217;y auront plus accès et ces icônes pourront donc être plus efficacement utilisées pour ce qu&amp;#8217;elles sont&amp;#160;: des artifices de décoration.&lt;/p&gt;
&lt;p&gt;&amp;gt; &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/pseudo-elements/decoration.html&quot;&gt;Voir l&amp;#8217;exemple des icônes typographique&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;La tentation du remplacement de texte&lt;/h3&gt;
&lt;p&gt;Ce cas d&amp;#8217;usage est hyper limite, mais il faut que vous le connaissiez pour pouvoir lutter contre les abus et les dérives qui peuvent en découler.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Imaginez le cas suivant&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_html&quot;&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;span&amp;gt;Ici, mon texte d'origine&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;Avec le code CSS suivant&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_css&quot;&gt;span{&lt;br /&gt;&amp;nbsp;&amp;nbsp; position : absolute;&lt;br /&gt;&amp;nbsp;&amp;nbsp; width : 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; height : 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; overflow : hidden;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div:before{&lt;br /&gt;&amp;nbsp;&amp;nbsp; content : &quot;mon nouveau texte&quot;;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;Le texte d&amp;#8217;origine n&amp;#8217;est plus visible mais continue de vivre dans le DOM par contre, le texte du pseudo-éléments est visible mais littéralement inaccessible (il n&amp;#8217;existe pas dans le DOM et il n&amp;#8217;est pas sélectionnable).&lt;/p&gt;
&lt;p&gt;Réaliser un tel remplacement de texte est dangereux car c&amp;#8217;est la porte ouverte au SPAM ou pire au hijacking. Mais il peut y avoir quelques cas légitimes (bien que très certainement discutables), comme par exemple la création de liens &amp;#8220;lire la suite&amp;#8221; qui disposent de libellés plus complets et accessibles dans le DOM. Dans tout les cas, faites bien attention à ce que vous faites et pensez toujours à vos utilisateurs (tous vos utilisateurs).&lt;/p&gt;
&lt;h3&gt;Régler les problèmes de flottaison&lt;/h3&gt;
&lt;p&gt;Un des problèmes récurant lorsqu&amp;#8217;on utilise la propriété &lt;code&gt;float&lt;/code&gt;, c&amp;#8217;est que l&amp;#8217;élément qui flotte, s&amp;#8217;il est plus grand que son conteneur, peut en &amp;#8220;sortir&amp;#8221;. Pour éviter cet effet parfois disgracieux, nous sommes nombreux à avoir appris à agrémenter notre code HTML de &lt;code&gt;&amp;lt;span style=&quot;clear:both&quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/code&gt; et autre joyeuseté du même genre. Pour éviter de polluer nos sources HTML et nos arbres DOM, il y a peu de solution. En fait, il y en deux avec CSS. &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;La première consiste à utiliser la propriété &lt;code&gt;overflow&lt;/code&gt; avec la valeur &lt;code&gt;hidden&lt;/code&gt;. C&amp;#8217;est une technique très efficace, mais qui a un gros défaut&amp;#160;: absolument rien ne peut sortir de l&amp;#8217;élément, ce sera forcément tronqué. Cela peut donc être une contrainte forte, en particulier si vous utilisez des positionnements relatifs ou des marges négatives pour décaler des éléments vers l&amp;#8217;extérieur.&lt;/li&gt;
&lt;li&gt;La deuxième consiste à utiliser un pseudo-élément &lt;code&gt;:after&lt;/code&gt; et tout simplement de lui appliquer la propriété &lt;code&gt;clear&lt;/code&gt;. Et là, c&amp;#8217;est le bonheur, vous avez tous les avantages de la balise &lt;code&gt;span&lt;/code&gt; sans avoir empoisonné votre source HTML et vous évitez tous les problèmes liés à l&amp;#8217;usage de la propriété &lt;code&gt;overflow&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;gt; &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/pseudo-elements/float.html&quot;&gt;Voir les différentes gestion de &lt;code&gt;float&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Le cas Internet Explorer&lt;/h2&gt;
&lt;p&gt;Tous les exemples précédent sont relativement simple et fonctionnent dans tous les navigateur de dernière génération mais malgré cela il y a toujours un petit problème&amp;#160;: Internet Explorer et plus particulièrement ses versions 6 et 7 (mais achevez les, vous voyez bien qu&amp;#8217;ils souffrent&amp;#160;!)&lt;/p&gt;
&lt;p&gt;Mais d&amp;#8217;abord, un petit mot sur Internet Explorer 8 qui est un excellent navigateur en terme de support de CSS2 et qui est donc capable de faire tout ce qui a été dis ci-avant. Enfin&amp;#8230; presque. Il existe un petit bug dans l&amp;#8217;implémentation des pseudo-éléments qui rend impossible la possibilité d&amp;#8217;afficher un pseudo-élément au dessus du contenu de l&amp;#8217;élément de référence. Cela peut parfois être un peu gênant lorsque vous positionnez les pseudo-éléments de manière absolue, mais rien d&amp;#8217;insurmontable graphiquement parlant, il faut juste le savoir.&lt;/p&gt;
&lt;p&gt;Par contre, IE6 et 7 ne supportent pas du tout les pseudo-éléments. Alors que faire&amp;#160;?&lt;/p&gt;
&lt;p&gt;Hélas, il n&amp;#8217;y a pas 36 solutions, et, à moins que vous ne soyez très à l&amp;#8217;aise avec les questions de dégradation harmonieuse, vous allez devoir vous tourner vers Javascript. En effet, la meilleur façon de simuler les pseudo-éléments avec ces navigateurs consiste à inclure de vrai élément dans l&amp;#8217;arborescence du DOM et à leur appliquer les même style qu&amp;#8217;a vos pseudo-éléments.&lt;/p&gt;
&lt;p&gt;Si vous utilisez jQuery, ça peut donner ça&amp;#160;:&lt;/p&gt;
&lt;pre class=&quot;sh_javascript&quot;&gt;$('div.alert')&lt;br /&gt;.prepend('&amp;lt;span class=&quot;before&quot;&amp;gt;&amp;lt;/span&amp;gt;')&lt;br /&gt;.append('&amp;lt;span class=&quot;after&quot;&amp;gt;&amp;lt;/span&amp;gt;');&lt;/pre&gt;&lt;p&gt;Cette solution marche plutôt bien mais souffre de quelques inconvénient qu&amp;#8217;il faut connaitre&amp;#160;:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;IE6 et 7 ne connaissent pas non-plus la propriété &lt;code&gt;content&lt;/code&gt;, il vous faudra donc aussi générer votre contenu via Javascript.&lt;/li&gt;
&lt;li&gt;Les éléments étant véritablement dans le DOM, ils seront visibles par les différentes aides à l&amp;#8217;accessibilité ce qui peut avoir des conséquences déplaisantes pour l&amp;#8217;utilisateur.&lt;/li&gt;
&lt;li&gt;Les déclarations de style pour les classes .before et .after devront être dupliquées. En effet, IE6 et 7 ignoreront tous les blocs de styles avec au moins une déclaration de sélecteur contenant :before et :after, même si les différents sélecteurs sont séparés par une virgule.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Voila pour ce tour d&amp;#8217;horizon des pseudo-éléments. Comme vous avez pu vous en rendre compte, ce sont des outils très puissant qui offrent un potentiel créatif énorme (mais qui requièrent aussi une certaine dose de responsabilité pour ne pas faire n&amp;#8217;importe quoi). &lt;/p&gt;
&lt;p&gt;Bien comprendre les possibilités de CSS2 à son plein potentiel est une étape importante pour aller vers CSS3. En effet, le module dédié à la génération de contenu en CSS3 fait littéralement exploser les limites du possible en la matière avec des fonctionnalités démentes comme le fait de pouvoir créer des pseudo-éléments dans des pseudo-élément et de pouvoir même carrément recréer un arbre DOM fantôme. Bon, pas de panique, d&amp;#8217;ici à ce que les fabricants de navigateurs se soient mis d&amp;#8217;accord sur la norme et commence à l&amp;#8217;implémenter, il va couler de l&amp;#8217;eau sous les ponts (d&amp;#8217;autant que c&amp;#8217;est un module non-prioritaire au W3C). Mais si déjà vous maitrisez ce qu&amp;#8217;offre CSS2, vous vous ouvrer de grandes portes&amp;#8230; amusez-vous bien &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Notes&amp;#160;:&lt;/p&gt;
&lt;ol&gt;
&lt;li id=&quot;note1&quot;&gt;En fait ce n&amp;#8217;est pas une exception, mais &lt;a href=&quot;http://www.w3.org/TR/CSS2/syndata.html#escaped-characters&quot; hreflang=&quot;en&quot;&gt;la gestion des échappements de caractères avec CSS&lt;/a&gt; n&amp;#8217;est pas forcément très simple, donc, je vous encourage à vous familiariser avec la notation \00XXXX et à considérer \A comme une exception.&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mais qu'est-ce que c'est donc qu'il se passe ?</title>
    <link>http://jeremie.patonnier.net/post/2010/10/26/mais-qu-est-ce-que-c-est-donc-qu-il-se-passe</link>
    <guid isPermaLink="false">urn:md5:8c2bd98a68810848019afbb8d4b7e949</guid>
    <pubDate>Tue, 26 Oct 2010 11:08:00 +0200</pubDate>
    <dc:creator>Jeremie</dc:creator>
        <category>Élucubrations</category>
        <category>conférence</category><category>futilités</category><category>typographie</category>    
    <description>    &lt;p&gt;Certains auront peut être remarqué que je n'ai rien posté ici depuis un moment. Il faut bien avouer que les 3 derniers mois ont été un peu chargés. &lt;/p&gt;
&lt;p&gt;Premièrement, J'ai été bien accaparé par la préparation de l'atelier que j'ai donnée à &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.paris-web.fr/2010/&quot;&gt;Paris-Web 2010&lt;/a&gt; sur le thème &quot;CSS 3 Aujourd'hui&quot;. Je vous en reparlerai prochainement, car cette année, quelques ateliers ont été filmés, dont celui-ci :D En attendant, pour ceux que ça intéresse, vous pouvez retrouver les slides et les exemples que j'ai utilisé. Mon seul regret, c'est que l'atelier durait 1h30 alors que j'avais de la matière pour faire un atelier de 3h. Promis, l'année prochaine j'essayerai de faire mieux (si le staff me laisse encore animer un atelier &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Les slides : &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/parisweb2010/&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2010/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les exemples : &lt;a hreflang=&quot;fr&quot; href=&quot;http://jeremie.patonnier.net/experiences/parisweb2010/exemples/&quot;&gt;http://jeremie.patonnier.net/experiences/parisweb2010/exemples/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Deuxièmement, Je travaillais sur un nouveau site qui vient tout juste d'être lancé. En collaboration avec &lt;a hreflang=&quot;fr&quot; href=&quot;http://lasoeurkaramazov.net/&quot;&gt;Anne-Sophie&lt;/a&gt; et &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.cheekfille.com/&quot;&gt;Virginie&lt;/a&gt;, nous sommes heureux de vous annoncer la sortie du site &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net&quot;&gt;Typographisme.net&lt;/a&gt;. Je ne vais pas vous remettre ici &lt;a hreflang=&quot;fr&quot; href=&quot;http://typographisme.net/post/premiers-pas-d-un-nouveau-bebe&quot;&gt;le billet d'ouverture&lt;/a&gt;, mais pour faire simple, on aime le Web design, on aime la typographie... on trouvait dommage que personne ne parle pas plus des deux à la fois.&lt;/p&gt;
&lt;p&gt;Ceci étant, je devrais vite retrouver une activité plus normal (pour ce que ça vaux) car j'ai pas mal de truc à raconter sur SVG et sur CSS (et un peu aussi sur HTML)&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>
