PWA / install
PWA Icon Generator — 192px, 512px and Maskable Icons
A PWA icon generator must cover Chromium’s install minimums: 192×192 and 512×512 icons with purpose any, plus separate maskable icons so Android can crop to circle or squircle without cutting your logo.
This tool builds those sizes, draws a safe-zone preview, and exports a web app manifest you can drop into Next.js, Vite, or any static host.
Sizes & formats
| Size | Use | Notes |
|---|---|---|
| 192×192 | manifest purpose: any | Install minimum |
| 512×512 | manifest purpose: any | Install minimum |
| 192 / 512 maskable | purpose: maskable | Safe zone ≈ 80% center |
| 384×384 | High-DPI splash / shortcuts | — |
| 1024×1024 | Master / store source | — |
Generate now
Focused generator for this tool only — files stay on your device. For every pack (ICNS, Expo, Flutter, Brand Kit, Store), open the full Launch Kit.
Focused tool
PWA / maskable icons
Live previews
Tap any tile to enlarge
Drop a logo to preview
Favicon, iOS, Android shapes, maskable, splash, OG — all live from one file.
How it works
- 1
Upload the logo
Prefer SVG or a sharp PNG on a transparent background.
- 2
Check the safe zone
Open the Maskable tab and keep the mark inside the dashed circle.
- 3
Export + manifest
Download icons and drop manifest.webmanifest next to your site root.
Framework setups
FAQ
- Why do I need both any and maskable icons?
- purpose any is for browsers that show the full square. purpose maskable is padded so OEMs can apply a circular or rounded mask without clipping important artwork.
- What is the maskable safe zone?
- Keep critical logo content inside the central 80% of the canvas (a circle with radius 40% of the width). Outside that, Android may crop.
- Do 192 and 512 satisfy installability?
- Chromium’s installability criteria require at least 192 and 512 PNG icons declared in the web app manifest. Maskable is strongly recommended for Android.
- Can I generate a full web app manifest?
- Yes. The export includes manifest.webmanifest with name, theme_color, background_color, and icon entries for any and maskable.