Skip to content
Design

Icônes SVG pour le design UI : le guide complet 2026

Le guide ultime des icônes SVG pour le design d'interface : grille 24×24, cohérence des traits, accessibilité, mode sombre, sprites SVG et workflow d'export Figma.

Robin Monteiro21 décembre 202510 octobre 202616 min
Use this article with an AI assistant:
.md
Icônes SVG pour le design UI : le guide complet 2026
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • Concevez chaque icône SVG sur une grille de 24×24 pixels avec un trait de 2 px constant pour garantir l'harmonie optique dans votre bibliothèque de composants.
  • Les sprite sheets SVG et les composants React wrapper surpassent les icon fonts en termes de scalabilité, accessibilité et thématisation.
  • L'utilisation correcte de aria-label, role="img" et <title> transforme les icônes en vocabulaire d'interface signifiant pour les technologies d'assistance.
  • Les propriétés CSS custom (--icon-color, --icon-size) rendent le mode sombre et le multi-branding un changement d'un seul token.
  • Un pipeline d'export Figma-vers-SVG couplé à l'optimisation SVGO maintient chaque icône sous 500 octets.
Guide visuel des systèmes d'icônes SVG montrant l'alignement sur grille et la cohérence des traits
Icônes SVG pour le design UI - Le guide 2026

Pourquoi les icônes SVG sont le seul choix sérieux pour une UI en production

Les icon fonts ont eu leur moment. Les sprites PNG aussi. Les deux sont des faiblesses dans tout design system devant s'adapter à différents breakpoints, thèmes de couleur et exigences d'accessibilité. Les icônes SVG sont le seul choix architecturalement solide pour les équipes livrant des interfaces en production.

Une icône SVG est un nœud DOM de première classe. Elle réagit aux propriétés CSS custom, participe à l'arbre d'accessibilité, s'adapte sans perte de qualité et s'anime avec des transitions CSS standard. Les icon fonts détournent la zone Private Use d'Unicode, cassent sous les politiques de blocage de polices et n'offrent qu'une seule couleur par glyphe.

"

Les icônes sont le vocabulaire d'une interface utilisateur. Si le vocabulaire est faux, chaque phrase que le produit prononce devient confuse.

— Wilson Miner

Principes de design d'icônes : grille, trait et cohérence optique

Le standard de grille 24×24

Chaque icône d'un système cohérent commence sur le même canevas. La grille de 24×24 pixels se divise uniformément aux tailles courantes (12, 16, 20, 48) et s'aligne sur une sous-grille de 1 px, éliminant les désalignements optiques lorsque les icônes côtoient du texte ou des boutons.

Pro Tip: Concevez chaque icône sur une grille 24×24 avec une épaisseur de trait de 2 px, un padding de 2 px comme zone de sécurité, et des extrémités/jointures arrondies. Cette seule contrainte élimine 90 % des problèmes d'incohérence optique rencontrés en mélangeant des icônes de sources différentes.

Cohérence du trait et poids visuel

Un trait de 2 px à 24×24 s'adapte de façon prévisible : à 16 px il devient ~1,33 px (net sur les écrans 2x), à 48 px il devient 4 px. L'erreur que font les équipes est de mélanger des traits de 1,5, 2 et 3 px dans un même set.

  • Une seule épaisseur de trait par set. Choisissez 1,5 px ou 2 px et appliquez-le globalement.
  • Styles d'extrémité et de jointure cohérents. Les extrémités arrondies vont avec les jointures arrondies. Ne jamais mélanger.
  • Correction optique pour les courbes. Un cercle de 20 px semble plus petit qu'un carré de 20 px — ajustez à 20,5 px.

Warning: Des styles d'icônes incohérents détruiront silencieusement la finition de votre UI. Mélanger icônes contour et pleines, varier les épaisseurs de trait ou combiner coins arrondis et anguleux signale aux utilisateurs que le produit n'a pas été conçu avec soin — même si tous les autres composants sont parfaits au pixel près.


Architecture d'un système d'icônes SVG

Quatre modèles dominants existent pour délivrer des icônes SVG au navigateur. Chacun a ses compromis selon votre framework, budget de poids et stratégie de cache.

Comparaison des méthodes de livraison d'icônes SVG dans les applications web modernes
Méthodes de livraison d'icônes SVG pour applications web
CritèreIcon FontsSprites SVGSVG InlineComposants React
ScalabilitéBonneParfaiteParfaiteParfaite
Multi-couleurNonOuiOuiOui
Thématisation CSSLimitéeComplèteComplèteComplète
AccessibilitéMédiocreBonneExcellenteExcellente
Tree-shakingNonNonN/AOui
AnimationAucuneLimitéeComplèteComplète
Impact bundle~50-200 Ko~10-80 Ko~0,3-1 Ko chacun~0,5-1,5 Ko chacun
Mode sombreFragileRobusteRobusteRobuste

Pattern SVG Sprite

Architecture de sprite sheet SVG montrant les définitions de symboles et les références use
Système d'icônes basé sur les sprites SVG
html
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
  <symbol id="icon-check" viewBox="0 0 24 24">
    <polyline points="20,6 9,17 4,12" fill="none"
      stroke="currentColor" stroke-width="2"/>
  </symbol>
</svg>

<!-- Référence n'importe où -->
<svg width="24" height="24" aria-hidden="true">
  <use href="#icon-check"/>
</svg>

Pattern Composant React

tsx
interface IconProps extends React.SVGProps<SVGSVGElement> {
  size?: number;
  label?: string;
}

