Definition
Maskable icons
A maskable icon is declared with "purpose": "maskable" in the manifest icons array and must fill the entire square canvas with no transparent padding, keeping important content inside the central 80% "safe zone". Android then applies its own mask shape (circle, squircle, rounded square) on top without cutting off the logo.
A typical entry looks like {"src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable"}, kept separate from the plain "any" icon used on platforms without adaptive-icon masking.
Icons designed for "any" but reused as "maskable" usually look wrong once masked, because logos placed near the edges get cropped by whichever shape the launcher applies — this is the single most common icon bug reported after PWA installs.
You can preview how an icon survives circular, squircle and rounded-square masks with the community tool at https://maskable.app before shipping.
iOS and desktop Chromium ignore the maskable purpose and use the "any" icon instead, so both variants should be present in the icons array for cross-platform installs.