Menu

Favicon HTML : ajouter un favicon avec link rel=icon

Un favicon est la petite icône de l'onglet du navigateur. Découvrez la balise link qui l'ajoute, les fichiers et tailles à fournir (ICO, SVG, PNG, apple-touch-icon), comment faire un favicon en SVG ou en emoji, comment le changer en JavaScript et pourquoi un ancien favicon s'affiche encore.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Comment ajouter un favicon

Enregistrez votre icône sur le site et pointez vers elle avec une balise <link rel="icon"> dans <head> :

<link rel="icon" href="/favicon.ico">

C'est toute la réponse pour un site simple. Le href peut pointer vers un fichier .ico, .png ou .svg. L'exemple ci-dessous utilise un SVG écrit directement dans le href sous forme de data URI, il n'a donc pas besoin de fichier séparé. Un aperçu placé dans une autre page ne peut pas changer l'onglet de votre navigateur, donc le script dessine la même icône dans un onglet factice et en trois tailles :

À 16 pixels, il y a de la place pour une lettre épaisse ou une forme simple, et les détails fins disparaissent. Concevez l'icône d'abord pour la plus petite taille. Remplacez fill='%232563eb' par une autre couleur (%23 est le # encodé pour l'URL) et chaque copie se met à jour.

Quels fichiers fournir

Les navigateurs, les téléphones et les lanceurs d'applications cherchent des icônes différentes. Un petit ensemble les couvre toutes :

<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">
FichierTailleUtilisé pour
favicon.ico32×32Les onglets du navigateur, et les outils qui ne cherchent que /favicon.ico
icon.svgToutes (vectoriel)Des onglets nets à toutes les densités d'écran, dans Chrome, Edge et Firefox
apple-touch-icon.png180×180L'icône quand quelqu'un ajoute votre site à l'écran d'accueil d'un iPhone ou d'un iPad
Icônes du manifestPNG de 192×192 et 512×512L'écran d'accueil Android et les applications web installées

La plupart des navigateurs demandent aussi d'eux-mêmes /favicon.ico à la racine du site quand une page n'a pas de lien d'icône, donc placer un favicon.ico à cet endroit est une bonne valeur par défaut. L'attribut sizes indique au navigateur la taille de chaque fichier, pour qu'il choisisse le meilleur. Utilisez rel="icon" ; l'ancien rel="shortcut icon" ne marche que parce que les navigateurs ignorent le mot en trop.

Un favicon emoji

Pour un prototype ou une page personnelle, un emoji fait un favicon rapide. Placez-le dans un élément SVG <text> :

%F0%9F%8D%AA est l'emoji cookie, encodé pour l'URL. L'emoji est dessiné par la police emoji du système d'exploitation, donc il a un aspect différent sous Windows, macOS et Android, et pour un vrai produit une icône conçue sur mesure est le meilleur choix.

Une icône qui suit le mode sombre

Un favicon SVG peut contenir son propre CSS, y compris une media query prefers-color-scheme, pour qu'une icône sombre devienne claire quand le navigateur utilise un thème sombre :

<!-- icon.svg -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
  <style>
    circle { fill: #111827; }
    @media (prefers-color-scheme: dark) { circle { fill: #f9fafb; } }
  </style>
  <circle cx="16" cy="16" r="14"/>
</svg>

Changer le favicon en JavaScript

Les sites utilisent un favicon qui change pour un point de notification ou une couleur d'état. Dessinez la nouvelle icône sur un <canvas> et donnez au href du lien l'image du canvas :

Sur une vraie page dans Chrome ou Firefox, l'icône de l'onglet change à chaque fois que href est défini, au même moment que l'image de l'aperçu change ici.

Erreurs fréquentes

  • Un mauvais chemin. href="favicon.ico" est relatif à la page actuelle, donc il casse sur /blog/post. Utilisez un chemin depuis la racine : href="/favicon.ico".
  • S'attendre à voir une mise à jour tout de suite. Les navigateurs mettent fortement les favicons en cache. Rechargez en vidant le cache, ou changez l'URL (/favicon.ico?v=2) quand vous remplacez l'icône.
  • Un logo détaillé réduit à 16 pixels. Simplifiez-le : une lettre ou une forme avec un fort contraste.
  • Seulement un SVG. Gardez aussi un ICO ou un PNG pour les navigateurs qui ne prennent pas en charge les favicons SVG, et ajoutez l'apple-touch-icon pour iOS.
  • Mettre le lien dans <body>. Gardez-le dans <head> avec la balise title et les autres métadonnées.

Questions fréquentes

Comment ajouter un favicon en HTML ?

Placez le fichier de l'icône sur votre site et ajoutez <link rel="icon" href="/favicon.ico"> (ou le chemin d'un PNG ou d'un SVG) dans <head>. Les navigateurs l'affichent alors dans l'onglet, dans les favoris et dans l'historique.

Quelle taille doit faire un favicon ?

Fournissez un favicon.ico (ou PNG) de 32×32 pour les onglets, un SVG qui s'adapte à toutes les tailles, et un PNG apple-touch-icon de 180×180 pour les écrans d'accueil d'iPhone. Les applications web avec un manifest listent aussi des PNG de 192×192 et 512×512.

Pourquoi mon favicon ne s'affiche pas ?

Les causes habituelles sont un mauvais chemin dans href, un <link> placé hors de <head>, ou le navigateur qui affiche encore une ancienne icône en cache. Ouvrez directement l'URL de l'icône pour vérifier le chemin, puis rechargez en vidant le cache ou ajoutez une version comme ?v=2 à l'URL.

Peut-on utiliser un SVG ou un PNG comme favicon ?

Oui. Utilisez <link rel="icon" href="/icon.svg" type="image/svg+xml"> ou <link rel="icon" href="/icon.png" type="image/png">. Le SVG fonctionne dans Chrome, Edge et Firefox ; gardez aussi un ICO ou un PNG pour les navigateurs qui ne le prennent pas en charge.

Faut-il rel="shortcut icon" ?

Non. rel="icon" est la valeur standard. Le mot shortcut est un reste de l'ancien Internet Explorer et ne fait rien dans les navigateurs actuels.

Peut-on utiliser un emoji comme favicon ?

Oui, en l'entourant d'un SVG : une data URI SVG qui contient un élément <text> avec l'emoji. C'est pratique pour les prototypes, mais l'emoji a un aspect différent selon le système d'exploitation.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER