Skip to content

Mobile

Mobile Favicons: Apple Touch Icon, Android Chrome Sizes, and PWA Icons

The 180×180 Apple touch icon, the 192 and 512 Android Chrome icons, maskable safe zones, and the manifest settings behind blurry, cropped or black home-screen icons.

March 5, 2026
Updated October 12, 2026
6 min read

Quick answer: the four mobile icon files

Your tab favicon is not what phones put on the home screen. iPhones and Android devices each look for their own, larger icons:

FileSizeUsed byHow it is found
apple-touch-icon.png180×180iPhone and iPad "Add to Home Screen"<link rel="apple-touch-icon">
android-chrome-192x192.png192×192Android home screen, install promptsite.webmanifest
android-chrome-512x512.png512×512Android splash screen, install dialogsite.webmanifest
site.webmanifest—Chrome, Edge, Samsung Internet<link rel="manifest">

A maskable 512×512 icon is an optional fifth file. The favicon generator creates all four files above in one ZIP. The rest of this guide covers what each file needs to look right.

Jump to: Apple touch icon · Android Chrome icon sizes · Maskable icons · Web app manifest · Troubleshooting

Apple touch icon

When someone taps Share → Add to Home Screen in Safari, iOS looks for an Apple touch icon. Without one, it uses a shrunken screenshot of the page or a grey letter tile.

Size and HTML

Use a single 180×180 PNG. It covers every current iPhone and iPad — iOS scales it down for smaller slots, so the old 57, 60, 72, 76, 120, 152 and 167 px variants are no longer needed.

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">

Keep the file at exactly /apple-touch-icon.png as well. Safari requests that path even when the tag is missing, and so do many link-preview services.

Design rules

  • Solid background. iOS fills transparent pixels with black. A transparent logo becomes a logo on a black square.
  • Square corners. iOS applies its own rounded mask. If you pre-round the corners you get a visible double edge.
  • About 10% padding. Keep the mark away from the edges so the mask does not clip it.
  • Simple mark. The tile appears at roughly 60 points next to native app icons. Thin lines and small text vanish.

The -precomposed suffix and apple-touch-icon-precomposed rel value date from iOS 6, when Apple added a gloss effect. They are ignored now.

Home-screen name

iOS uses the page title as the label under the icon unless you set a shorter one:

<meta name="apple-mobile-web-app-title" content="Studio">

Updating the icon

iOS stores the icon when the shortcut is created. After you change it, delete the home-screen shortcut and add it again — clearing Safari's cache alone does not refresh existing shortcuts.

Need the file? Generate it from an icon or your logo with the favicon generator, make one from your initials if you have no logo yet, convert a vector logo with SVG to favicon, or turn a PNG or JPG logo into the full set with the favicon package generator. All of them export apple-touch-icon.png at 180×180 on a solid background.

Android Chrome icon sizes

Android does not use <link rel="icon"> for the home screen. Chrome reads the icons listed in your web manifest instead.

FileSizeUsed forNeeded?
android-chrome-192x192.png192×192Home-screen shortcut, install promptYes
android-chrome-512x512.png512×512Splash screen, install dialog, app drawer on high-density screensYes
maskable-512x512.png512×512Adaptive icon shapes (circle, squircle)Recommended
36, 48, 72, 96, 144 pxvariousOld Android launcher densitiesSkip for websites

Chrome needs both the 192 and 512 icons in the manifest before it treats your site as installable. With only small icons, Android falls back to a low-resolution favicon on a white plate, or a generated letter tile.

The file names are a convention, not a rule — any name works as long as the manifest src matches the file exactly, including upper and lower case. Both files must be PNG; SVG manifest icons are not reliably used for install.

The splash screen

When an installed web app launches, Android shows a splash screen built from three manifest fields: the 512×512 icon, background_color and name. If the splash screen looks wrong, check those three before anything else. Make background_color match your icon background so the transition into the page looks intentional.

Maskable icons: why Android crops your logo

Android launchers draw icons in the device's shape — circle on Pixel phones, squircle or rounded square on others. A normal manifest icon is shrunk onto a white circle so nothing gets cut off. A maskable icon instead fills the whole shape edge to edge, like a native app.

The safe zone

The launcher may crop anything outside a centred circle whose diameter is 80% of the icon (a radius of 40%). In a 512×512 image, that is the central circle about 410 px across. Your logo must sit entirely inside it; the background must fill the full square.

