image tools

Favicon Design Guide: Size Requirements for All Platforms in 2026

Complete 2026 favicon guide: exact pixel sizes for Chrome, Safari, iOS, Android, Windows, macOS, and PWA. File formats, `<head>` markup, and generation workflow.

ZakGT Tools·10 min read

The Modern Favicon Ecosystem: Why One File Is No Longer Enough

The favicon has evolved from a simple 16×16 pixel `.ico` file into a complex multi-format, multi-resolution asset system that must satisfy browser tabs, operating system dock icons, home screen shortcuts, PWA splash screens, bookmark managers, search engine result snippets, and notification badges — all from a single website. In 2026, a complete favicon implementation requires between 12 and 20 distinct image files across multiple formats, served with precise `<head>` markup to route each platform to its appropriate asset.

The complexity is not arbitrary. Each platform context has fundamentally different requirements: browser tabs display favicons at 16×16 or 32×32 pixels against a light or dark browser chrome; iOS home screen icons are displayed at sizes up to 180×180 on modern devices and must have rounded corners applied by the OS (you supply a square image without rounding); Android adaptive icons use separate foreground and background layers within a defined safe zone; Windows tiles have specific background color and padding requirements for the Start menu; macOS Big Sur introduced full-size, high-quality application icons in `.icns` format even for web apps added to the dock via Safari.

Beyond visual quality, favicon implementation errors have measurable SEO and trust implications. A missing favicon triggers an HTTP 404 at `/favicon.ico` on every page load (the browser requests this path by default), adding unnecessary failed requests. Incorrect `<link>` tags can cause platforms to fall back to generic system icons, making bookmarked sites unidentifiable. PWAs with incorrect manifest icons fail iOS and Android "add to home screen" functionality entirely.

This guide provides the complete size matrix for every relevant platform in 2026, the correct `<head>` markup, and a practical workflow for generating the full icon set from a single high-resolution source file.

Complete Size Matrix: Every Platform and Its Required Dimensions

The following table covers all actively-used platforms and their favicon or app icon requirements as of 2026. Sizes marked **Critical** will cause visible quality issues if omitted; sizes marked **Recommended** improve experience but have acceptable fallbacks.

``` Context | Size (px) | Format | Priority ----------------------------|-----------------|----------|--------- Browser tab (all browsers) | 16×16 | ICO/PNG | Critical Browser tab (high-DPI) | 32×32 | ICO/PNG | Critical Chrome/Edge high-DPI tab | 48×48 | PNG | Recommended Safari pinned tab | Any (SVG) | SVG | Recommended Apple touch icon (iOS) | 180×180 | PNG | Critical Apple touch icon (legacy) | 152×152 | PNG | Recommended Apple touch icon (legacy) | 120×120 | PNG | Recommended Android chrome icon | 192×192 | PNG | Critical Android chrome icon (HD) | 512×512 | PNG | Critical Android adaptive icon | 108×108 (safe zone within 192) | PNG | Critical Windows tile (small) | 70×70 | PNG | Recommended Windows tile (medium) | 150×150 | PNG | Recommended Windows tile (wide) | 310×150 | PNG | Recommended Windows tile (large) | 310×310 | PNG | Recommended Windows ICO multi-size | 16+32+48+256 | ICO | Critical macOS Safari Web App | 512×512 | PNG | Critical PWA manifest | 192×192 | PNG | Critical PWA manifest | 512×512 | PNG | Critical PWA maskable icon | 512×512 | PNG | Critical OG/share preview | 1200×630 | PNG/JPG | Recommended ```

**The ICO format** can embed multiple sizes within a single file. A production `/favicon.ico` should contain at minimum 16×16, 32×32, and 48×48 variants — this covers all browser tab contexts without requiring separate PNG files for each size. Tools like `icotool` (Linux) or the ImageMagick `convert` command can build multi-size ICO files: ```bash convert favicon-16.png favicon-32.png favicon-48.png favicon.ico ```

Design Principles for Favicons That Remain Legible at 16 Pixels

Designing a favicon that works at 16×16 pixels requires completely different thinking from standard logo design. At 16px, most logos become an illegible blur. The constraints force design decisions that are counterintuitive for designers accustomed to working at print or screen-standard resolutions.

