If you've ever pinned a web app to your Android home screen only to see your beautiful logo shrunk into a tiny, sad postage stamp inside a white circle, you've encountered the 'white box of shame.' This happens because Android uses adaptive icons, which can be circles, squares, or squircles depending on the device theme. If you don't provide a maskable icon favicon, the system forces your icon into a safe container, usually making it look amateurish.
In 2026, users expect web apps to feel indistinguishable from native ones. Look at Spotify or Slack; their icons fill the entire shape perfectly, regardless of whether the user has a Samsung, Pixel, or OnePlus. They achieve this by using the maskable purpose in their web app manifest. We're going to fix your icon today so it looks just as polished.
Prerequisites for a Professional Setup
Before touching any code, you need a source image. I strongly recommend starting with a 512x512 pixel PNG. While you might be tempted to use an SVG (which we love for standard tabs — see our SVG favicon guide), the Android manifest still handles PNGs most reliably for home screen placement. Your image should have a solid background color; transparency is actually the enemy here because the OS will fill it with whatever it wants.
Step 1: The 80% Safe Zone Rule
The biggest mistake developers make is putting important design elements right at the edges. A maskable icon is essentially a 'bleed' image. The system will mask (cut) the edges to fit a circle or a squircle. To ensure your logo doesn't get decapitated, you must keep all critical content within the inner 80% of the image. Imagine a circle in the middle of your square; if your logo fits in that circle, you're safe.
Step 2: Generate Your Assets
You don't need to manually crop five different sizes. You can use Mzu favicondl to ensure your base image is correctly formatted, but for the specific 'maskable' metadata, you need to ensure the file itself has enough padding. (I usually just add a 10% margin of the background color around my logo in Figma before exporting). If you're unsure about your current icon's health, check out our favicon audit guide to see how it renders across platforms.
Step 3: Update Your manifest.json
This is where the magic happens. You need to tell the browser that this specific icon is designed to be masked. Without the 'purpose': 'maskable' attribute, the browser treats it like a regular icon and adds that dreaded padding. Here is the exact structure you need in your manifest.json:
Notice the 'purpose': 'any' for the smaller icon. This allows the browser to use it for non-masked contexts, like the task switcher. The 'maskable' entry is what Android will grab for the home screen. If you're working in a specific framework, our Next.js favicon guide covers how to integrate this into modern metadata files.
Step 4: Verification with DevTools
Don't just deploy and hope for the best. Open your site in Chrome on your desktop, hit F12, and go to the Application tab. On the left, click Manifest. Scroll down to the icons section and look for the 'Show only the minimum safe area for maskable icons' checkbox. If your logo stays fully visible when that circle appears, you've nailed it. If it gets cut off, go back to Figma and shrink your logo a bit more.
Common Pitfalls to Avoid
The most frequent face-palm moment is using a transparent background for a maskable icon. When the OS masks a transparent PNG, it often fills the background with a default grey or white that clashes with your brand. Always use a solid background color that matches your brand identity. Also, don't forget to link your manifest in your HTML <head> using <link rel='manifest' href='/manifest.json'>. It sounds obvious, but it's the first thing we check when an icon isn't showing up.
Another tip: don't overcomplicate the design. A favicon is tiny. If you have a complex logo, use a simplified version for the maskable icon. We talk more about this in our favicon vs logo comparison. Your goal is recognition, not showing off high-resolution gradients that nobody can see on a 2-inch screen.
Setting up a maskable icon favicon is one of those small 'quality of life' improvements that separates the hobbyists from the pros. It takes ten minutes but ensures your brand looks solid on the millions of Android devices out there. If you've finished this and realized your desktop icon is still a mess, head over to Mzu favicondl to generate a clean set of standard icons to match your new mobile ones.
¿Alguna vez has anclado una aplicación web a la pantalla de inicio de tu Android y has visto cómo tu logo se encogía hasta convertirse en un pequeño 'sello' dentro de un círculo blanco? Eso es lo que llamamos la 'caja blanca de la vergüenza'. Ocurre porque Android usa iconos adaptativos que cambian de forma según el tema del dispositivo. Si no proporcionas un maskable icon favicon, el sistema fuerza tu icono dentro de un contenedor seguro, haciendo que parezca poco profesional.
En 2026, los usuarios esperan que las PWA se sientan como apps nativas. Fíjate en Spotify o Slack; sus iconos llenan toda la forma perfectamente. Ellos logran esto usando el propósito maskable en su manifiesto. Vamos a arreglar tu icono hoy mismo para que luzca igual de pulido.
Requisitos previos para una configuración pro
Antes de tocar código, necesitas una imagen fuente. Recomiendo un PNG de 512x512 píxeles. Aunque amamos los SVG para las pestañas del navegador (mira nuestra guía de favicon SVG), el manifiesto de Android sigue siendo más fiable con PNGs para la pantalla de inicio. Tu imagen debe tener un fondo de color sólido; la transparencia es tu enemiga aquí porque el sistema la rellenará con cualquier color.
Paso 1: La regla del 80% de zona segura
El error más común es poner elementos importantes en los bordes. Un icono maskable es básicamente una imagen con 'sangrado'. El sistema recortará los bordes para ajustarlo a un círculo o cuadrado. Para que tu logo no quede 'decapitado', mantén todo el contenido crítico dentro del 80% central de la imagen. Si tu logo cabe en un círculo imaginario en el centro, estás a salvo.
Paso 2: Genera tus recursos
No necesitas recortar cinco tamaños a mano. Puedes usar Mzu favicondl para asegurar que tu imagen base esté bien formateada, pero para el icono maskable, asegúrate de añadir un margen del 10% del color de fondo en Figma antes de exportar. Si dudas de tu icono actual, revisa nuestra guía de auditoría de favicons.
Paso 3: Actualiza tu manifest.json
Aquí es donde ocurre la magia. Debes decirle al navegador que este icono está diseñado para ser recortado. Sin el atributo 'purpose': 'maskable', el navegador le añadirá ese horrible borde blanco. Aquí tienes el código exacto:
El propósito 'any' se usa para el selector de tareas, mientras que 'maskable' es el que Android usará para la pantalla de inicio. Si usas frameworks modernos, nuestra guía de favicon para Next.js te ayudará con la integración.
Paso 4: Verificación con DevTools
No despliegues a ciegas. Abre tu sitio en Chrome, pulsa F12 y ve a la pestaña Application. Haz clic en Manifest y busca la casilla 'Show only the minimum safe area for maskable icons'. Si tu logo se ve completo dentro del círculo, lo has logrado.
Errores comunes a evitar
El error más frecuente es usar un fondo transparente. Cuando el sistema recorta un PNG transparente, suele rellenar el fondo con un gris o blanco genérico que arruina tu marca. Usa siempre un fondo sólido. Y no olvides enlazar tu manifiesto en el <head>: <link rel='manifest' href='/manifest.json'>.
Configurar un maskable icon favicon es uno de esos pequeños detalles que separan a los aficionados de los profesionales. Solo toma diez minutos pero asegura que tu marca se vea impecable en millones de dispositivos Android. Si ya terminaste con el móvil, usa Mzu favicondl para generar un set de iconos estándar para escritorio que combine con tu nueva imagen móvil.
안드로이드 홈 화면에 웹 앱을 추가했는데, 예쁜 로고가 하얀 원 안의 아주 작은 '우표'처럼 변해버린 적이 있나요? 이것이 바로 개발자들이 흔히 겪는 '하얀 상자의 굴욕'입니다. 안드로이드는 기기 테마에 따라 아이콘을 원형, 사각형, 혹은 모서리가 둥근 사각형으로 자르는 '적응형 아이콘' 시스템을 사용합니다. 이때 maskable icon favicon을 설정하지 않으면 시스템이 안전을 위해 아이콘 주위에 강제로 여백을 채워버립니다.
2026년의 사용자들은 PWA가 네이티브 앱과 똑같이 느껴지기를 원합니다. Spotify나 Slack을 보세요. 어떤 폰에서도 아이콘이 화면을 꽉 채우며 완벽하게 어우러집니다. 그 비결은 Web App Manifest의 maskable 속성에 있습니다. 오늘 여러분의 아이콘을 프로답게 수정해 봅시다.
사전 준비: 전문가를 위한 설정
코드를 만지기 전에 소스 이미지가 필요합니다. 512x512 픽셀의 PNG 파일을 권장합니다. SVG도 훌륭하지만(자세한 내용은 SVG favicon 가이드 참조), 안드로이드 매니페스트에서는 PNG가 가장 안정적으로 작동합니다. 가장 중요한 점은 배경을 단색으로 채워야 한다는 것입니다. 투명 배경을 사용하면 OS가 임의의 색상을 채워버려 디자인이 망가질 수 있습니다.
1단계: 80% 안전 영역의 법칙
가장 흔한 실수는 로고를 이미지 끝까지 꽉 채우는 것입니다. 마스커블 아이콘은 일종의 '여유분'이 있는 이미지입니다. 시스템이 가장자리를 깎아내기 때문에, 중요한 로고는 이미지 중앙의 80% 영역 안에 배치해야 합니다. 이미지 정중앙에 원을 그렸을 때 그 안에 로고가 다 들어온다면 합격입니다.
2단계: 에셋 생성
여러 사이즈를 일일이 만들 필요는 없습니다. Mzu favicondl을 사용하여 기본 아이콘 형식을 맞춘 뒤, Figma 같은 툴에서 로고 주변에 10% 정도의 배경색 여백을 주고 내보내기 하세요. 현재 아이콘 상태가 궁금하다면 아이콘 감사 가이드를 통해 확인해볼 수 있습니다.
3단계: manifest.json 업데이트
이제 브라우저에게 이 아이콘은 잘려도 괜찮은 디자인이라고 알려줘야 합니다. 'purpose': 'maskable' 속성이 없으면 브라우저는 이를 일반 아이콘으로 취급하여 하얀 테두리를 추가합니다. manifest.json에 다음과 같이 작성하세요.
'purpose': 'any'는 멀티태스킹 창 등 일반적인 용도이며, 'maskable'이 안드로이드 홈 화면용입니다. Next.js를 사용 중이라면 Next.js favicon 가이드에서 더 자세한 설정법을 확인하세요.
4단계: 개발자 도구로 검증
배포하기 전에 PC 크롬에서 확인하세요. F12를 눌러 Application 탭의 Manifest 메뉴로 갑니다. 아이콘 섹션에서 'Show only the minimum safe area for maskable icons'를 체크해 보세요. 로고가 잘리지 않고 원 안에 잘 보인다면 성공입니다.
자주 하는 실수
투명 PNG를 사용하는 것이 가장 큰 실수입니다. OS가 배경을 임의의 회색이나 흰색으로 채워 브랜드 가치를 떨어뜨립니다. 반드시 브랜드 컬러 배경을 넣으세요. 또한 HTML <head>에 <link rel='manifest' href='/manifest.json'>를 연결했는지 꼭 확인하세요.
마스커블 아이콘 설정은 단 10분이면 충분하지만, 앱의 전문성을 결정짓는 아주 중요한 디테일입니다. 모바일 아이콘을 해결했다면, 이제 Mzu favicondl에서 데스크톱용 표준 아이콘 세트도 깔끔하게 생성해 보세요.
デプロイしてスマホで確認する前に、PCのChrome DevToolsを使いましょう。F12を押し、Application タブから Manifest を選択します。アイコンセクションにある「Show only the minimum safe area for maskable icons」にチェックを入れ、ロゴが欠けていなければ完璧です。
不要盲目上线。在电脑端 Chrome 打开你的网站,按 F12 进入开发者工具,找到 Application 选项卡,点击左侧的 Manifest。向下滚动到图标部分,勾选 “Show only the minimum safe area for maskable icons”。如果你的 Logo 在那个圆圈里显示完整,那就大功告成了。
避坑指南
最常见的坑就是使用透明背景。当系统裁剪透明 PNG 时,背景往往会变成默认的灰色或白色,非常难看。务必使用符合品牌色的实色背景。另外,别忘了在 HTML 的 <head> 中引入 manifest:<link rel='manifest' href='/manifest.json'>。