How to make one

  1. Start from your 512×512 icon with a solid background colour — no transparency.
  2. Shrink the mark so it sits within the central 80% circle. In the FaviconStudio generator, increase Padding until the mark sits well inside the edges, then download.
  3. Rename the 512 px file to maskable-512x512.png and add it to the manifest as a separate entry.
  4. Preview it with a maskable-icon checker (search "maskable icon editor") or Chrome DevTools → Application → Manifest, which shows the icon cropped to a circle.

Do not use "any maskable"

Give the maskable icon its own entry with "purpose": "maskable". Combining both purposes on one file ("purpose": "any maskable") means the padded image is also used where no mask is applied, so your logo looks too small there. Chrome's DevTools flag this setup.

The web app manifest

The manifest is a small JSON file that tells Android which icons to use and how the installed app should behave.

{
  "name": "Northwind Coffee",
  "short_name": "Northwind",
  "icons": [
    { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" },
    { "src": "/maskable-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
  ],
  "theme_color": "#7c2d12",
  "background_color": "#7c2d12",
  "display": "standalone",
  "start_url": "/"
}
FieldWhat it controls
nameInstall dialog and splash screen
short_nameLabel under the home-screen icon (keep it under about 12 characters)
iconsHome-screen, install and splash icons
theme_colorStatus bar and title bar colour of the installed app
background_colorSplash screen background
displaystandalone hides the browser UI; browser opens a normal tab
start_urlPage opened from the home-screen icon

Link it from every page and serve it with a JSON content type (application/manifest+json or application/json):

<link rel="manifest" href="/site.webmanifest">

The most common manifest bug is invalid JSON — usually a trailing comma after the last icon. Chrome then ignores the whole file silently. Open the manifest URL in your browser to confirm it parses.

Complete head for mobile and desktop

<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#7c2d12">
<meta name="apple-mobile-web-app-title" content="Northwind">

You do not need <link rel="icon"> tags for the 192 and 512 px files — the manifest already declares them. Why each size exists is explained in the favicon sizes guide; which file format goes where is in ICO vs PNG vs SVG.

Troubleshooting mobile icons

SymptomLikely causeFix
Black square behind the iPhone iconTransparent apple-touch-icon.pngRe-export with a solid background
iPhone shows a page screenshotNo Apple touch icon foundAdd the file at /apple-touch-icon.png and the link tag
Android icon on a white circleNo maskable iconAdd a separate "purpose": "maskable" entry
Logo corners cut off on AndroidMaskable icon without enough paddingKeep the mark inside the central 80% circle
Blurry Android iconOnly small icons in the manifestAdd real 192 and 512 px PNGs
No "Install app" optionManifest missing, invalid JSON, or no 192/512 iconsCheck DevTools → Application → Manifest
Old icon still showingIcon cached when the shortcut was createdRemove the shortcut and add it again

Testing workflow

  1. Open /apple-touch-icon.png, /site.webmanifest and each manifest icon URL directly. Every one should load.
  2. Run the homepage through the favicon checker. It checks the Apple touch icon, the manifest link and both manifest sizes.
  3. In desktop Chrome, open DevTools → Application → Manifest to see parsed fields, icon previews and installability warnings.
  4. On a real iPhone, add the site to the home screen and look at it on light and dark wallpapers.
  5. On an Android phone, install the site and check the home-screen icon and the splash screen.

If the desktop tab icon is also missing, start with the favicon not showing guide.

Frequently asked questions

What size is the Apple touch icon?▾
180×180 pixels, saved as a PNG named apple-touch-icon.png and linked with <link rel="apple-touch-icon" href="/apple-touch-icon.png">. iOS scales this one file for every current iPhone and iPad.
What icon sizes does Android Chrome need?▾
Two PNG icons listed in your web manifest: 192×192 for the home screen and 512×512 for the splash screen and install dialog. A separate 512×512 maskable icon is recommended so the icon fills the launcher shape.
Why is my Apple touch icon showing a black background?▾
The PNG has transparent areas. iOS fills transparency with black. Export the icon with a solid background colour, then remove and re-add the home-screen shortcut.
What is a maskable icon?▾
A manifest icon that fills the whole square with background colour and keeps the logo inside a central safe zone, a circle 80% of the icon width. Android crops it to the device icon shape so it looks like a native app icon.
Should I use "purpose": "any maskable" in my manifest?▾
No. Use separate entries: normal icons without a purpose value, and a padded icon with "purpose": "maskable". Combining them makes the padded version appear too small where no mask is applied.
Why does my home-screen icon still show the old version?▾
iOS and Android store the icon when the shortcut is created. Delete the shortcut or uninstall the web app, clear the browser cache, then add it to the home screen again.

Related posts