**Use a symbol, not a logotype.** At 16×16 pixels, typographic logos with more than 2 letters become unreadable. A single bold initial letter, a geometric mark, or a simplified icon derived from the brand mark will outperform a full wordmark every time. Amazon uses an arrow, GitHub uses a stylized cat, Stripe uses a bold "S" — all immediately recognizable at small sizes because they prioritize recognizability over completeness.

**Exaggerate contrast.** The browser chrome surrounding a favicon is typically a medium gray (in light mode browsers) or dark gray/near-black (dark mode). Icons that use light colors without strong outlines or sufficient luminance contrast will visually disappear. Aim for a contrast ratio of at least 4:1 between the icon's primary color and the expected browser chrome background. Test your icon against both light and dark browser themes.

**Avoid thin strokes and fine details.** A stroke thinner than 2px at 16×16 resolution will anti-alias into a barely-visible blur. Minimum stroke width at 16px: 2px. At 32px: 2–3px. Bold, solid shapes survive pixel-grid snapping far better than complex line art.

**Pixel-hint your 16×16 version manually.** While automated resizing tools do a reasonable job, the best 16×16 favicons are hand-crafted using pixel art techniques — editing the icon pixel by pixel in a raster editor to align shapes to the grid and avoid anti-aliasing blur. This is especially important for icons with circular or diagonal elements that do not align to the 16×16 grid naturally. The manual 16px version is then preserved separately and embedded in the ICO file alongside the automated larger sizes.

**Test in a real browser tab.** Mockups and preview tools lie. Always test your favicon by actually loading it in a browser tab alongside other open tabs — the real-world context of competing tabs, varying browser widths, and adjacent UI elements reveals readability issues that isolated testing misses.

Safari Pinned Tabs, Apple Touch Icons, and iOS-Specific Requirements

Apple platforms have the strictest and most specific favicon requirements in the ecosystem. Getting iOS and macOS right requires understanding several Apple-specific behaviors that differ significantly from the web standard.

**Apple Touch Icon (iOS home screen).** When a user adds a website to their iOS home screen via "Add to Home Screen," Safari uses the `apple-touch-icon` link tag to find the icon. Apple's preferred size in 2026 is **180×180 pixels** for current devices (iPhone with Retina display). The image must be a PNG, should not include rounded corners (iOS applies them), and should not include a gloss effect (iOS no longer applies one).

Correct markup: ```html <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> ```

If no `apple-touch-icon` link tag is found, iOS will capture a screenshot of the page as the home screen icon — a guaranteed ugly result. Always include this tag.

**Safari Pinned Tab icon (SVG).** The pinned tab feature uses a single-color SVG mask. Your SVG must use only black fill (`#000000`) with no color, gradients, or embedded images — Safari renders it in a color chosen by the user's accent settings. The SVG should be a simplified, bold silhouette of your icon: ```html <link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#d4af37"> ``` The `color` attribute sets the active-tab tint color.

**macOS Safari Web Application.** When a user saves a site to the macOS dock via Safari's "Add to Dock" feature (available since Safari 17), it uses a 512×512 PNG. If the icon is not square or lacks sufficient padding, macOS will crop or letterbox it awkwardly. Design with a safe zone: place your icon artwork within a 75% area of the 512×512 canvas, with at least 64px of background padding on all sides.

**Preventing the 404 at `/apple-touch-icon.png`.** iOS Safari makes unconditional requests to `/apple-touch-icon.png` and `/apple-touch-icon-precomposed.png` regardless of what link tags specify. Even if you serve icons from a `/icons/` subdirectory, place copies at these root paths (or configure permanent redirects) to prevent 404 errors in server logs.

Android Icons, PWA Manifest, and Maskable Icons

Android home screen icons and Progressive Web App icons share a common configuration through the **Web App Manifest** (`manifest.json`), but have distinct requirements that must be addressed separately to achieve correct behavior across Android versions and launcher applications.

**Web App Manifest icon configuration:** ```json { "name": "Your App Name", "short_name": "App", "icons": [ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" }, { "src": "/icons/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" } ], "theme_color": "#0d1117", "background_color": "#0d1117", "display": "standalone" } ```

**Maskable icons** are the critical addition for Android in 2026. Android adaptive icons display within a shaped container (circle, squircle, rounded square — varies by device) that crops the icon. Standard icons are displayed within a white circle container if they are not maskable, resulting in a white circle with your icon awkwardly centered inside. Maskable icons designate a **safe zone** — the center 80% of the icon (a circle of diameter = 80% of icon size) — that is guaranteed to be visible regardless of the mask shape. All important content must stay within this safe zone, while the outer 10% on each edge acts as bleed.

