SVG svetainės piktograma tamsiajam režimui

Autorius

Juodas logotipas skaidriame fone šviesioje kortelėje atrodo puikiai, o tamsioje pradingsta. ICO formatas neprisitaiko, tačiau SVG svetainės piktograma gali: joje yra CSS taisyklė, keičianti spalvas pagal naršyklės temą.

Tas pats simbolis matomas šviesiose ir tamsiose naršyklės kortelėse
SVG gali keisti spalvas be JavaScript, naudodamas prefers-color-scheme.

Problema: vienas failas, du fonai

Naršyklėms prisitaikant prie sistemos temos, vienam tos pačios svetainės lankytojui kortelių juosta gali būti beveik balta, kitam – beveik juoda. Vienam fonui sukurta vienspalvė piktograma kitame tampa neįskaitoma.

Daugelis svetainių tai apeina pridėdamos neskaidrų spalvotą foną. Tai veikia, bet piktograma virsta sunkia dėme, nors didieji prekių ženklai naudoja tik iškirptą simbolį.

Tinkamas sprendimas – leisti pasirinkti naršyklei, ir tai įmanoma be JavaScript bei aptikimo serveryje.

Kaip veikia prisitaikantis SVG

SVG failas yra dokumentas, o ne plokščias vaizdas: jame gali būti style žyma, taigi ir medijos užklausos. Įterpus prefers-color-scheme: dark taisyklę, kontūrų užpildo spalva pakeičiama, kai naršyklė naudoja tamsiąją temą.

Praktiškai SVG nurodo numatytąją šviesiosios temos spalvą ir taisyklę, kuri ją pakeičia tamsiajame režime. Naršyklė pasirenka tinkamą rodydama vaizdą ir iškart atnaujina kortelę, jei lankytojas pakeičia temą.

Taip galima ne tik invertuoti spalvas: galite pateikti visiškai kitą piešinį, pavyzdžiui, iškirptą simbolį šviesiajame režime ir užpildytą ženklelį tamsiajame.

SVG nurodymas kartu su .ico

Nurodykite SVG naudodami link rel="icon" type="image/svg+xml" href="/favicon.svg". Jį suprantančios naršyklės jam teikia pirmenybę, o kitos naudoja atsarginį favicon.ico iš šakninio katalogo.

Taigi nieko šalinti nereikia: abu failai lieka kartu ir aptarnauja skirtingas programas. Tai laipsniškas funkcijų gerinimas, pritaikytas 32 pikselių piktogramai.

Viena išlyga: piktogramos SVG turi būti savarankiškas. Išorinis šriftas, nuotolinis vaizdas ar scenarijus šiame kontekste nebus įkelti. Tekstą reikia paversti kontūrais.

Ko tamsusis režimas neapima

Tamsioji versija taikoma kompiuterio naršyklės svetainės piktogramai. Ji nekeičia Apple Touch piktogramos, kuri yra pastovus neskaidrus PNG, nei manifesto piktogramų, kurias Android rodo savo fone.

Palaikymas taip pat nėra visuotinis: Chromium pagrindu veikiančios naršyklės ir Firefox skaito prisitaikantį SVG, o Safari galimybės priklauso nuo versijos. Tai priimtina, nes .ico atsarginis variantas pasirenkamas automatiškai.

Todėl šviesiąją piktogramą kurkite kaip numatytąjį variantą, matomą visiems lankytojams, o tamsiąją laikykite patobulinimu ją palaikančioms naršyklėms.

Pirminiai šaltiniai

Dažniausi klausimai

Ar favicon.ico palaiko tamsųjį režimą?

Ne. ICO formatas saugo pastovius rastrinius vaizdus ir neturi temos sąvokos. Tik SVG gali talpinti medijos užklausą, todėl šiuolaikiniame rinkinyje yra abu failai.

Ar reikia dviejų SVG failų – šviesaus ir tamsaus?

Ne, pakanka vieno failo. Abi versijos yra tame pačiame SVG, atskirtos prefers-color-scheme medijos užklausa, todėl nereikia papildomos užklausos ar aptikimo kodo.

Kaip patikrinti tamsiosios temos vaizdą?

Pakeiskite operacinės sistemos temą ir iš naujo įkelkite kortelę. Generatoriuje šviesios ir tamsios kortelių peržiūros rodomos greta, todėl temos kaitalioti nereikia.

Pritaikykite praktiškai

Generatorius nemokamai sukuria visą rinkinį per kelias sekundes, neįkeldamas jūsų vaizdų.

Kurti piktogramą su tamsiąja versija

Ką skaityti ir išbandyti toliau

Kiti LFFavicon įrankiai ir vadovai, atsakantys į dažniausius klausimus.

Įrankiai

Vadovai