Favicon en mode fosc amb un SVG

Escrit per

Un logotip negre sobre fons transparent queda perfecte en una pestanya clara i desapareix en una de fosca. El format ICO no es pot adaptar, però el favicon SVG sí: inclou una regla CSS que canvia els colors segons el tema del navegador.

El mateix símbol visible en pestanyes clares i fosques del navegador
SVG pot adaptar els colors sense JavaScript mitjançant prefers-color-scheme.

El problema: un fitxer, dos fons

Ara que els navegadors segueixen el tema del sistema, la barra de pestanyes pot ser gairebé blanca per a un visitant i gairebé negra per a un altre a la mateixa pàgina. Un favicon monocrom dissenyat per a un d'ells es torna il·legible per a l'altre.

Molts llocs ho resolen donant a la icona un fons opac de color. Funciona, però la icona es converteix en una taca pesada, mentre que les grans marques mantenen un símbol retallat.

La solució adequada és deixar que el navegador triï, i això és possible sense JavaScript ni detecció al servidor.

Com funciona l'SVG adaptable

Un fitxer SVG és un document, no una imatge plana: pot contenir una etiqueta style i, per tant, consultes de mitjans. Incloure-hi una regla prefers-color-scheme: dark redefineix el color de farciment dels traçats quan el navegador fa servir un tema fosc.

A la pràctica, l'SVG declara un color predeterminat per al tema clar i després una regla que el substitueix en mode fosc. El navegador aplica el color adequat en representar-lo i actualitza la pestanya immediatament si el visitant canvia de tema.

El mateix mecanisme va més enllà d'una simple inversió: pots mostrar un dibuix completament diferent, com ara un símbol retallat en mode clar i un distintiu ple en mode fosc.

Declara l'SVG al costat del .ico

Declara l'SVG amb link rel="icon" type="image/svg+xml" href="/favicon.svg". Els navegadors que l'entenen el prefereixen a la resta, i els que no el coneixen recorren al favicon.ico de l'arrel.

Per tant, no cal eliminar res: tots dos fitxers conviuen i cadascun cobreix els clients de l'altre. És la millora progressiva aplicada a una icona de 32 píxels.

Hi ha una condició: un favicon SVG ha de ser autònom. En aquest context no es carregarà cap tipografia externa, imatge remota ni script. El text s'ha de convertir en traçats.

Què no cobreix el mode fosc

La variant fosca s'aplica al favicon del navegador d'escriptori. No afecta la icona Apple Touch, que és un PNG opac fix, ni les icones del manifest web, que Android representa sobre el seu propi fons.

La compatibilitat tampoc no és universal: els navegadors basats en Chromium i Firefox llegeixen l'SVG adaptable; Safari va al darrere segons la versió. No és un problema, perquè el recurs alternatiu .ico és automàtic.

Dissenya, doncs, la icona clara com a cas predeterminat, el que veurà qualsevol visitant, i tracta la variant fosca com un refinament per als navegadors que la saben llegir.

Fonts primàries

Preguntes freqüents

El favicon.ico pot gestionar el mode fosc?

No. El format ICO desa imatges fixes de mapa de bits sense cap noció de tema. Només l'SVG pot incloure una consulta de mitjans; per això el conjunt modern incorpora tots dos formats.

Calen dos fitxers SVG, un de clar i un de fosc?

No, n'hi ha prou amb un. Totes dues variants són dins del mateix SVG, separades per la consulta de mitjans prefers-color-scheme, cosa que evita una petició addicional i qualsevol codi de detecció.

Com es prova la representació del tema fosc?

Canvia el tema del sistema operatiu i torna a carregar la pestanya. Al generador, les previsualitzacions de les pestanyes clara i fosca apareixen una al costat de l'altra, cosa que t'estalvia anar canviant.

Posa-ho en pràctica

El generador produeix el conjunt complet en segons, gratis i sense pujar les teves imatges.

Crea un favicon amb una variant fosca

Què pots llegir i provar després

Les altres eines de LFFavicon i les guies que responen les preguntes més habituals.

Eines

Guies