App Icon Generator
Makes every iOS and Android app icon size from one 1024 px image and packs them in a ZIP.
Upload your logo, preferably as an SVG, and this favicon generator builds the whole set: favicon.ico, an SVG favicon that can change in dark mode, icons for iPhone and Android home screens, and site.webmanifest. You get one ZIP and the exact code to paste into your pages.
SVG gives the sharpest result. PNG, JPG, WebP, or AVIF work too, ideally 512 × 512 pixels or larger. Ctrl+V pastes.
At 80% or less the icons are also marked maskable for Android.
The short name sits under the home screen icon. About 12 characters fit.
Relative to the root of your site. Leave / when the files go in the root, or type a folder such as /icons/.
Use letters, digits, dashes, dots, and slashes only.
Adds ?v= to every address, so browsers drop an old cached favicon.
Use letters, digits, dots, dashes, and underscores, up to 32.
your favicon package.
Open your site and check the tab. Browsers keep old favicons for a while, so reload with Ctrl+F5, or set a version in step 4 when you replace an existing favicon.
Browsers, search engines, and phones each look for a different file, so the package holds seven of them:
favicon.ico stores 16, 32, and 48 px images. Browsers still ask for /favicon.ico when a page has no icon tags, for example when you open a PDF.favicon.svg is the icon current Chrome, Edge, and Firefox put in the tab. An uploaded SVG is cleaned with SVGO and nested inside it, so it stays vector. A PNG or JPG source goes in as a 256 px PNG instead, which keeps the file small.prefers-color-scheme: dark rule swaps the background color and raises the brightness through an SVG filter. The ICO and PNG files keep the light look.favicon-96x96.png is the PNG fallback. Google wants a favicon whose side is a multiple of 48 px, and 96 qualifies.apple-touch-icon.png is 180 × 180, the size iOS uses on the home screen. iOS paints transparent pixels black, which is why the home screen icon sits on a background by default.site.webmanifest for Android and installable web apps.On a background, the art is scaled and centered:
art = side × image size, with (side - art) ÷ 2 of margin on each edge.
At 80 percent, the 180 px Apple icon gets 144 px of art and an 18 px margin. At 80 percent or less, the manifest lists the 192 and 512 px files a second time with purpose: maskable, since Android crops icons to a shape and only a centered circle 80 percent wide is sure to stay visible.
/icons/favicon-96x96.png?v=3, and the manifest icons get the same folder and version.| File | Size | Used by |
|---|---|---|
| favicon.ico | 16, 32, and 48 px | Older browsers, PDFs, and any request for /favicon.ico |
| favicon.svg | Vector, or a 256 px PNG inside | Tabs in Chrome, Edge, and Firefox, with the dark mode version |
| favicon-96x96.png | 96 × 96 | Browsers without SVG favicons and Google search results |
| apple-touch-icon.png | 180 × 180 | iPhone and iPad home screens |
| web-app-manifest-192x192.png | 192 × 192 | Android home screen |
| web-app-manifest-512x512.png | 512 × 512 | Android splash screen and installed web apps |
| site.webmanifest | Text | App name, short name, theme color, and the two icons above |
Start from an SVG or an image of at least 512 × 512 pixels. Tabs show the icon at 16 or 32 pixels, but phones ask for 180, 192, and 512 pixel versions, and this tool makes all of them from the one image.
Keep it. Current browsers use the SVG or PNG named in your head tags, but a page without those tags, a PDF opened in the browser, and many feed readers still request /favicon.ico from the root of the site.
Turn on Change it in dark mode and raise the brightness, or pick a darker background color. The tool writes both looks into favicon.svg with a prefers-color-scheme rule, and the browser picks one to match its theme.
Browsers cache favicons for a long time. Reload with Ctrl+F5, or set a version in step 4 so every address ends in ?v= and the browser has to fetch the new files.
Put them in the public folder, then pick Next.js in the install steps and paste the metadata export into app/layout.tsx. Next.js serves everything in public from the root of the site.
No. Reading the image, cleaning the SVG, resizing, and building the ZIP all happen in your browser, so the file never leaves your device.
Often used together with Favicon Generator.
Makes every iOS and Android app icon size from one 1024 px image and packs them in a ZIP.
Creates a web app manifest and the HTML tags to make a site installable.
Shrinks SVG files with SVGO and shows the before and after side by side.