PWA icon sizes and the web app manifest
A Progressive Web App declares its icons in a web manifest. You really only need two PNG sizes plus a maskable version — here's the modern, minimal set and why the “maskable” one matters.
The core sizes
- 192×192 — home-screen icon on Android.
- 512×512 — splash screen and high-density displays.
- Maskable 512×512 — same art with safe padding so platforms can crop it into circles, squircles, etc.
Manifest example
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
{ "src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
]
What is a maskable icon?
Android and other platforms crop app icons into different shapes. A maskable icon keeps its important content inside a central “safe zone” (about 80% of the canvas) with a full-bleed background, so it never gets clipped awkwardly. Test yours with a maskable-icon preview tool.
Tip: an SVG favicon can sit alongside these PNGs — browsers use the SVG for tabs and the manifest PNGs for installs.
Frequently asked questions
How many icon sizes does a PWA need?
Two PNGs (192 and 512) plus a maskable 512 cover the modern requirement. More sizes are optional.
What does purpose:maskable do?
It tells the OS the icon has safe padding and can be cropped to any shape without losing key detail.