export function CheckIcon({ size = 24, label, ...props }: IconProps) {
  return (
    <svg width={size} height={size} viewBox="0 0 24 24"
      fill="none" stroke="currentColor" strokeWidth={2}
      role={label ? 'img' : undefined}
      aria-label={label} aria-hidden={label ? undefined : true}
      {...props}>
      <polyline points="20,6 9,17 4,12" />
    </svg>
  );
}

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Exigences d'accessibilité

Chaque icône SVG est soit décorative soit signifiante. Chacune a une implémentation non négociable.

Décorative (à côté d'un texte visible — masquer des lecteurs d'écran) :

html
<button>
  <svg aria-hidden="true" focusable="false"><!-- icône --></svg>
  Enregistrer le document
</button>

Signifiante (seul élément interactif — doit s'annoncer) :

html
<button aria-label="Fermer la boîte de dialogue">
  <svg role="img" aria-labelledby="close-title" focusable="false">
    <title id="close-title">Fermer</title>
    <path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2"/>
  </svg>
</button>

L'attribut role="img" indique aux technologies d'assistance de traiter le SVG comme une image unique plutôt que de parcourir les nœuds enfants. Combinez-le avec aria-labelledby pointant vers un élément <title> pour une compatibilité maximale. Ajoutez toujours focusable="false" pour éviter les tabulations fantômes dans les anciens navigateurs.


Mode sombre et thématisation avec les propriétés CSS custom

Un système d'icônes bien architecturé se thématise automatiquement. Le mécanisme est currentColor combiné aux propriétés CSS custom :

css
:root {
  --icon-color-primary: #1a1a2e;
  --icon-color-success: #059669;
  --icon-size-md: 24px;
  --icon-stroke: 2px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --icon-color-primary: #e5e7eb;
    --icon-color-success: #34d399;
  }
}

.icon {
  width: var(--icon-size-md);
  height: var(--icon-size-md);
  stroke: var(--icon-color-primary);
  stroke-width: var(--icon-stroke);
  transition: stroke 0.2s ease;
}

Passer en mode sombre est un changement zéro code icône. Les tokens se mettent à jour et chaque icône suit. Pour le multi-branding, ajoutez une classe .theme-brand-b qui surcharge les mêmes propriétés.


Optimisation des performances

Passez chaque icône dans l'optimiseur SVG de VectoSolve ou SVGO avant de commiter. Une icône 24×24 typique devrait peser entre 200 et 500 octets après optimisation.

  • SVG inline pour les icônes critiques au-dessus de la ligne de flottaison (navigation, CTA hero). Zéro surcoût réseau.
  • Sprite sheet externe pour les icônes sous la ligne de flottaison. Une seule requête, cache long.
  • import() dynamique pour les icônes rarement vues (panneaux admin, états d'erreur).

Définissez toujours width et height explicites sur les éléments SVG pour éviter le Cumulative Layout Shift (CLS) — une pénalité Core Web Vitals.


Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Workflow d'export Figma-vers-SVG

  1. Organiser dans Figma. Page dédiée aux icônes. Chaque icône dans un cadre 24×24 nommé icon/check, icon/alert-triangle, etc.
  2. Aplatir et vectoriser. Aplatissez les groupes booléens et vectorisez les traits avant export pour éviter les différences de rendu.
  3. Exporter en SVG. Utilisez l'export natif de Figma avec "Outline text" activé et "Include id" désactivé.
  4. Optimiser. Passez dans l'optimiseur VectoSolve pour supprimer les métadonnées et réduire la précision.
  5. Valider. Confirmez que les tracés s'affichent correctement à 16, 24 et 48 px.
  6. Générer les composants. Utilisez SVGR ou un script custom pour convertir les SVG en composants framework. Commitez les fichiers .svg et les composants générés.

Animation d'icônes et micro-interactions

L'animation subtile transforme les icônes statiques en feedback réactif. Les meilleures animations d'icônes durent moins de 300 ms et communiquent un changement d'état clair.

Animation de tracé

css
.icon-check polyline {
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  transition: stroke-dashoffset 0.25s cubic-bezier(0.65, 0, 0.35, 1);
}
.checkbox:checked + .icon-check polyline {
  stroke-dashoffset: 0;
}

Rotation et morphing

css
.icon-loading { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

Pro Tip: Gardez les animations d'icônes sous 300 ms et limitez-les aux moments de changement d'état. Les icônes animées en continu hors des états de chargement augmentent la charge cognitive. Enveloppez toujours les animations dans une media query prefers-reduced-motion pour respecter les utilisateurs ayant des troubles vestibulaires.


Construisez votre système d'icônes aujourd'hui

Un système d'icônes SVG de qualité production est un investissement dans chaque interface que votre équipe livre. Commencez par la grille. Imposez le trait. Automatisez le pipeline.

VectoSolve fournit des outils pour convertir, optimiser et éditer des icônes SVG à chaque étape — de la conversion raster vers vecteur à l'optimisation SVG et l'édition SVG en direct. Votre système d'icônes est le vocabulaire que votre produit utilise pour communiquer. Faites compter chaque glyphe.


Méthode d'intégrationAvantagesInconvénients
SVG inlineContrôle CSS/JS total, pas de requête supplémentaireAlourdit le HTML si surutilisé
Sprite sheet SVGUne requête HTTP, cacheablePas de style CSS externe dans certains cas
Composant React (SVGR)Tree-shakeable, props typéesÉtape de build requise
Icon fontSimple à utiliser, largement supportéAccessibilité médiocre, pas de multicouleur
Balise <img>Simple, cacheablePas de contrôle CSS/JS, pas d'animation

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Sources et lectures complémentaires

Tags:
icônes SVG
design UI
design system
accessibilité
mode sombre
sprites SVG
Figma
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.