Rozwiązanie Killer w 2020 roku
To rozwiązanie koniecznie pojawia się dziewięć lat po tym, jak pytanie zostało pierwotnie zadane, ponieważ do niedawna większość przeglądarek nie była w stanie obsługiwać ulubionych .svg
formatów.
Tak już nie jest.
Zobacz: https://caniuse.com/#feat=link-icon-svg
1) Wybierz SVG jako format Favicon
Obecnie, w czerwcu 2020 roku, te przeglądarki mogą obsługiwać SVG Favicons :
- Chrom
- Firefox
- Krawędź
- Opera
- Chrome na Androida
- Przeglądarka KaiOS
Pamiętaj, że te przeglądarki nadal nie mogą:
- Safari
- iOS Safari
- Firefox na Androida
Mając powyższe na uwadze, możemy z pewnością korzystać z SVG Favicon .
2) Przedstaw SVG jako identyfikator URI danych
Głównym celem jest uniknięcie żądań HTTP.
Jak wspomniano w innych rozwiązaniach, całkiem sprytnym sposobem na to jest użycie URI danych zamiast adresu URL HTTP .
Pliki SVG (szczególnie małe pliki SVG) doskonale nadają się do identyfikatorów URI danych, ponieważ ten ostatni jest po prostu tekstem jawnym (z dowolnymi potencjalnie niejednoznacznymi znakami zakodowanymi procentowo), a ten pierwszy, będący XML, może być zapisany jako długa linia tekstu jawnego (z drobnym rozproszeniem) kodów procentowych) niezwykle prosto.
3) Cały plik SVG to emoji
W grudniu 2019 r.Leandro Linares był jednym z pierwszych, którzy zdali sobie sprawę, że odkąd Chrome dołączył do Firefoksa, wspierając SVG Favicons, warto eksperymentować, aby sprawdzić, czy favicon można utworzyć z emoji:
https://lean8086.com/articles/using-an-emoji-as-favicon-with-svg/
Przeczucie Linares było słuszne.
Kilka miesięcy później (marzec 2020 r.) Code Pirate Lea Verou zrozumiała to samo:
https://twitter.com/leaverou/status/1241619866475474946
I favikony już nigdy nie były takie same.
4) Samodzielne wdrożenie rozwiązania:
Oto prosty plik SVG:
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 16 16">
<text x="0" y="14">🦄</text>
</svg>
A oto ten sam plik SVG jak identyfikator URI danych :
data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%3E🦄%3C/text%3E%3C/svg%3E
I na koniec oto ten identyfikator URI danych jako Favicon:
<link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%3E🦄%3C/text%3E%3C/svg%3E" type="image/svg+xml" />
5) Więcej sztuczek
Ponieważ Favicon jest SVG, można do niego zastosować dowolną liczbę efektów filtrów (zarówno SVG, jak i CSS).
Na przykład, obok Favicon Białego Jednorożca powyżej, możemy łatwo zrobić Favikona Czarnego Jednorożca , stosując filtr:
style="filter: invert(100%);"
Favicon Czarnego Jednorożca:
<link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20viewBox='0%200%2016%2016'%3E%3Ctext%20x='0'%20y='14'%20style='filter:%20invert(100%);'%3E🦄%3C/text%3E%3C/svg%3E" type="image/svg+xml" />