Skip to content
Portfolio

Favicon Generator

One image becomes a complete favicon set — .svg, .ico, PNG sizes, apple-touch-icon, and maskable manifest icons. Pick what you need, preview it, then export a ZIP with ready snippets. Runs in your browser.

Source image

Square PNG or SVG, ≥ 512px is best. SVG unlocks favicon.svg.

Favicon style (.ico + PNG favicons)

App icons (iOS / Android)

Icon background (opaque)

iOS icons can’t be transparent, and Android crops maskable icons to a shape — so these get a solid background and extra safe-zone padding.

Files to generate

Classic

PNG favicons

Apple

Android / PWA

Web app manifest

Theme color
site.webmanifest
{
  "name": "My Site",
  "short_name": "My Site",
  "icons": [
    {
      "src": "/web-app-manifest-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/web-app-manifest-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "maskable"
    },
    {
      "src": "/web-app-manifest-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/web-app-manifest-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    }
  ],
  "theme_color": "#0f172a",
  "background_color": "#0f172a",
  "display": "standalone",
  "start_url": "/"
}

Paste into your site

HTML — in <head>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png" />
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="theme-color" content="#0f172a" />
<link rel="manifest" href="/site.webmanifest" />
Next.js — metadata
// app/layout.tsx
export const viewport = { themeColor: "#0f172a" };

export const metadata = {
  manifest: "/site.webmanifest",
  icons: {
    icon: [
      { url: "/favicon.ico", sizes: "any" },
      { url: "/favicon-16x16.png", type: "image/png", sizes: "16x16" },
      { url: "/favicon-32x32.png", type: "image/png", sizes: "32x32" },
      { url: "/favicon-48x48.png", type: "image/png", sizes: "48x48" },
      { url: "/favicon-96x96.png", type: "image/png", sizes: "96x96" },
    ],
    apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }],
  },
};
Upload an image to preview every icon

Includes the selected icons + snippets, bundled as a ZIP.

About this favicon generator

A free favicon generator that turns one image into a complete icon set for your website — favicon.ico, the PNG sizes browsers expect, an apple-touch-icon for iOS home screens, and maskable icons for a web app manifest — plus ready-to-paste HTML and Next.js code. Everything is generated in your browser.

How it works

  1. 1
    Upload an image

    Add a PNG, JPEG, WebP or SVG. A square source at 512×512 or larger gives the sharpest result across every size.

  2. 2
    Preview every size

    See exactly how the icon looks at 16px, 32px, 180px and the manifest sizes before you export.

  3. 3
    Export the set

    Download favicon.ico, the PNG sizes, the apple-touch-icon and maskable manifest icons together in one ZIP.

  4. 4
    Copy the code

    Paste the generated <link> tags into your HTML, or drop the files into a Next.js app/ folder — snippets included.

Privacy

Your image is processed locally in the browser. It is never uploaded, so your logo or artwork stays on your device — the whole icon set is built with canvas and JavaScript on your machine.

Need to convert or resize your logo first? Open the image tools.

Frequently asked questions

Do I need a square image?
A square source works best because favicons are square. If your image isn't square, crop it first — otherwise it will be padded or squished to fit.
What files do I get?
A favicon.ico, PNG icons at the common sizes, an apple-touch-icon for iOS, and maskable PNGs referenced by a web app manifest — all in one download.
Does it generate the HTML tags?
Yes. You get copy-paste <link> tags for classic HTML and a matching setup for Next.js, so the icons are wired up correctly in one step.
What is a maskable icon?
A maskable icon has safe padding so Android and PWA launchers can crop it into circles or rounded squares without cutting off your logo.

Other private browser tools

Browse all 10 tools →