Vincent De Oliveira · @iamvdo
Des icones ?
yahoo.com (20 décembre 1996), fnac.com (11 mai 2000), amazon.com (9 juin 2000), System 1 Mac (1984)
Beaucoup d'icones
SPRITES FTW
Sprite utilisé par Google Documents
Retina, HD
Ecran faible densité vs. écran haute densité
Création d'images adaptées: kiwi.png, kiwi@2x.png, kiwi@2.6x.png, etc...
Icones par Freepik
Ce n'est pas viable
Surtout pour des sprites !
@font-face@font-face {
font-family: myIcons; src: url(myIcons.woff);
}
.element { font-family: myIcons; }
Concrètement, c'est un hack!
<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="50" fill="yellow" />
<rect width="50" height="50" x="50" y="50" fill="blue" />
</svg>
SVG: Scalable Vector Graphics
Scalable.
Vector.
Graphics!!!
| Icon-font | SVG |
|---|---|
| C'est un hack | C'est son rôle |
| WIN |
KTHXBYE
Bon, allons plus loin…
| Icon-font | SVG |
|---|---|
|
|
| Icon-font | SVG |
|---|---|
|
|
Créer un SVG avec AI, c’est comme créer du HTML avec Dreamweaver
| Icon-font | SVG |
|---|---|
|
|
| Icon-font | SVG |
|---|---|
|
|
| Icon-font | SVG |
|---|---|
|
|
|
Zone de test
|
|
| Icon-font | SVG |
|---|---|
|
|
|
|
En haut: police d'icones, en bas: SVG
Images grunticon.com
| Icon-font | SVG |
|---|---|
|
|
<defs> et <use><svg>
<defs>
<circle id="forme" cx="50" cy="50" r="10" />
</defs>
<use xlink:href="#forme" />
<use xlink:href="#forme" style="..." />
</svg>
<symbol><svg>
<defs>
<circle id="forme" cx="50" cy="50" r="10" />
</defs>
<symbol id="icon" viewBox="0 0 100 100">
<use xlink:href="#forme" style="..." />
</symbol>
<use xlink:href="#icon" style="..." />
</svg>
Plusieurs <symbol>
==
Sprites SVG
| Icon-font | SVG |
|---|---|
|
|
Icones fontawesome.com
TEXTE != FORME
Personne n'aime modifier le line-height
| Icon-font | SVG |
|---|---|
|
|
StopWatch'App
Save time. Now.
Cliquez pour recevoir un mail
| Icon-font | SVG |
|---|---|
|
|
Propriétés custom (variables) supportées par Firefox
<svg>
<style>
.symbol--low { --remaining: 80; }
</style>
<use xlink:href="#symbol" class="symbol--low" />
</svg>
<svg>
<symbol id="symbol" clip-path="url(#clip)">
<style>
.remaining {
fill: hsl(var(--remaining), 100%, 50%);
transform: translateY(calc(var(--remaining) * 1px));
}
</style>
<path class="remaining" d="..." />
</symbol>
</svg>
| Icon-font | SVG |
|---|---|
|
|
Icone SVG entièrement créée via JavaScript
| Icon-font | SVG |
|---|---|
|
|
Icones useiconic.com
Vincent De Oliveira · @iamvdo