Fav for Craft CMS

Free for Craft CMS 5

One image in. Every favicon out.

A modern site needs nine icon files, a manifest and a tile config before every browser, phone and pinned tab is happy. Fav makes all of them from one square image in the control panel, and puts the tags in the head of every page without a template change.

Fav

What one image becomes

Each size is drawn the way the thing asking for it wants it. Tab icons keep their transparency, the iPhone icon is flattened onto your colour, and everything is fitted inside the square rather than cropped.

html
<link rel="icon" href="/fav/…/favicon.ico" sizes="32x32">
<link rel="icon" type="image/png" sizes="16x16" href="/fav/…/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/fav/…/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="48x48" href="/fav/…/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="96x96" href="/fav/…/favicon-96x96.png">
<link rel="apple-touch-icon" sizes="180x180" href="/fav/…/apple-touch-icon.png">
<link rel="manifest" href="/fav/…/manifest.json">
<meta name="theme-color" content="#e4486f">
<meta name="msapplication-config" content="/fav/…/browserconfig.xml">

{# Added before </head> on every page. Or place them yourself: #}
{{ craft.fav.tags() }}

Features

Everything a favicon generator website does, without leaving the control panel or pasting files back.

The whole family from one file

A three-size favicon.ico, PNG favicons at 16, 32, 48 and 96px, a 180px Apple touch icon, 192 and 512px manifest icons and a Windows tile — plus the manifest and tile config that point at them.

No template changes

The tags are added to every HTML page just before </head>, including templates that never call {{ head() }}. A page that already declares its own icon is left alone.

  • RSS, JSON and XML templates are never touched
  • Or place the tags yourself with craft.fav.tags()

Drawn for where they go

Tab icons stay transparent and run edge to edge, because at 16px a margin costs a quarter of the logo. The iOS and Windows icons are flattened onto your colour and padded, because iOS turns transparency black.

One set per site

Every site in a multi-site install has its own image and colours. Settings live in the database, not project config, so the person who owns the brand can change it on the live site without a deployment.

Plays nicely with a PWA

Fav's manifest carries icons and colours only — no start URL, no display mode — so it can never make a site installable by accident. Already running a PWA plugin? Switch Fav's manifest off for that site.

Read-only deploys welcome

Icons are static files in web/fav when the web root is writable, and are served from storage when it is not. One console command rebuilds what a fresh deploy is missing.

  • php craft fav/favicons/generate
  • Replacing the source image rebuilds the set on the spot

Fav in the control panel

A real screen from a Craft 5 install: every file generated from one source image, beside the tags that go in the head.

The Fav Icons screen in the Craft control panel, showing the generated favicon.ico, PNG favicons, Apple touch icon, manifest icons, Windows tile, manifest.json and browserconfig.xml, with the head tags listed below

Screenshot from a live install, not a mockup.

Frequently Asked Questions

The questions worth answering before you install it.

Free, and it stays free

No editions, no licence key, no trial. Install it, choose one image, and the next page you load has every icon it needs.