SVG, Favicons, and All of the Enjoyable Issues We Can Do With Them

Favicons are the little icons you see in your browser tab. They aid you perceive which website is which while you’re scanning by your browser’s bookmarks and open tabs. They’re a neat a part of web historical past which can be able to performing some cool tricks.

One very new trick is the power to make use of SVG as a favicon. It’s one thing that most modern browsers support, with extra help on the way in which.

Right here’s the code for easy methods to add favicons to your website:

<hyperlink rel="icon" sort="picture/svg+xml" href="">
<hyperlink rel="alternate icon" href="">
<hyperlink rel="mask-icon" href="" shade="#ff8a01">

If a browser doesn’t help a SVG favicon, it’ll ignore the primary hyperlink ingredient declaration and proceed on to the second. This ensures that each one browsers that help favicons can benefit from the expertise. 

You may additionally discover the alternate attribute worth for our rel declaration within the second line. This programmatically communicates to the browser that the favicon with a file format that makes use of .ico is particularly used as an alternate presentation.

Following the favicons is a line of code that masses one other SVG picture, one referred to as safari-pinned-tab.svg. That is to help Safari’s pinned tab functionality, which existed earlier than different browsers had SVG favicon help. There’s extra recordsdata you possibly can add right here to boost your website for various apps and companies, however extra on that in a bit.

Right here’s extra element on the present stage of SVG favicon help:


Chrome Firefox IE Edge Safari
80 41 No 80 TP

Cellular / Pill

Android Chrome Android Firefox Android iOS Safari
80 No No 13.4

Why SVG?

Chances are you’ll be questioning why that is wanted. The .ico file format has been round without end and might help pictures as much as 256×256 pixels in dimension. Listed here are three solutions for you.

Ease of authoring

It’s a ache to make .ico recordsdata. The file is a proprietary format utilized by Microsoft, which means you’ll want specialized tools to make them. SVG is an open standard, which means you should utilize them with none additional tooling or platform lock-in.


Retina? 5k? 6k? After we use a resolution-agnostic SVG file for a favicon, we assure that our favicons look crisp on future units, no matter how large their displays get


SVGs are often very small recordsdata, particularly when in comparison with their raster picture counterparts — even more-so in the event you optimize them beforehand. By solely utilizing a 16×16 pixel favicon as a fallback for browsers that don’t help SVG, we offer a mix that enjoys a excessive diploma of help with a smaller file dimension as well. 

This may appear a bit excessive, however on the subject of internet efficiency, each byte counts!


One other cool factor about SVG is we will embed CSS directly in it. This implies we will do enjoyable issues like dynamically regulate them with JavaScript, supplied the SVG is said inline and never embedded utilizing an img ingredient.

