Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SVG, format clé du responsive

SVG, format clé du responsive

Le format SVG est en plein essor depuis l’avènement du responsive design. Nous verrons les situations pour lesquelles ce format est adapté, et les différentes manières de l'intégrer dans un layout responsive.

Pierre-Emmanuel Fringant

September 25, 2014
Tweet

More Decks by Pierre-Emmanuel Fringant

Other Decks in Design

Transcript

  1. Scalable Vector Graphics • Formules mathématiques vs pixels • Rendu

    calculé selon la surface • Balises XML • Spécifications : version 1.1
  2. Pour quels usages ? • Logo http://www.inpixelitrust.fr/demos/SVG_tests/ • Icones http://www.restoready.com/themes-restoready/

    http://ianfeather.co.uk/ten-reasons-we-switched-from-an-icon-font-to-svg/ • Graphique, infographie http://www.highcharts.com/demo/ • Carte http://www.inafon.fr/stages http://www.rouen.fr/videosurveillance
  3. Comparaison des formats • GIF : 256 couleurs, alpha sur

    1 bit • PNG : 16,7 M de couleurs, alpha sur 8 bits • JPEG : 16,7 M de couleurs, pas d’alpha • SVG : 16,7 M de couleurs, alpha implicite
  4. Anatomie du SVG Accessibilité • ARIA role=”img” • tab-index=0 •

    Attribut alt sur les images de fallback • Texte descripitif entre <object> et </object>
  5. Anatomie du SVG Lien • Prend la forme de ce

    qu’il contient Id et classes
  6. viewBox • Zone visible • viewBox == Artboard dans Illustrator

    • http://jonibologna.com/svg-viewbox-and-viewport/
  7. Intégrer le SVG • <img> • <embed> • <object>, <iframe>

    (peu documenté) • <svg> • CSS : background-image Quelle que soit la méthode, support après IE8 et Android 2.3
  8. <img> • Ancien alias entre <img> et <image> • Sur

    IE 9-11 : 2 requêtes http mais la deuxième de 0 byte Fallback <image>
  9. CSS background-image • Supports du SVG et des backgrounds multiples

    équivalents • Pas de requête http inutile Fallback backgrounds multiples
  10. Choisir la méthode • <img> et background-image : pas de

    contrôle sur l’intérieur du SVG • <img> et <object> mis en cache navigateur • <svg> pas mis en cache • <svg> et <object> : contrôle par CSS et Javascript externes • <object> et <iframe> : same-domain policy
  11. Styles CSS • En inline dans le fichier .svg •

    En inline dans <object><svg> ou <svg>
  12. Styles CSS Import d’un fichier CSS • Peut être la

    CSS globale • Attention aux restrictions de sécurité
  13. Filtres SVG • Exemple : Blur • Et plein d’autres…

    http://tutorials.jenkov.com/svg/filters.html
  14. Javascript et SVG • Depuis la page appelante sur <object><svg>

    et <svg> • Librairies : Snapsvg, SVG.js, d3.js...
  15. Flux de production Grunticon https://github.com/filamentgroup/grunticon • Input : un dossier

    de .svg • Output : ◦ Un fichier CSS avec les svg en data-uri ◦ Un fichier CSS avec les png en data-uri ◦ Un fichier CSS avec lien vers les png physiques ◦ Un petit loader en js async qui sert la bonne CSS • Facultatif : tâche Grunt svgmin
  16. Où trouver des SVG ? • Banques d’images vectorielles .svg

    mais aussi .ai, .eps • Fichiers PDF • Fontes • Images assez simples > Image Trace
  17. Conclusion • Gros potentiel • Facile à créer • Facile

    à intégrer • Outils pour le workflow • Très bon support
  18. Remerciements • Frédéric Bisson @zigazou • Stéphanie Walter @walterstephanie •

    Chris Coyier - CSS Tricks • Sara Soueidan @SaraSoueidan • Scott Jehl @scottjehl