rnb-css Icons

Date
Mise à jour
Catégories
Tags

J'utilise des icônes sur ce site depuis sa création en 2003, notamment pour illustrer le menu principal. Après différentes moutures, voici la dernière solution adoptée.

§Présentation

Le prinicpe est d'illustrer un contenu (lien, item de liste, de navigation, etc.) à l'aide d'une image ou icône. Celle-ci doit soit remplacer le texte, soit se placer à sa droite, soit se placer à sa gauche.

Pendant longtemps, j'utilisais une matrice d'images ou « sprite » pour rendre ces icônes. Je remplaçais parfois les images par un symbole unicode lui correspondant mais, même si la plupart des symboles dont j'avais besoin existe, très peu de polices de caractères les implémentent. Je suis donc resté avec un système batârd ou la grande majorité des icônes étaient rendues par des images.

Et puis est arrivé la notion de police de caractères à icônes, et plus particulièrement le projet Iconic. Pourquoi celui-ci plus qu'un autre ? D'abord parce qu'il est open source, ensuite parce qu'il s'agit de la véritable source ouverte en ce sens où l'auteur fournit à la fois les images utilisées pour construire les caractères de la police et les scripts python pour construire la dite police ; on peut donc aisément l'adapter à ses besoins.

Pour modifier les caractères de la police iconic, il suffit d'éditer les images svg correspondantes, à l'aide d'Inkscape par exemple, puis de lancer le script de construction iconic_fill.py. Il faudra auparavant installer le logiciel fontforge (paquet fontforge sous Ubuntu).

Les icônes sont rendues dans les pseudo-éléments :before ou :after des éléments qui les portent puisqu'il s'agit d'illustrer un contenu(1).

§Attributs

Nom
ico
type
class
Description
classe pour afficher une icône seule
Nom
ico-txt
type
class
Description
classe pour afficher une icône suivit du texte
Nom
txt-ico
type
class
Description
Classe pour afficher le texte suivit d'une icône
Nom
ico-[a-z]+
type
(class|data)
Description
Classe spécifiant l'icône à utiliser.
<p class="(ico|ico-txt|txt-ico) ico-[a-z]+">lorem ipsum</p>
Utilisation des classes.

§Code HTML

<ul>
    <!-- Afficher l'icone seule -->
    <li class="ico ico-gear">Texte</li>
    <!-- Afficher l'icone avant le texte -->
    <li class="ico-txt ico-gear">Texte</li>
    <!-- Afficher l'icone après le texte -->
    <li class="txt-ico ico-gear">Texte</li>
</ul>
Exemple de code HTML utilisant le système d'icônes.
  • Texte
  • Texte
  • Texte
Rendu des 3 d'affichages pour l'icône « gear ».

§Code CSS

/* ico: le texte doit être masqué */
.ico {
    display: inline-block;
    vertical-align: inherit;
    /* pb sur les navigateurs qui forcent une taille minimale */
    font-size: 0;
    overflow: hidden;
}
/* Icône portée par les pseudo-éléments */
.ico:before,
.ico-txt:before,
.txt-ico:after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    line-height: 14px;
    font-size: 14px;
    text-align: center;
    vertical-align: baseline;
}
/* Espacer l'icône et le texte */
.ico-txt:before {
    margin: 0 6px 0 0;
}
.txt-ico:after {
    margin: 0 0 0 6px;
}
/* masquer les pseudo-éléments inutiles */
.ico:after,
.ico-txt:after,
.txt-ico:before {
    display: none;
}
Code CSS.

§Rendu à l'aide d'une image

.ico:before,
.ico-txt:before,
.txt-ico:after {
    background-image: url("path/to/sprite-icons.png");
    background-position: 20px 20px;
    background-repeat: no-repeat;
}
Déclaration de l'image de fond utilisée pour les icônes.
.ico-gear:before, 
.ico-gear:after { 
    background-position: -44px -44px;
}
Exemple de l'icône « gear ».

§Rendu à l'aide d'une police de caractères

@font-face {
    font-family: 'MyFont';
    font-weight: normal;
    font-style: normal;
    src: url('path/to/myfont.otf') format('opentype'),
         url('path/to/myfont.ttf') format('truetype'), 
         url('path/to/myfont.svg#myfont') format('svg'),
         url('path/to/myfont.eot') format('embedded-opentype');
}
.ico:before,
.ico-txt:before,
.txt-ico:after {
    font-family: 'MyFont', sans-serif;
}
Déclaration de la police de caractères pour les icônes.
.ico-gear:before, 
.ico-gear:after { 
    content:"\2699"; 
}
Exemple de l'icône « gear ».

§Icônes

# Icônes génériques.
Icônes Unicode
ico-puce 25aa
ico-home 2302
ico-user e062 (1f464)
ico-feed e02d
ico-power
ico-position 2316

§Actions

# Icônes d'actions.
Icônes Unicode
ico-clear 2327
ico-enter 2386
ico-helm 2386
ico-return 23ce
ico-download e042
ico-upload e043

§Messages

  • ico-info
  • ico-no-entry
  • ico-warn
  • ico-ask
  • ico-quote
  • ico-quote-close
  • ico-cross
  • ico-check
  • ico-plus
  • ico-minus
  • ico-pop
  • ico-pin-off
  • ico-pin-on
  • ico-trash

§Documents

  • ico-doc
  • ico-note
  • ico-book
  • ico-book-open
  • ico-books
  • ico-comic
  • ico-pic
  • ico-movie
  • ico-music
  • ico-game
  • ico-mail

§Classification

  • ico-folder
  • ico-folder-open
  • ico-tag
  • ico-bookmark
  • ico-outline
  • ico-list
  • ico-list-item

§Contrôles

# Icônes de contrôles.
Nom Unicode
ico-step-backward 23ee
ico-backward 23ea
ico-forward 23e9
ico-step-forward 23ed
  • ico-play
  • ico-pause
  • ico-stop
  • ico-record
  • ico-eject

§Temps

  • ico-cal
  • ico-calday
  • ico-watch

§Sécurité

  • ico-key
  • ico-lock
  • ico-unlock

§Matériels

# Icônes de matériels.
Icônes Unicode
ico-keyboard 2328
  • ico-pc
  • ico-tablet
  • ico-phone
  • ico-tv
  • ico-print
  • ico-audio
  • ico-photo

§Flêches

  • ico-arrow-left
  • ico-arrow-up
  • ico-arrow-down
  • ico-arrow-right

§Chevrons

  • ico-chevron-left
  • ico-chevron-up
  • ico-chevron-down
  • ico-chevron-right

§Triangles

  • ico-triangle-left
  • ico-triangle-up
  • ico-triangle-down
  • ico-triangle-right
  • ico-triangle-left-w
  • ico-triangle-up-w
  • ico-triangle-down-w
  • ico-triangle-right-w

§Carrés, losanges, cercles

  • ico-square
  • ico-square-w
  • ico-square-d
  • ico-diamond
  • ico-diamond-w
  • ico-diamond-d
  • ico-circle
  • ico-circle-w
  • ico-circle-d

§Sports

  • ico-football

§Météo

  • ico-cyclone
  • ico-sun
  • ico-sun-w
  • ico-cloud
  • ico-cloud-rain
  • ico-cloud-sun
  • ico-umbrella
  • ico-umbrella-rain
  • ico-snowman

§Astronomie

  • ico-comet
  • ico-galaxy
  • ico-star
  • ico-telescope

§Planètes

  • ico-mercury
  • ico-venus
  • ico-earth
  • ico-mars
  • ico-jupiter
  • ico-saturn
  • ico-uranus
  • ico-pluto

§Astéroïdes / planétoïdes

  • ico-ceres
  • ico-pallas
  • ico-juno
  • ico-vesta
  • ico-chiron

§Sciences / technologies

  • ico-medical
  • ico-chemistry
  • ico-botanic
  • ico-atom
  • ico-radioactive
  • ico-biohazard
  • ico-high-voltage
  • ico-poison
  • ico-microscope

§Divers

  • ico-flag
  • ico-flag-w
  • ico-justice
  • ico-handicap
  • ico-recycling
  • ico-recycling-w
  • ico-gear
  • ico-work
  • ico-helm

§Religions, croyances, idéologies

  • ico-ankh
  • ico-dharma
  • ico-orthodox
  • ico-peace
  • ico-shamrock
  • ico-yin-yang

§Jeu d'echec

  • ico-chess-king
  • ico-chess-queen
  • ico-chess-rook
  • ico-chess-bishop
  • ico-chess-knight
  • ico-chess-pawn
  • ico-chess-king-w
  • ico-chess-queen-w
  • ico-chess-rook-w
  • ico-chess-bishop-w
  • ico-chess-knight-w
  • ico-chess-pawn-w

§Jeu de cartes

  • ico-suit-spade
  • ico-suit-club
  • ico-suit-heart
  • ico-suit-diamond
  • ico-suit-spade-w
  • ico-suit-club-w
  • ico-suit-heart-w
  • ico-suit-diamond-w

§Ressources et références

§Techniques utilisées

SHEA, Dave. CSS Sprites: Image Slicing's Kiss of Death. A List Apart, . L'article référence sur le pourquoi du comment de l'utilisation des images sprite en CSS.

HICKSON, Ian. CSS3 Generated and Replaced Content Module. W3C, . 4. Pseudo-elements

DAGGETT, John. CSS Fonts Module Level 3. W3C,

§Symboles unicode

NIBAU, Rui. Caractères unicodes. Omacronides,

Miscellaneous Symbols. unicode.org

Dingbats. unicode.org

Miscellaneous Symbols and Pictographs. unicode.org

MILDE, Benjamin. Unicode block: Miscellaneous Symbols And Pictographs. shapecatcher.com,

ONORI, P. J.. Iconic. Some Random Dude