<svg  model="1.1" xmlns="" viewBox="Zero 0 100 100">
    path { fill: #272019; }
  <!-- and so on. -->

Since SVG favicons are embedded utilizing the hyperlink ingredient, they will’t actually be modified utilizing JavaScript. We will, nevertheless, use issues like emoji and media queries.


Lea Verou had a genius concept about utilizing emoji inside SVG’s text element to make a fast favicon with a clear background that holds up at small sizes.

In response, Chris Coyier whipped up a neat little demo that permits you to mess around with the idea.

Darkish Mode help

Each Thomas Steiner and Mathias Bynens independently stumbled throughout the concept that you should utilize the prefers-color-scheme media question to supply help for darkish mode. This work is constructed off of Jake Archibald’s exploration of SVG and media queries.

<svg width="128" peak="128" xmlns="">
    path { fill: #000000; }
    @media (prefers-color-scheme: darkish) {
      path { fill: #ffffff; }
  <path d="M111.904 52.937a1.95 1.95 0 00-1.555-1.314l-30.835-4.502-13.786-28.136c-.653-1.313-2.803-1.313-3.456 0L48.486 47.121l-30.835 4.502a1.95 1.95 0 00-1.555 1.314 1.952 1.952 0 00.48 1.99l22.33 21.894-5.28 30.918c-.115.715.173 1.45.768 1.894a1.904 1.904 0 002.016.135L64 95.178l27.59 14.59c.269.155.576.232.883.232a1.98 1.98 Zero 001.133-.367 1.974 1.974 0 00.768-1.894l-5.28-30.918 22.33-21.893c.518-.522.71-1.276.48-1.99z" fill-rule="nonzero"/>

For supporting browsers, this code means our star-shaped SVG favicon will change its fill shade from black to white when dark mode is activated. Fairly neat!

Different media queries

Darkish mode help obtained me considering: if SVGs can help prefers-color-scheme, what different issues can we do with them? Whereas the help for Level 5 Media Queries might not be there but, right here’s some concepts to think about:

A mockup of how these media query-based changes might work.

Preserve it crisp

One other necessary facet of excellent favicon design is ensuring they appear good within the small browser tab space. The key to that is making the paths of the vector picture line up to the pixel grid, the information a pc makes use of to show SVG math into the bitmap we see on a display. 

Right here’s a simplified instance utilizing a sq. form:

A crisp orange square on a white background. There is also a faint grid of gray horizontal and vertical lines that represent the pixel grid. Screenshot from Figma.

When the vector factors of the sq. align to the pixel grid of the artboard, the antialiasing impact a pc makes use of to clean out the shapes isn’t wanted. When the vector factors aren’t aligned, we get a “smearing” impact:

A blurred orange square on a white background. There is also a faint grid of gray horizontal and vertical lines that represent the pixel grid. Screenshot from Figma.

A vector level’s place will be adjusted on the pixel grid through the use of a vector enhancing program corresponding to Figma, Sketch, Inkscape, or Illustrator. These applications export SVGs as nicely. To regulate a vector level’s location, choose every node with a precision choice software and drag it into place.

Some extra sophisticated icons could must be simplified, with the intention to look good at such a small dimension. In the event you’re on the lookout for a great primer on this, Jeremy Frank wrote a really good two-part article over at Vidget.

Go the additional mile

Along with favicons, there are a bunch of various (and sadly proprietary) methods to make use of icons to boost its expertise. These embrace issues just like the aforementioned pinned tab icon for Safari¹, chat app unfurls, a pinned Windows start menu tile, social media previews, and homescreen launchers.

In the event you’re on the lookout for an awesome place to get began with these sorts of enhancements, I actually like

Icon output from arranged in a grid using CSS-Trick’s logo. There are two rows of five icons: android-chrome-192x192.png, android-chrome-384x384.png, apple-touch-icon.png, favicon-16x16.png, favicon-32x32.png, mstile-150x150.png, safari-pinned-tab.svg, favicon.ico, browserconfig.xml, and site.webmanifest.
It’s so much, however it ensures sturdy help.

A humorous factor in regards to the historical past of the favicon: Web Explorer was the primary browser to help them and they were snuck in at the 11th hour by a developer named Bharat Shyam:

Because the story goes, late one evening, Shyam was engaged on his new favicon characteristic. He referred to as over junior challenge supervisor Ray Solar to have a look.

Shyam commented, “That is good, proper? Test it in?”, requesting permission to test the code into the Web Explorer codebase so it could possibly be launched within the subsequent model. Solar didn’t suppose an excessive amount of of it, the characteristic was cool and would clearly give IE an edge. So he informed Shyam to go forward and add it. And identical to that, the favicon made its means into Web Explorer 5, which might go on to grow to be one of many largest browser releases the net has ever seen.

The subsequent day, Solar was reprimanded by his supervisor for letting the characteristic get by so shortly. Because it seems, Shyam had particularly waited till later within the day, figuring out {that a} much less skilled Program Supervisor would give him a cross. However by then, the code had been merged in. By the way, you’d be stunned simply what number of comparatively main browser options have snuck their means into releases like this.

From How We Got the Favicon by Jay Hoffmann

I’m joyful to see the platform throw just a little love at favicons. They’ve lengthy been one in all my favourite little design particulars, and I’m excited that they’re turning into extra reactive to person’s wants. When you’ve got a second, why not sneak a SVG favicon into your challenge the identical means Bharat Shyam did means again in 1999. 

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *