PWA · Web app manifest

PWA Icons and Maskable Icons: Sizes and Manifest

Short answer

Your manifest needs a 192×192 and a 512×512 icon for Chrome to offer install. Add a separate 512×512 maskable icon with "purpose": "maskable", keeping the logo inside a circle whose radius is 40% of the width. Don't mark one image as both any and maskable.

Checked against web.dev: Install criteria, web.dev: Maskable icons and MDN: manifest icons in October 2026.

Manifest

manifest.webmanifest
{
  "name": "My App",
  "short_name": "MyApp",
  "icons": [
    { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" },
    { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" },
    { "src": "/icon-mask.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" }
  ],
  "display": "standalone"
}
<head>
<link rel="manifest" href="/manifest.webmanifest">

Sizes and purposes

IconSizepurpose
Standard192×192any (default)
Standard512×512any (default)
Maskable512×512, logo inside a 409 px circlemaskable
Monochrome (optional)Anymonochrome

With only 192 and 512, Chrome scales them for each device. Always include PNGs; SVG manifest icons don't update after install.

Maskable safe zone

  • Keep the important part in a centered circle with a radius of 40% of the width (409 px across on a 512 icon).
  • Fill the whole square with your background color. Up to the outer 10% may be cropped.
  • Preview in Chrome DevTools → Application → Manifest → Icons, with Show only the minimum safe area for maskable icons.
  • Or test at maskable.app.

PWA icon problems and fixes

You seeWhyFix
No install promptMissing 192 or 512 iconAdd both to icons
Maskable icon croppedLogo outside the 40% radius circleShrink the logo; fill the background
Icon shows with a white borderNo maskable icon, Android adds a backdropAdd a maskable icon
Icon tiny inside a circleOne image used as any maskableShip separate any and maskable files
Icon didn't change after updateInstalled icons update slowly or not at all for SVGUse PNGs and new file names

FAQ

What icon sizes does a PWA need?

192×192 and 512×512 at minimum, plus a 512×512 maskable icon.

What is a maskable icon?

An icon with a safe zone, so Android can crop it to a circle, squircle or other shape without cutting the logo.

Can I use `any maskable` on one icon?

web.dev advises against it; the icon ends up either cropped or padded. Use separate files.

Can PWA icons be SVG?

Yes, with sizes: "any", but add PNGs too; installed SVG icons don't update.