Adaptives Favicon erstellen

Eine grundlegende Übersicht darüber, wie Sie ein adaptives Favicon erstellen.

In diesem Beitrag möchte ich meine Überlegungen zum Erstellen eines adaptiven Favicons mit SVG teilen. Demo ansehen

Die Browser-Tabs werden an Änderungen des hellen und dunklen Designs des macOS-Systems angepasst. Demo ausprobieren

Wenn du lieber ein Video ansehen möchtest, findest du hier eine YouTube-Version dieses Beitrags:

Übersicht

Ein benutzerdefiniertes Favicon ist eine gute Möglichkeit, ein Webprojekt zu optimieren. Sie wird in Desktopbrowser-Tabs und in „Später lesen“-Apps, in anderen Blogposts, in denen auf Ihre Website verlinkt wird, und an weiteren Stellen angezeigt. Bisher wurde dafür der Dateityp .ico verwendet, aber seit Kurzem erlauben Browser auch die Verwendung von SVG, einem Vektorformat. Mit Progressive Enhancement können Sie gut unterstützte .ico-Favicons bereitstellen und bei Bedarf auf ein .svg-Favicon umstellen.

SVG-Dateien können ohne Qualitätsverlust vergrößert und verkleinert werden und sind in der Regel sehr klein. Sie können auch eingebettetes CSS und sogar eingebettete Media-Queries enthalten. Wenn also ein SVG-Favicon in einer Reader-App oder Lesezeichenleiste verwendet wird, kann es sein, dass der Nutzer aufgrund der im SVG bereitgestellten Stile für die dunkle Darstellung ein themenrelevantes (helles oder dunkles) Symbol erhält. Das SVG wird dann mithilfe des eingebetteten Stylings für helle und dunkle Nutzereinstellungen angepasst.

Große und leicht zu unterscheidende Beispiele für helle und dunkle Favicons.

Helle und dunkle Tabs in jedem Browser mit einer Übersicht des adaptiven Symbols von oben nach unten: Safari, Firefox, Chrome.
Helle und dunkle Tabs in jedem Browser mit einer Übersicht des adaptiven Symbols von oben nach unten: Safari, Firefox, Chrome.

Markieren & Zeichnen

SVG-Markup ist XML mit der Dateiendung .svg, die dynamischere Codetypen ermöglicht.

Beginnen Sie mit favicon.svg.

Erstellen Sie eine neue Datei mit dem Namen favicon.svg und fügen Sie Folgendes hinzu:

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

</svg>

Hier ist meine SVG-Datei. Ich habe die viewBox entsprechend meinem Kunstwerk angepasst:

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

</svg>

Formen und Pfade hinzufügen

Fügen Sie als Nächstes den SVG-Pfadcode hinzu. Häufig muss die SVG-Datei dazu in einem Code-Editor geöffnet werden. Der Code ist jedoch in der Regel nicht benutzerfreundlich. Hier finden Sie eine Anleitung zum Exportieren und Optimieren von SVG-Dateien aus Designtools.

Die Grafiken für diese GUI Challenge stammen von einem Designer, der sie in Adobe Illustrator erstellt hat. Ich habe es stark optimiert. Ich habe es durch SVGOMG laufen lassen und dann die unnötigen Elemente manuell entfernt.

Hier ist ein Beispiel für die skull-Gruppe mit dem Artwork-Pfad aus meinem Beispiel nach dem Bereinigen:

<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>

Beachten Sie die für Menschen lesbaren ID-Selektoren wie #eyes-and-nose und Klassen wie .favicon-stroke. Diese Änderungen habe ich manuell vorgenommen, um die CSS-Datei vorzubereiten. Das Hinzufügen von Klassen und IDs ist nicht erforderlich, damit Ihr SVG als adaptives Favicon verwendet werden kann.

Fügen Sie im <head>-Tag Ihres HTML-Codes nach dem .ico-Favicon Folgendes hinzu:

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

Da das neue Symbol möglicherweise identisch mit der .ico-Version aussieht, sollten Sie prüfen, ob es verwendet wird. Öffnen Sie den Netzwerkbereich der Entwicklertools. Nach Bildern filtern und nach Favicons suchen:

Screenshot des Bereichs „Network“ aus den Entwicklertools mit einem Filter für das Favicon und der hervorgehobenen Ressource „favicon.svg“.

Stile

Wie bei HTML können Sie dem Markup ein <style>-Tag hinzufügen, das für diesen Dokumentbereich verwendet werden soll:

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

Die helle Designversion ist die Standardfarbe meines Favicon-SVG. Die Stile, die ich dafür geschrieben habe, waren hauptsächlich Strich- und Füllfarben:

<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>

Beispiel für eine Favicon-Vorschau im hellen Design.

Als Nächstes kommt der schönste Teil: das Stylen der Version des Favicons für das dunkle Design. Die Formatierungen dafür werden in eine Media-Anfrage innerhalb des Style-Tags eingefügt:

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

Screenshot der DevTools, auf dem zu sehen ist, dass die Media-Anfrage für das dunkle Design die Füllfarbe der Augen und der Nase des SVG überschreibt.

Bei mir sah es so aus:

<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>

Beispiel für eine Favicon-Vorschau im dunklen Design.

Ich habe die hellvioletten Ränder durch ein schönes, kühles Dunkelgrau (#343a40) ersetzt und die Farbe des Schädelknochens von Weiß in ein helles, kühles Grau (#adb5bd) geändert, aber den rosa Akzenthut beibehalten.

Vorschau von hellen und dunklen Favicons nebeneinander

Fazit

Jetzt wissen Sie, wie ich es gemacht habe. Wie würden Sie vorgehen? 🙂

Wir möchten unsere Ansätze diversifizieren und alle Möglichkeiten kennenlernen, die das Web bietet. Erstelle eine Demo, schick mir einen Tweet mit den Links und ich füge sie unten im Bereich „Community-Remixe“ hinzu.

Community-Remixe

  • Wo ich diese Technik kennengelernt habe: @tomayac in seinem Blog