Solusi Pembunuh pada tahun 2020
Solusi ini tentu muncul sembilan tahun setelah pertanyaan awalnya diajukan, karena sampai saat ini, sebagian besar browser belum mampu menangani favicon dalam .svg
format.
Bukan itu masalahnya lagi.
Lihat: https://caniuse.com/#feat=link-icon-svg
1) Pilih SVG sebagai format Favicon
Saat ini, pada Juni 2020, browser ini dapat menangani Favicons SVG :
- Chrome
- Firefox
- Tepi
- Opera
- Chrome untuk Android
- KaiOS Browser
Perhatikan bahwa browser ini masih tidak dapat:
- Safari
- Safari iOS
- Firefox untuk Android
Dengan pemikiran di atas, kita dapat dengan percaya diri menggunakan Favicon SVG .
2) Hadirkan SVG sebagai URI Data
Tujuan utama di sini adalah untuk menghindari Permintaan HTTP.
Seperti solusi lain telah disebutkan, cara yang cukup cerdas untuk melakukan ini adalah dengan menggunakan Data URI daripada URL HTTP .
SVG (terutama SVG kecil) cocok untuk URI Data, karena yang terakhir hanya teks biasa (dengan karakter yang berpotensi ambigu persentase-dikodekan) dan yang sebelumnya, menjadi XML, dapat ditulis sebagai garis panjang plaintext (dengan segelintir) kode persentase) dengan sangat mudah.
3) Seluruh SVG adalah Emoji
Pada bulan Desember 2019, Leandro Linares adalah salah satu yang pertama menyadari bahwa sejak Chrome bergabung dengan Firefox dalam mendukung SVG Favicons, layak untuk bereksperimen untuk melihat apakah favicon dapat dibuat dari emoji:
https://lean8086.com/articles/using-an-emoji-as-favicon-with-svg/
Firasat Linares benar.
Beberapa bulan kemudian (Maret 2020), Bajak Laut Code Lea Verou menyadari hal yang sama:
https://twitter.com/leaverou/status/1241619866475474946
Dan favicons tidak pernah sama lagi.
4) Menerapkan solusi sendiri:
Berikut SVG sederhana:
<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>
Dan inilah SVG yang sama dengan Data URI :
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
Dan, akhirnya, inilah Data URI sebagai 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) Lebih banyak trik
Karena Favicon adalah SVG, sejumlah efek filter (baik SVG maupun CSS) dapat diterapkan padanya.
Misalnya, di samping White Unicorn Favicon di atas, kita dapat dengan mudah membuat Black Unicorn Favicon dengan menerapkan filter:
style="filter: invert(100%);"
Black Unicorn 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'%20style='filter:%20invert(100%);'%3E🦄%3C/text%3E%3C/svg%3E" type="image/svg+xml" />