Tumeda režiimi favicon SVG-ga

Autor

Must logo läbipaistval taustal näeb heledal vahekaardil suurepärane välja, kuid kaob tumedal. ICO-vorming ei saa kohanduda, SVG-favicon aga saab: see sisaldab CSS-reeglit, mis vahetab värve brauseri kujunduse järgi.

Sama sümbol nähtavana heledatel ja tumedatel brauseri vahekaartidel
SVG saab prefers-color-scheme abil värve muuta ilma JavaScriptita.

Probleem: üks fail, kaks tausta

Kuna brauserid järgivad süsteemi kujundust, võib sama lehe vahekaardiriba olla ühel külastajal peaaegu valge ja teisel peaaegu must. Ühe jaoks joonistatud ühevärviline favicon muutub teise jaoks loetamatuks.

Paljud saidid lahendavad selle, lisades ikoonile läbipaistmatu värvilise tausta. See toimib, kuid muudab ikooni raskepäraseks laiguks, samal ajal kui suured kaubamärgid kasutavad eraldiseisvat sümbolit.

Õige lahendus on lasta brauseril valida ning see on võimalik ilma JavaScripti ja serveripoolse tuvastamiseta.

Kuidas kohanduv SVG töötab

SVG-fail on dokument, mitte tasapinnaline pilt: see võib sisaldada style-silti ja seega meediapäringuid. Reegel prefers-color-scheme: dark määrab vektorradade täitevärvi ümber, kui brauser kasutab tumedat kujundust.

Praktikas deklareerib SVG heleda kujunduse vaikevärvi ja lisab reegli, mis asendab selle tumedas režiimis. Brauser rakendab kuvamisel sobiva variandi ning uuendab vahekaarti kohe, kui külastaja kujundust vahetab.

Sama mehhanism võimaldab enamat kui lihtsat värvide ümberpööramist: võid pakkuda täiesti teistsugust joonistust, näiteks eraldiseisvat sümbolit heledas režiimis ja täidetud märki tumedas.

SVG deklareerimine koos .ico-failiga

Deklareeri SVG kujul link rel="icon" type="image/svg+xml" href="/favicon.svg". Seda mõistvad brauserid eelistavad seda teistele variantidele; ülejäänud kasutavad juurkaustas asuvat favicon.ico-faili.

Seega pole midagi eemaldada: mõlemad failid eksisteerivad kõrvuti ja katavad teineteise kliendid. See on järkjärguline täiustamine 32-pikslise ikooni puhul.

Üks oluline piirang: SVG-favicon peab olema iseseisev. Välist fonti, kaugpilti ega skripti selles kontekstis ei laadita. Tekst tuleb teisendada kontuurideks.

Mida tume režiim ei kata

Tume variant kehtib töölauabrauseri faviconile. See ei mõjuta Apple Touchi ikooni, mis on fikseeritud läbipaistmatu PNG, ega veebimanifesti ikoone, mida Android kuvab enda taustal.

Ka tugi pole universaalne: Chromiumil põhinevad brauserid ja Firefox loevad kohanduvat SVG-d, Safari tugi oleneb versioonist. Sellest pole häda, sest üleminek .ico-varuvariandile on automaatne.

Kujunda seega hele ikoon vaikevariandina, mida iga külastaja näeb, ning käsitle tumedat varianti täiustusena brauseritele, mis oskavad seda lugeda.

Algallikad

Korduma kippuvad küsimused

Kas favicon.ico saab tumedat režiimi toetada?

Ei. ICO-vorming salvestab fikseeritud rasterpilte ega tunne kujundusi. Ainult SVG saab sisaldada meediapäringut, mistõttu tänapäevane komplekt pakub mõlemat.

Kas on vaja kahte SVG-faili, heledat ja tumedat?

Ei, piisab ühest failist. Mõlemad variandid asuvad samas SVG-s, eraldatuna prefers-color-scheme-meediapäringuga, nii et lisapäringut ega tuvastamiskoodi pole vaja.

Kuidas tumeda kujunduse tulemust testida?

Vaheta operatsioonisüsteemi kujundust ja laadi vahekaart uuesti. Generaatoris asuvad heleda ja tumeda vahekaardi eelvaated kõrvuti, mis säästab edasi-tagasi vahetamist.

Proovi praktikas

Generaator loob täieliku komplekti sekunditega, tasuta ja sinu pilte üles laadimata.

Loo tumeda variandiga favicon

Mida järgmisena lugeda ja proovida

Teised LFFaviconi tööriistad ja juhendid, mis vastavad kõige sagedasematele küsimustele.

Tööriistad

Juhendid