PWA icons and web app manifest
A web app that can be installed needs more than a tab icon. This makes the 192 and 512 pixel icons, an Android maskable icon and the manifest that names them, all inside a tidy icons folder. Nothing is uploaded: every file is made in your browser.
Live preview
Making your icons…
Source
Icon source
Shape
rgb(20, 184, 166) · hsl(173, 80%, 40%)
Style
Background
rgb(11, 18, 48) · hsl(229, 63%, 12%)
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 Web 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": "#0b1230",
"background_color": "#0b1230",
"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="#0b1230">
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: "#0b1230",
};
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="#0b1230">
<?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 PWA app icons
How do I make a PWA app icons?
The page opens with a hexagon; 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/. Link the manifest from every page, then open Chrome's developer tools, Application, Manifest, to see the icons listed and any warning about them.
Does the manifest make my site installable by itself?
Not alone. Browsers have their own install rules, and some need a start address or a service worker as well. This manifest covers the name, colours and icons part.
Where do I put the files for a PWA app icons?
The folder is set to /icons/, which keeps the manifest and every icon together. If you change it, the paths inside the manifest change with it.
Is anything uploaded when I make a PWA app icons?
No. The icons for your PWA app icons 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.