2025 में Favicon कैसे तैयार करें
(evilmartians.com)- favicon बनाने का तरीका जटिल होता गया है, इसलिए अक्सर सिर्फ browser tab या touchscreen पर वेबसाइट का लोगो दिखाने के लिए 20 से ज़्यादा PNG फाइलें इस्तेमाल की जाती हैं
- इसके विकल्प के तौर पर, अपेक्षाकृत कम icon files और न्यूनतम settings के साथ ज़्यादातर environments को कवर करने का एक तरीका प्रस्तावित किया गया है
बहुत सरल संस्करण
-
जटिल setup के बिना सिर्फ पाँच मुख्य icons और एक JSON file पर्याप्त हैं
-
यह HTML में डालने के लिए basic link उदाहरण है
<link rel="icon" href="/favicon.ico" sizes="32x32"> <link rel="icon" href="/icon.svg" type="image/svg+xml"> <link rel="apple-touch-icon" href="/apple-touch-icon.png"><!-- 180×180 --> -
अगर आप PWA(Progressive Web App) support करते हैं, तो यह भी जोड़ें
<link rel="manifest" href="/manifest.webmanifest"> -
यह manifest.webmanifest file structure का उदाहरण है
{ "icons": [ { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" }, { "src": "/icon-mask.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" }, { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" } ] } -
maskable icon में किनारों का कुछ हिस्सा कट सकता है, इसलिए 409×409 के circular area को safe zone रखना अच्छा है
-
सिर्फ इतनी configuration से भी प्रमुख browsers और ज़्यादातर devices में favicon ठीक से काम करता है
विस्तृत संस्करण
- favicon, “favorite icon” से बना शब्द है, और यह browser tab आदि में दिखने वाला छोटा icon होता है
- Safari भी अब हाल के समय में favicon को ठीक से support करता है
- अलग-अलग resolutions के लिए icon sets बनाने के बजाय, SVG, कुछ PNG icons, और एक simple manifest से इसे कुशलता से संभाला जा सकता है
अंतिम Favicon विन्यास
- एक SVG file, कुछ न्यूनतम PNG files, और web manifest file के ज़रिए अलग-अलग browsers और devices में icons को एकसमान तरीके से दिखाया जा सकता है
- SVG एक vector format है, इसलिए ज़रूरत के अनुसार इसे आसानी से scale up या down किया जा सकता है, और background download होने से performance पर बोझ भी कम पड़ता है
- PNG में सिर्फ ज़रूरी sizes ही तैयार करें, जैसे Apple के लिए
apple-touch-iconऔर PWA के लिए icons - Windows tile icon, Safari Pinned Icon,
rel=“shortcut”जैसे पुराने formats अब हाल के browsers में बहुत ज़रूरी नहीं रह गए हैं - पुराने browsers या tools कभी-कभी
/favicon.icopath से सीधे icon लाते हैं, इसलिए root path पर favicon.ico अब भी महत्वपूर्ण है
Ultimate Favicon Set बनाने का तरीका
- नीचे दिए गए चरण icons को सीधे बनाने और optimize करने की प्रक्रिया हैं
- चरण 1: SVG तैयार करना
- square ratio बनाए रखने वाली
icon.svgfile तैयार करनी होती है <svg>के अंदर CSS media query के माध्यम से light·dark mode के लिए color switching लागू की जा सकती है- उदाहरण की तरह
@media (prefers-color-scheme: dark)का उपयोग करके dark mode colors सेट किए जा सकते हैं
- square ratio बनाए रखने वाली
- चरण 2: ICO file बनाना
icon.svgको 16×16 या 32×32 size की raster image में बदलकरfavicon.icoबनाया जाता है- GIMP या Inkscape+ImageMagick जैसे tools इस्तेमाल किए जा सकते हैं
- ध्यान रखें कि छोटे resolution में logo बहुत धुंधला या गड़बड़ न हो जाए
- चरण 3: PNG images बनाना
- 512×512, 192×192, 180×180, 512×512(maskable) sizes में PNG icons तैयार करें
- iOS के लिए
apple-touch-iconको 180×180 में बनाना अच्छा है, और background color जोड़ना या उचित padding देना उपयोगी हो सकता है - maskable icon में 409×409 area को safe zone रखना चाहिए
- चरण 4: PNG और SVG optimize करना
- SVG को SVGO जैसे tools से compress करें, और PNG को Squoosh से बेहतर compression दें
- उपयोगकर्ता data-limited environment में हो सकते हैं, इसलिए file size कम रखना फ़ायदेमंद है
- चरण 5: HTML में icons link करना
- मूल रूप से
favicon.ico,icon.svg,apple-touch-icon.pngको<head>tag में link करें<link rel="icon" href="/favicon.ico" sizes="32x32"> <link rel="icon" href="/icon.svg" type="image/svg+xml"> <link rel="apple-touch-icon" href="/apple-touch-icon.png"> - अगर आप Webpack आदि इस्तेमाल करते हैं, तो build के समय hash शामिल करके cache manage कर सकते हैं
- staging(development) environment और production environment को अलग दिखाने के लिए अलग favicon भी इस्तेमाल किया जा सकता है
- मूल रूप से
- चरण 6: Web Manifest बनाना
manifest.webmanifestfile में PWA icon जानकारी डालें और<link rel="manifest" href="/manifest.webmanifest">से link करें- नीचे का उदाहरण 192×192, 512×512(maskable), 512×512 icons को specify करता है
{ "name": "My website", "icons": [ { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" }, { "src": "/icon-mask.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" }, { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" } ] } - Webpack environment में
webpack-pwa-manifestजैसे plugin का उपयोग करके इसे automate किया जा सकता है
- इस प्रक्रिया के बाद कम files के साथ भी ज़्यादातर browsers और devices में उपयुक्त favicon दिखाया जा सकता है
- अगर automation tool बनाकर संचालित करें तो और अधिक सुविधाजनक होगा
4 टिप्पणियां
SVG Favicon अभी भी Firefox में सपोर्ट नहीं है...
आह, वह Safari था
मैंने अपनी पिछली कंपनी में किए गए एक प्रोजेक्ट में web game बनाया था.
यूँ ही मज़े के लिए Easter egg के तौर पर animated favicon बनाया,
और spritesheet से animation लागू किया तो वह काफ़ी बढ़िया लग रहा था।
2021 के लिए Favicon गाइड
इसे 4 साल पहले एक बार पोस्ट किया था, और अब इसे आज के समय के मुताबिक अपडेट किया गया है.