layout | title | permalink |
---|---|---|
page |
SVG |
svg.html |
Un aperçu du format SVG.
SVG est un format d'images vectorielles (le terme signifie : Scalable Vector Graphics). Les images vectorielles peuvent être redimensionnées sans perte de qualité.
SVG est une norme développée par le World Wide Web Consortium (W3C) depuis 1999. Il est explicitement conçu pour fonctionner avec d'autres standards du W3C comme CSS.
Exemple de SVG venant de https://iconsvg.xyz/ :
<svg width="100" height="100" viewBox="0 0 24 24" fill="none" stroke="#9013fe" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<line x1="18" y1="6" x2="6" y2="18" />
<line x1="6" y1="6" x2="18" y2="18" />
</svg>
Le résultat:
Un peu comme le HTML, le format SVG comporte toute une série de "balises". Il en existe plusieurs dizaines (voir la liste).
Voici quelques balises qui permettent de représenter des formes basiques:
- les rectangles :
<rect/>
- les cercles et les ellipses :
<circle/>
et<ellipse/>
- les lignes :
<line/>
- les polygones :
<polygon/>
Chacun de ces éléments possède des attributs nécessaires pour le positionnement.
Les rectangles : on utilise la balise <rect>
qui a quatre attributs:
x
ety
pour la position d'origine.width
qui donne la longueur.height
qui donne la hauteur.
Exemple: <rect x="10" y="10" width="80" height="50"/>
Résultat:
Les cercles : on utilise la balise <circle>
qui a trois attributs:
cx
etcy
donne la position du centre du cercle.r
est le rayon.
Exemple: <circle cx="50" cy="50" r="50"/>
Résultat:
Les éléments SVG ont des propriétés CSS particulières, voici quelques-unes des plus importantes:
fill
donne la valeur de remplissage, c’est à dire la couleur dont sera peint notre objet.stroke
est la couleur de la bordure de notre objet.stroke-width
est la taille de cette bordure.
En dehors des propriétés spécifiques au SVG, les règles habituelles du CSS s'appliquent, y compris les animations, transitions, transforms, filters...
Quelques collections d'icônes en SVG:
- ICONSVG
- http://svgicons.sparkk.fr/
- Feather Icons
- Super Tiny Icons - icônes de moins de 1kb.
- The Noun Project
- Spark Joy - une énorme liste de sites-ressources
- Un fil twitter de 2022 qui liste des "favorite open source icon libraries"
Comme le SVG est un format libre, il existe un grand nombre d'outils pour les créer et modifier:
- Illustrator, Sketch, Figma : tous ces éditeurs vectoriels peuvent exporter des SVG.
- Inkscape est un logiciel de dessin vectoriel open source dont le format natif est le SVG.
Il existe de nombreux éditeurs en ligne:
- Boxy SVG
- Method Draw
- SvgPathEditor
- Graphite
- SVGEdit
- PolyPal "web-based SVG editor for low-poly style illustrations"...
- Documentation SVG dans MDN
- Page de ressources du W3C
- Un petit guide sur CSS Tricks: SVG Properties and CSS
- Documentation SVG dans W3Schools