Alla scoperta del mondo dinamico delle favicon SVG animate
Una nuova era per le schede del browser
Ricordate le minuscole icone nelle schede del browser? Sono le favicon: inizialmente statiche, pixelate e per lo più ignorate. Ma il web si evolve, e con lui i suoi elementi. Ecco l’era delle favicon SVG (Scalable Vector Graphics), una vera svolta nel campo delle icone delle schede. A differenza delle favicon tradizionali basate su pixel, gli SVG sono vettoriali e offrono immagini nitide e scalabili senza perdita di qualità. E sapete una cosa? Possono ballare, lampeggiare e cambiare: possono essere animate!
Favicon SVG: non solo icone, ma piccole tele
Usare gli SVG come favicon trasforma ogni minuscola icona in una piccola tela per la creatività. Essendo basato su XML, l’SVG può essere incorporato direttamente nell’HTML. Non si tratta quindi solo di immagini statiche, ma di piccole opere d’arte interattive e dinamiche nella scheda del browser.
Emoji e testo: dare personalità alle favicon
Ora potete mettere le vostre emoji e i vostri messaggi preferiti direttamente nella favicon. Incorporate un’emoji o aggiungete una lettera e avrete una favicon che non è solo un’icona, ma una dichiarazione. Ecco un assaggio di come si fa:
<link rel="icon" id="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>👨💻</text></svg>">
Inseritelo nel <head> del vostro HTML e vedrete apparire l’icona.
JavaScript: dare vita alle favicon
Ma perché fermarsi alle icone statiche? Animiamole! Con un po’ di magia JavaScript, le favicon possono evolversi, cambiare espressione o persino trasmettere messaggi nel tempo.
window.addEventListener("load", (event) => {
let intervalId = null;
// Start the interval when the page is first loaded
startInterval();
// Listen for visibilitychange and pagehide events
document.addEventListener('visibilitychange', handleVisibilityChange);
window.addEventListener('pagehide', handlePageHide);
const emojis = ['👋', '💼', '💻','🔧','📊','📱', '👨💻','🚀','💡', '📈','📝','💡','📢'];
const icon = document.getElementById('icon');
let currentIndex = 0;
const text = "I"
let message;
let faviconText;
function setFavicon(item) {
// Update the icon element with the new message
icon.href = `data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200"><text id="t1" x="50%" y=".9em" fill="hsl(36, 100%, 50%)" font-size="180" font-family="system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'" text-anchor="middle">${item}</text>
</svg>`;
}
function startInterval() {
clearInterval(intervalId);
intervalId = setInterval(() => {
// Get the current message and shift it two characters to the left
if(currentIndex == 0) {
message = text;
}
// If we've reached the end of the message, show a random emoji
if (message.length < 1) {
const emoji = emojis[Math.floor(Math.random() * emojis.length)];
message = emoji;
currentIndex = 0;
faviconText = emoji
} else {
currentIndex += 2;
faviconText = message.substr(0, 2);
}
setFavicon(faviconText);
message = message.substr(2);
}, 1500);
}
function stopInterval() {
setFavicon(emojis[Math.floor(Math.random() * emojis.length)]);
clearInterval(intervalId);
intervalId = null;
}
function handleVisibilityChange() {
if (document.hidden) {
// Page is hidden, stop the interval after x seconds
setTimeout(() => {
stopInterval();
}, 60000);
} else {
// Page is visible, start the interval
startInterval();
}
}
function handlePageHide() {
// Page is being unloaded, stop the interval
setTimeout(() => {
stopInterval();
}, 60000);
}
});
Questo script è l’ingrediente segreto. Cambia la favicon in base a un array di emoji e testo e reagisce a diversi eventi del browser per avviare e fermare l’animazione.
Supporto dei browser
Attualmente Chrome, Firefox ed Edge supportano questa funzionalità. Tra i browser più diffusi, solo Safari non la supporta.
Considerazioni finali: una piccola rivoluzione
Le favicon SVG animate con emoji e testo sono più di semplici icone originali. Rappresentano una fusione di arte e tecnologia e aprono nuove strade alla creatività e all’interazione nel web design. Queste icone saranno anche piccole, ma il loro potenziale impatto sull’esperienza utente e sull’espressione del marchio è enorme. Nel web design sono spesso i dettagli più piccoli a fare la differenza più grande. Benvenuti nel futuro dinamico ed espressivo delle favicon.