Créer un favicon adaptatif

Présentation générale de la création d'un favicon adaptatif.

Dans ce post, je vais vous expliquer comment créer un favicon adaptatif avec SVG. Essayez la démonstration.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Onglets du navigateur en train de s'adapter aux changements de thème clair et sombre du système macOS. Essayer la démo

Si vous préférez la vidéo, voici une version YouTube de cet article:

Présentation

Un favicon personnalisé est est un excellent moyen d'affiner un projet Web. Il s’affiche dans les onglets du navigateur d’ordinateur de bureau et également dans "Enregistrer pour plus tard" lecteurs, d'autres articles de blog redirigeant vers votre site et plus encore. Habituellement, cela a été fait avec le type de fichier .ico, mais récemment les navigateurs ont autorisé l'utilisation SVG : format vectoriel. En utilisant progressive amélioration vous pouvez diffuser des favicons .ico bien compatibles et passer à un .svg si disponibles.

Le format SVG peut évoluer à la hausse ou à la baisse sans d'une perte de qualité et d'une très petite taille, ils peuvent également du code CSS intégré, et même des requêtes média intégrées. Autrement dit, si un favicon SVG est utilisé dans une application de lecture ou dans les barres de favoris, il est possible que l'utilisateur obtienne un thème une icône pertinente (clair ou sombre), en raison des styles de préférence sombre fournis à l'intérieur de SVG. Le SVG s'adapte ensuite à l'aide de son style intégré pour les utilisateurs clair et sombre. préférences.

Exemples de favicons clair et sombre facilement reconnaissables

<ph type="x-smartling-placeholder">
</ph> Les onglets clairs et sombres de chaque navigateur offrent 
    Présentation de l&#39;icône adaptative de haut en bas: 
    Safari, Firefox, Chrome. <ph type="x-smartling-placeholder">
</ph> Les onglets clairs et sombres de chaque navigateur offrent Présentation de l'icône adaptative de haut en bas: Safari, Firefox, Chrome.

Majoration

Le balisage SVG est XML avec une extension de type de fichier .svg qui lui permet de contenir des types plus dynamiques de du code source.

Commencez par créer des favicon.svg

Créez un fichier nommé favicon.svg et ajoutez-y ce qui suit:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">

</svg>

Voici mon fichier SVG, j'ai redimensionné l'élément viewBox correspondant à mon visuel:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">

</svg>

Ajout de formes et de trajets

Ajoutez ensuite le code de chemin SVG. Cela revient souvent à ouvrir le fichier SVG dans un éditeur de code, ce code n'est généralement pas convivial. Ce guide pratique pour vous guider en exportant et en optimisant les images SVG, des outils de conception.

Les illustrations de ce défi GUI sont d'un graphiste qui a créé chez Adobe Illustrator. Je suis fortement optimisé. Je l'ai exécuté en utilisant SVGOMG puis j'ai remonté le texte à la main.

Voici un exemple du groupe de chemins d'accès à l'illustration skull provenant du mien, après nettoyage comme suit:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <g id="skull">
    <path id="skull-outline" class="favicon-stroke" stroke-linejoin="round" d="M19.62 188.39A166.62 166.62 0 0 1 186.24 21.77c115.25 0 166.61 74.59 166.61 166.62 0 1.83-.08 3.64-.13 5.46h.13s.68 175.09.68 178.65c0 30.11-16.26 41.67-36.32 41.67-12.7 0-35.22-3.93-36.22-32.69h-.2c-1 28.76-16.81 32.69-36.22 32.69-18 0-32.87-6.78-35.77-32.53-2.9 25.75-17.8 32.53-35.8 32.53-20.06 0-36.32-11.56-36.32-41.67 0-2.48.36-24.88.36-24.88A166.68 166.68 0 0 1 19.62 188.39Z" />
    <path id="eyes-and-nose" d="M180.77 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82-28.68 19.17-28.68 42.82M275 205.76c0 23.64 12.84 42.81 28.68 42.81s28.68-19.17 28.68-42.81-12.84-42.82-28.68-42.82S275 182.11 275 205.76M264.51 276.85s-29.26 43.53-20.12 49.23c7.07 4.41 20.49-16.71 20.49-16.71s12.82 22.58 16.76 20c16.24-10.71-17.13-52.5-17.13-52.5"/>
    <path id="jawline" class="favicon-stroke" fill="none" stroke-linecap="round" d="M114.92 284.33c22.54-1 22 7 22 62.48" />
  </g>
</svg>

Notez l'ID, lisible par l'humain, des sélecteurs comme #eyes-and-nose et cours comme .favicon-stroke Je les ai modifiées manuellement, en préparation du CSS. Il n'est pas nécessaire d'ajouter des classes et des ID pour que votre SVG soit un favicon adaptatif.

Dans la balise <head> de votre code HTML, après le favicon .ico, ajoutez ce qui suit:

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">

La nouvelle icône pouvant ressembler à la version .ico, vérifiez qu'elle est bien utilisé. Ouvrez le panneau "Network" (Réseau) dans les outils de développement. Filtrer par images et rechercher Favicon:

Capture d&#39;écran du volet &quot;Network&quot; (Réseau) des outils de développement avec un filtre recherché
favicon et la ressource favicon.svg mises en évidence

Styles

Comme pour le code HTML, vous pouvez ajouter une balise <style> au balisage pour l'utiliser étendue du document:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
  </style>
  …
</svg>

La version du thème clair sera la couleur par défaut du SVG de mon favicon. La styles pour lesquels j'ai écrit qui étaient principalement des couleurs de trait et de remplissage:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    .favicon-stroke {
      stroke-width: 8px;
      stroke: #8929ff;
    }
    #skull-outline { fill: white }
    #eyes-and-nose, #hat-outline { fill: #8929ff }
    #hat-fill, #hat-bill { fill: #e662e6 }
  </style>
  
</svg>

Exemple d&#39;aperçu de favicon avec un thème clair

Passons à la partie la plus amusante : appliquer un style à la version du thème sombre de votre favicon. La seront incluses dans une requête média au sein du tag de style:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
    @media (prefers-color-scheme: dark) {
      /* dark theme styles */
    }
  </style>
  
</svg>

Capture d&#39;écran des outils de développement montrant la requête média du thème sombre écrasant
de la couleur de remplissage des yeux
et du nez de l&#39;image SVG.

La mienne s'est terminée comme ceci:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 447 428">
  <style>
    
    @media (prefers-color-scheme: dark) {
      .favicon-stroke { stroke: #343a40 }
      #skull-outline { fill: #adb5bd }
      #hat-outline { fill: #343a40 }
      #eyes-and-nose { fill: #343a40 }
    }
  </style>
  
</svg>

Exemple d&#39;aperçu de favicon avec un thème sombre

J'ai choisi de remplacer les bordures violet vif par un joli gris foncé (#343a40). a changé la couleur de l'os du crâne, du blanc au gris froid clair (#adb5bd), mais a quitté le chapeau rose.

Aperçu des favicons clair et sombre côte à côte

Conclusion

Maintenant que vous savez comment j'ai fait, comment feriez-vous ? 😃

Diversifiez nos approches et découvrons toutes les manières de créer des applications sur le Web. Créer une démonstration, me envoyer des tweets et je l'ajouterai à la section des remix de la communauté ci-dessous.

Remix de la communauté