Favicon
Webseiten mit Favicons haben einen höheren Wiedererkennungswert, da Bilder vom Gehirn auch schneller/besser wahrgenommen werden. Wenn ein Besucher beispielsweise ein Lesezeichen der Seite anlegt, findet er die Webseite über das Favicon in der Lesezeichenliste schneller wieder.
Information
Dieser Artikel ist im März 2024 neu bearbeitet worden, um mit den neuesten Entwicklungen Schritt zu halten.
Dabei wurde die Reihenfolge der einzelnen Abschnitte geändert, da meistens ja schon ein Logo in SVG vorhanden ist.
--Matthias Scharwies (Diskussion) 13:35, 9. Mär. 2024 (CET)Inhaltsverzeichnis
praktische Vorgehensweise
1 <link rel="icon" href="/favicon.ico" sizes="48x48" >
2 <link rel="icon" href="/favicon.svg" sizes="any" type="image/svg+xml">
3 <link rel="apple-touch-icon" href="/apple-touch-icon.png">
4 <link rel="manifest" href="manifest.json">
Diese vier Zeilen arbeiten wir nun in umgekehrter Reihenfolge ab:
Manifest-Datei
Zuerst legen wir eine Manifest-Datei im JSON-Format an. Ursprünglich nur für PWAs gedacht, können auch normale Webseiten gespeichert und später gelesen werden. Hierfür wird auf dem Startbildschirm ein Touch-Icon angelegt. Die dafür benötigten Bilder werden im manifest.json angelegt:
{
"name": "Name des Webprojekts",
"short_name": "kürzere Version des Seitennamens",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "white",
"background_color": "#000",
"display": "standalone"
}
Neben dem Touch-Icon wird der name
, bei wenig Platz der short-name
angezeigt.
theme-color und background_color dienen manchen Browsern als Grundfarbe für die Icons und Tiles.
Die oben referenzierten Bilder werden später durch den realfaviconGenerator erzeugt.
SVG-Favicons
Meist gibt es ja schon ein Logo - optimalerweise bereits im SVG-Format. Ein SVG lässt sich stufenlos skalieren und sieht dabei immer scharf und gut aus.
Falls das noch nicht geschehen ist, sollte es über das viewBox-Attribut quadratisch zugeschnitten werden.
<link rel="icon" href="/favicon.svg" sizes="any" type="image/svg+xml">
Das Link-Element erhält ein rel-Attribut und auch ein eigentlich überflüssiges type-Attribut, das den Medientyp angibt.
Es ist möglich, mit prefers-color-scheme das gewünschte Farbschema abzufragen und die Gestaltung entsprechend zu ändern.[1]
<svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg">
<style>
rect {
fill: green;
}
@media (prefers-color-scheme: dark) {
rect {
fill: red;
}
}
</style>
<rect width="50" height="50" rx="5"/>
</svg>
Hauptartikel: barrierefreie SVGs
Fallbacks
Wenn der User-Agent versucht, ein Icon zu verwenden, aber dieses Icon sich bei näherer Betrachtung als ungeeignet herausstellt (z.B. weil es ein nicht unterstütztes Format verwendet), dann muss der User-Agent das nächstgeeignete Icon versuchen, das durch die Attribute bestimmt wird.WHATWG: Docs[2]
In Anbetracht der aktuellen Browserunterstützung für das SVG-Favicon ist leider immer noch ein Fallback erforderlich. Je nach System muss das SVG nun in verschiedene Formate umgewandelt werden.
Dies erledigt idealerweise ein
- Favicon Generator. For real.[3]
- oder eine Bildbearbeitung wie Gimp [4]
Folgende Dateien/ Formate werden zur Zeit benötigt:
- favicon.ico
- apple-touch-icon.png
- android-chrome-192x192.png
- android-chrome-512x512.png
Der RealFaviconGenerator erzeugt aus Deinem SVG einen ZIP-Ordner, den du downloaden und entpacken kannst, sowie das dafür nötige HTML-Markup, dass du nur in den head deiner Webseiten kopieren musst.
Eigentlich ist damit alles getan und du kannst Dich anderen Baustellen zuwenden. Da es im Netz aber zahlreiche weitere Features gibt, werden wir anschließend aktuelle und obsolete Formate im Detail vorstellen:
Formate im Detail
Die überarbeitete Fassung stützt sich auf die Vorarbeit von Masa Kudamatsu, der auf dev.to einen Artikel dazu veröffentlicht hat.[5] Problem bei der Auswahl der richtigen Formate und Größen ist, dass es in der Literatur oft widersprüchliche Behauptungen gibt, die nicht durch Beispiele belegt sind.
der Klassiker: Favicons im ico-Format
Da die Browserunterstützung für SVG-Favicon derzeit (Stand: März 2024) bei 76,88% liegt, benötigen wir einen Fallback.
Klassiker ist eine kleine Grafik im Windows-Icon-Format (Dateien *.ico)[6] und mit einer intrinsischen Größe von 48x48 Pixeln (Früher waren Varianten mit 16x16 und 32x32 üblich). Um solche Grafiken zu erstellen, benötigst Du ein Grafikprogramm oder (oben empfohlenes) Online-Tool, das Grafiken im ICO-Format abspeichern kann.
Die Verknüpfung zwischen einer Webseite und einem Favicon kann auf zwei Weisen hergestellt werden.
Automatisch erkannt wird das Favicon, wenn es unter dem festen Dateinamen favicon.ico
im Wurzelverzeichnis einer Domain liegt.
<link rel="icon" href="/favicon.ico" sizes="48x48">
<link rel="icon" href="/favicon.ico"> <link rel="icon" href="/favicon.svg" type="image/svg+xml">
Mit dieser - scheinbar gleichen - Variante verwenden Chromium-Browser dann favicon.ico
anstelle von favicon.svg
. Dies wurde als "bug" gemeldet[7], obwohl die Chromium-Entwickler dies als erwartetes Verhalten anzusehen scheinen. Eine Farbänderung im Dark Mode ist so unmöglich.
Die oben vorgestellte Lösung mit einer Auflösung sizes="48x48"
suggeriert Chromium-Browsern, dass die .ico-Grafik zu groß sei. Erst dann laden sie stattdessen das bessere SVG!
Im Link zum SVG-Favicon wurde ein sizes="any"
hinzugefügt, das derzeit noch keine Auswirkungen hat, evtl. aber in Zukunft nützlich wird.
Apple-Touch-Icon
Mobile Geräte benutzen ebenfalls eine Art Favicon, um touch-Icons für die Startseite zu erstellen. Hier sind 32x32px oder 48x48px aber zu klein, sodass größere png-Grafiken verwendet werden.
Allgemein wird eine 192x192px große Grafik empfohlen, wobei man einen 20px breites padding zwischen Motiv und Rand haben sollte. Der RealfaviconGenerator berücksichtigt dies automatisch!
<link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
Obsolet: apple-touch-icon-precomposed
Favicons, die mit apple-touch-icon
referenziert werden, werden vom Browser durch abgerundete Ecken, Schattenwurf und Glanz modifiziert.
<link rel="apple-touch-icon-precomposed" sizes="180x180" href="/apple-touch-icon.png">
Alternativ können Sie durch Angabe von apple-touch-icon-precomposed
den Browser anweisen, das Favicon unverändert anzuzeigen.[8][9]
Seit iOS7 werden Touch-Icons aber nicht mehr durch Browser verändert, sodass der Bedarf hierfür eigentlich entfällt.
Web-Manifest für Android
Wie oben bereits besprochen, sollte auch für normale Webseiten eine Manifest-Datei angelegt werden. In ihr werden die für Android benötigten Touch-Icons, sowie weitere Informationen festgeelgt.
Maskable Versionen
Der Webdienst Lighthouse von Google bemängelt Touch-Icons, die sich nicht an die Form der anderen Touch-Icons anpassen lassen.
Dazu solltest du die png-Touch-Icons um die Eigenschaft "purpose": "maskable"
ergänzen:
{
…
"icons": [
…
{
"src": "path/to/maskable_icon.png",
"sizes": "196x196",
"type": "image/png",
"purpose": "maskable" // <-- New property value `"maskable"`
},
…
],
…
}
Der realFaviconGenerator berücksichtigt dies nicht. Ob du das zusätzlich festlegen willst, bleibt dir überlassen.
Obsolet: msapplication
Vor einigen Jahren startete Microsoft ein Versuch Mobiltelefone mit eigenem Betriebssystem Windows Phone zu verkaufen. Dort sollten die Kacheln (Tiles) aus Windows 8 verwendet werden. Diese Geräte und damit auch die für das Betriebssytem notwendigen Angaben sind obsolet. Auch die für IE11 auf Win 8.1 benötigte browserconfig.xml
wird nicht mehr benötigt. Auch mausetot.
Tabfarbe für Android (optional)
Mit der Angabe einer theme-color in Form eines meta-Elements ist es möglich, auf mobilen Geräten farbige Adresszeilen und Tabs zu gestalten.[10]
<meta name="theme-color" content="#4a4a4a" />
Laut Valkhof wird diese Themenfarbe auch von Discord für die Umrandung von freigegebenen Links zur Website verwendet.[11]
Weblinks
- ↑ catalin.red: How to switch the SVG favicon when in Dark Mode in
Light and dark themed SVG favicon using the CSS prefers-color-scheme media feature - ↑ WHATWG:Docs
- ↑ realfavicongenerator
- ↑ Wikipedia: List of tools for
.ico
generation - ↑ Definitive edition of "How to Favicon" in 2023 von Masa Kudamatsu
- ↑ Wikipedia: Favicon (en)
- ↑ https://twitter.com/RealFavicon/status/1248635863078141953
- ↑ apple: Specifying a Webpage Icon for Web Clip
- ↑ How To Set an Apple Touch Icon for Any Site
- ↑ css-tricks.com: Meta Theme Color and Trickery
- ↑ https://twitter.com/kilianvalkhof/status/1343926777182363649
- Self-Forum: Favicons – Icons – Logos (Teil 1: Einführung) von performer, 22.02.2018