Design your maskable icon with a full-bleed background color that extends to all four edges, and keep all icon artwork within the central 80% diameter circle. Generate this separately from your standard icons — it is not just a padded version of your standard icon.

**PWA install prompt requirements.** Chrome on Android requires both a 192×192 and 512×512 icon in the manifest, at least one maskable icon, and HTTPS to show the PWA install prompt. Missing the 512×512 icon is the most common reason PWA installs fail.

Complete `<head>` Markup: The Full Implementation Template

The following is a complete, production-ready `<head>` favicon implementation covering all major platforms in 2026. Copy and adapt this template, replacing placeholder paths with your actual icon file paths.

```html <!-- Basic favicon (all browsers) --> <link rel="icon" type="image/x-icon" href="/favicon.ico">

<!-- PNG favicons for high-DPI browser tabs --> <link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">

<!-- SVG favicon (modern browsers — Firefox 41+, Chrome 80+) --> <link rel="icon" type="image/svg+xml" href="/icons/favicon.svg">

<!-- Apple Touch Icon (iOS home screen + macOS dock) --> <link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">

<!-- Safari pinned tab --> <link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#d4af37">

<!-- Web App Manifest (Android PWA) --> <link rel="manifest" href="/manifest.json">

<!-- Windows tile color --> <meta name="msapplication-TileColor" content="#0d1117"> <meta name="msapplication-config" content="/browserconfig.xml">

<!-- Theme color (Android Chrome tab bar, PWA) --> <meta name="theme-color" content="#0d1117"> ```

**SVG favicon advantages.** Modern browsers (Chrome 80+, Firefox 41+, Edge 80+) support SVG favicons via `type="image/svg+xml"`. SVG favicons are resolution-independent, support `@media (prefers-color-scheme: dark)` for adaptive icons, and are typically very small files. Define a dark-mode variant within the SVG: ```svg <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> <style> :root { --color: #d4af37; } @media (prefers-color-scheme: dark) { :root { --color: #ffd700; } } .icon { fill: var(--color); } </style> <path class="icon" d="M16 2 L28 28 L4 28 Z"/> </svg> ```

With an SVG favicon defined, you only need the ICO for legacy browser fallback, the 180×180 PNG for iOS, and the manifest icons for Android — significantly simplifying the full icon set.

Automation Workflow: Generating the Full Icon Set from One Source File

Manually creating 15+ icon files is time-consuming and error-prone. The correct workflow generates all required sizes programmatically from a single high-resolution source file (typically 1024×1024 or 2048×2048 SVG or PNG).

**Recommended source file specifications:** - Format: SVG (infinitely scalable) or PNG (minimum 1024×1024) - Color space: sRGB (not P3 or CMYK — browser rendering engines use sRGB) - Background: your brand background color at full bleed for all sizes that require it; transparent for sizes displayed against platform backgrounds where your background may conflict - Content safe zone: design artwork within the central 80% of the canvas

**Automated generation with `sharp` (Node.js):** ```javascript const sharp = require('sharp'); const sizes = [16, 32, 48, 70, 96, 120, 128, 144, 150, 152, 180, 192, 310, 512];

for (const size of sizes) { await sharp('source-1024.png') .resize(size, size, { fit: 'contain', background: '#0d1117' }) .png() .toFile(`icons/icon-${size}x${size}.png`); } ```

**Using the `favicons` npm package** for fully automated generation: ```bash npm install favicons ``` ```javascript const { favicons } = require('favicons'); const response = await favicons('source.png', { appName: 'Your App', background: '#0d1117', theme_color: '#d4af37', icons: { android: true, appleIcon: true, favicons: true, windows: true } }); ``` The `favicons` package outputs all required files and generates the complete `<head>` HTML — automate this as part of your build pipeline.

**Validation.** After generation, validate your implementation using: - **RealFaviconGenerator.net** — paste your URL for a comprehensive multi-platform check - **Chrome DevTools → Application → Manifest** — verifies manifest parsing and icon availability - **iOS Simulator** — add the site to the home screen to verify the Apple Touch Icon - **Android Emulator** — test the PWA install flow and maskable icon rendering

← Back to ArticlesTry the Free Tools

More in image tools

View all image tools guides →