Android maskable icon generator
Android crops home screen icons into a circle, a squircle or a rounded square. A maskable icon fills the square and keeps the important part in the middle, so no shape ever cuts it off. Nothing is uploaded: every file is made in your browser.
Live preview
Making your icons…
Source
Icon source
Shape
rgb(255, 255, 255) · hsl(0, 0%, 100%)
Style
Background
rgb(124, 58, 237) · hsl(262, 83%, 58%)
Rounding applies to the browser and Android icons. The touch icon and the maskable icon are always full squares.
Device preview
Making your icons…
Your files
Your files appear here as soon as the icon is ready.
Site details and code
Shown when someone installs your site as an app. Up to 45 characters.
Used under the icon on a home screen. Up to 12 characters.
Where you will put the files on your site, such as / or /icons/.
Save this as site.webmanifest next to your icons.
{
"name": "My Android App",
"short_name": "My App",
"icons": [
{
"src": "/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "/icons/maskable-icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#7c3aed",
"background_color": "#7c3aed",
"display": "standalone"
}
Paste these lines inside the <head> of every page.
<link rel="icon" type="image/x-icon" sizes="48x48" href="/icons/favicon.ico"> <link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png"> <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/icons/apple-touch-icon.png"> <link rel="manifest" href="/icons/site.webmanifest"> <meta name="theme-color" content="#7c3aed">
Add this to your root layout (app/layout.tsx).
import type { Metadata, Viewport } from "next";
export const metadata: Metadata = {
icons: {
icon: [
{ url: "/icons/favicon.ico", sizes: "48x48", type: "image/x-icon" },
{ url: "/icons/favicon-16x16.png", sizes: "16x16", type: "image/png" },
{ url: "/icons/favicon-32x32.png", sizes: "32x32", type: "image/png" },
],
apple: [
{ url: "/icons/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
],
},
manifest: "/icons/site.webmanifest",
};
export const viewport: Viewport = {
themeColor: "#7c3aed",
};
Add this to your theme's functions.php, with the icon files in the folder you typed above.
add_action( 'wp_head', 'add_site_favicon_links', 5 );
remove_action( 'wp_head', 'wp_site_icon', 99 );
function add_site_favicon_links() {
?>
<link rel="icon" type="image/x-icon" sizes="48x48" href="<?php echo esc_url( home_url( '/icons/favicon.ico' ) ); ?>">
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo esc_url( home_url( '/icons/favicon-16x16.png' ) ); ?>">
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo esc_url( home_url( '/icons/favicon-32x32.png' ) ); ?>">
<link rel="apple-touch-icon" type="image/png" sizes="180x180" href="<?php echo esc_url( home_url( '/icons/apple-touch-icon.png' ) ); ?>">
<link rel="manifest" href="<?php echo esc_url( home_url( '/icons/site.webmanifest' ) ); ?>">
<meta name="theme-color" content="#7c3aed">
<?php
}
More favicon ideas
How it works
Choose where the icon comes from
Type one to three characters, pick an emoji, choose a simple shape, or drop in your own PNG, JPG, WebP or SVG. Nothing is uploaded; the picture stays in this tab.
Style it
Pick a flat colour or a soft gradient, round the corners, and set the padding. The browser tab icon, the phone home screen icon and the Android icon all update as you change a setting.
Check every file
Each file is listed with its size and what it is for, so you can see that the touch icon fills its whole square and the Android icon keeps your logo inside the safe circle.
Download and paste
Download the package as one ZIP, with a plain-language README and ready-made snippets, or take the files one by one. Upload the icons to the folder you typed under Site details, then paste the lines for your HTML, Next.js or WordPress head.
Questions about a Android maskable icon
How do I make a Android maskable icon?
The page opens with a square; change it, the colours, the rounding and the padding as you like, and every file updates at once. Then open Site details and code, choose Manifest and copy it. The code already uses the folder /icons/. Use a solid background that fills the corners and a simple mark, then check the circle, squircle and rounded previews to see it stays whole.
How big is the safe zone of a maskable icon?
A circle with a radius of 40 percent of the side, so the middle 80 percent. Anything outside it may be cropped, which is why the logo is placed well inside.
Where do I put the files for a Android maskable icon?
The manifest entry marks the file as maskable and points at the folder you chose. Keep both in the same folder so the path in the manifest stays correct.
Is anything uploaded when I make a Android maskable icon?
No. The icons for your Android maskable icon are drawn by your own browser from the settings you pick, so nothing is sent to a server, and the page keeps working offline once it has loaded.
More free tools
View all toolsAbout these tools
Small tools, made by Sifency
Sifency is a small studio that builds themes, plugins and web apps. These tools began as the things we kept needing ourselves, so we tidied them up and left them open for everyone. There is nothing to sign up for.