Submit an extension

↑↓ move · ↵ open · Tab filter · Esc close

How-to guide

Chrome Extension Icon Sizes and Listing Image Specs

How-to

Chrome Extension Icon Sizes and Listing Image Specs

On this page
  1. The short answer
  2. What icon sizes does a Chrome extension need?
  3. Where does Chrome show each icon size?
  4. How do you add icons to manifest.json?
  5. How do you set or change the toolbar icon?
  6. What images does the Chrome Web Store listing need?
  7. How do you design an icon that stays readable at 16 pixels?
  8. How do you export all four sizes from one design?
  9. Why is my extension icon blurry or missing, and where can you get ideas?
  10. Frequently asked

The short answer

A Chrome extension needs PNG icons at 16, 32, 48 and 128 pixels, declared in the icons field of manifest.json. Chrome uses them for the toolbar, menus, the extensions page and the Web Store. The store listing also wants screenshots at 1280x800 and a 440x280 small promo tile.

What icon sizes does a Chrome extension need?

Provide four square PNG files: 16x16, 32x32, 48x48 and 128x128 pixels. Google's docs treat the 128 px icon as the one you must always supply, and recommend the 48 px one too; the 16 px and 32 px files are what keep the toolbar and small menus sharp.

The 128 px file is the important one, because it is what people see when they install the extension. The smaller sizes carry the same artwork, redrawn so they stay readable in tiny spaces. Chrome's docs say you may supply other sizes and Chrome will use the best fit. Google can change the guidance, so check the official manifest icons reference and the Web Store image guide before you submit.

Extension icon files and where they appear
Size (px)Main useNotes
16 x 16Favicon on extension pages, context menu icon, standard toolbar sizeNeeds the simplest artwork
32 x 32Windows computers often require this size; also useful on high-density screensGoogle's docs list it for Windows
48 x 48The chrome://extensions management pageRecommended in the docs
128 x 128Installation and the Chrome Web StoreAlways required

If you only want to browse how other extensions present themselves, our developer tools category shows a spread of real listings. Looking at a dozen icons side by side is a fast way to see which styles survive at small sizes.

Where does Chrome show each icon size?

Each size has a job: 16 px is for tiny UI, 32 px for sharp toolbars, 48 px for the management page and 128 px for install and store screens. Knowing that tells you where to spend design effort.

16 px
The favicon on an extension's own pages and the context menu icon, which is also the standard toolbar size. Expect a lot of detail to disappear here.
32 px
Windows computers often require this size, according to Chrome's docs. It also gives high-density displays a sharper file than a stretched 16 px one.
48 px
Each card on the chrome://extensions page. Open the page to see how your icon sits beside the name and description.
128 px
Installation and your Chrome Web Store listing. Everything else in your branding starts from this file.

Chrome also shows the toolbar icon in the puzzle-piece Extensions menu and, once pinned, directly in the toolbar. Pinning is up to the user, so your icon has to be recognisable when it sits among twenty others.

Density matters on Mac and Windows

Retina Macs and scaled Windows displays render the toolbar at two times or more. That is why supplying 32 px alongside 16 px helps, even though the toolbar icon is 16 device-independent pixels wide on screen.

How do you add icons to manifest.json?

Add an icons object to manifest.json that maps each size to a file path, then reload the extension. Paths are relative to the extension's root folder, not to the manifest.

{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png"
    }
  }
}
  1. Create an images folder inside your extension directory and put the four PNGs in it.
  2. Add the icons object to manifest.json as shown above.
  3. Open chrome://extensions and switch on Developer mode in the top right.
  4. Click Load unpacked and pick your extension folder. If it is already loaded, click the reload arrow on its card.
  5. Check the 48 px icon on the card and the toolbar icon in the puzzle-piece menu.

If you have not turned on the toggle before, our walkthrough on enabling Developer mode in Chrome covers it, including managed browsers where the switch is locked. Use PNG files: Chrome recommends PNG for its transparency support, and SVG and WebP are not supported for icons in the manifest.

How do you set or change the toolbar icon?

The toolbar icon comes from action.default_icon in the manifest, and you can swap it at runtime with chrome.action.setIcon. Chrome's docs recommend always including action and default_icon, and if an extension supplies no icon at all, Chrome shows a generic one built from the first letter of its name.

Runtime changes are useful for state, such as a grey icon when the extension is off for the current site and a coloured one when it is active. You pass a path or a set of size-to-path entries, and Chrome swaps the image right away. For a small text signal, a badge is lighter than shipping extra icons.

chrome.action.setIcon({
  path: {
    "16": "images/icon-16-active.png",
    "32": "images/icon-32-active.png"
  }
});

chrome.action.setBadgeText({ text: "ON" });
  • Keep an inactive and an active version of the same silhouette, so the shape stays recognisable.
  • Do not rely on colour alone; a greyed icon on a dark toolbar can vanish.
  • Test on both light and dark Chrome themes, since the toolbar background changes.
  • Use the badge for counts or short status text instead of redrawing icons dynamically.

Dark mode is a design problem, not a manifest one

The manifest does not switch icons by theme. Pick artwork with enough contrast on both light and dark backgrounds, for example a solid shape with a thin light edge, rather than pure black or pure white.

What images does the Chrome Web Store listing need?

You upload a 128 px store icon, one to five screenshots, and a small promo tile. A marquee promo tile is optional. These are the sizes in Google's current image guide, but confirm them in the Developer Dashboard when you submit.

Chrome Web Store listing image specs (from Google's image guide)
AssetSize (px)Required?Notes
Store icon128 x 128 (artwork 96 x 96)YesGoogle asks for 16 px of transparent padding per side, and artwork that works on light and dark backgrounds
Screenshots1280 x 800 (or 640 x 400)At least one, up to fiveSquare corners and no padding (full bleed)
Small promo tile440 x 280YesGoogle advises avoiding text and checking it still works at half size
Marquee promo tile1400 x 560OptionalSame advice: avoid text, keep it readable when shrunk

Screenshots should show the extension working on a real page, not a flat logo. Use the full 1280 x 800 frame with square corners and no padding. Keep any text large enough to read when the image is shown smaller.

The promo tiles are your banner ads inside the store. Use one clear visual, follow Google's advice to avoid text, and skip tiny screenshots. If you also make YouTube-style graphics, the free YouTube thumbnail size tool is a useful reference for that other format.

How do you design an icon that stays readable at 16 pixels?

Start with one bold shape and one or two colours, then redraw it for each size instead of just shrinking it. A 128 px logo with fine lines turns to mush at 16 px.

  • Use a single silhouette that is recognisable in a second, not a detailed scene.
  • Avoid text and thin strokes; letters below 16 px are unreadable.
  • Give the icon a distinct outline or background shape so it does not blend into the toolbar.
  • Limit your palette. Two strong colours read better than gradients at small sizes.
  • Align shapes to the pixel grid at 16 and 32 px to prevent fuzzy edges.
  • Keep a little breathing room at the edges of the 128 px file so it does not look cramped in the store.

Colour choice matters more than most people expect. Pick a brand colour with the colour picker tool, then check its contrast on a white and a near-black background. If the icon fails either, add an outline.

Do not imitate Chrome or another brand

Icons that copy the Chrome logo, Google product marks or a well-known extension can be flagged as misleading during store review. Design something original for the shape and colour.

How do you export all four sizes from one design?

Draw a vector master, export it at each size as PNG, then hand-tune the 16 px and 32 px versions. Most design tools can export several sizes in one pass.

  1. Create a square artboard in a vector tool such as Figma, Illustrator or Inkscape, with the artwork inside a safe margin.
  2. Duplicate it four times and set the sizes to 16, 32, 48 and 128 pixels.
  3. Export each as PNG with a transparent background.
  4. Zoom to 100 percent and inspect the 16 px and 32 px files. Nudge shapes to the pixel grid where edges look soft.
  5. Name the files consistently, such as icon-16.png, and drop them into your images folder.
  6. Reload the extension and compare the result to the list of sizes in the manifest.

If you would like a starting point, extensions that save images from the web can help you gather references and existing assets, covered in the last section. You should only reuse artwork you have the rights to, so treat downloaded images as inspiration, not raw material.

Why is my extension icon blurry or missing, and where can you get ideas?

A missing icon is nearly always a wrong path, and a blurry icon is nearly always a stretched file. Check those two before anything else.

  • Grey puzzle-piece placeholder: the path in manifest.json is wrong or the file is not PNG. Paths are relative to the root folder.
  • Blurry toolbar icon: you supplied only one small size, so Chrome may stretch it on a high-density display. Add 32 px.
  • Old icon still shows after an edit: click the reload arrow on chrome://extensions.
  • Manifest error on load: a trailing comma or missing quote; a JSON viewer helps you spot it.
  • Store rejection for images: wrong dimensions, misleading artwork or screenshots that do not show the actual product.

For references, browse how existing extensions present themselves. The image downloader hub lists tools that save images from pages, and the developer hub collects tools for people who build extensions. Use them for research and for grabbing assets you are allowed to use.

Handy tools while you build listing images

For a broader view of the author-side tooling, AI tools for developers covers assistants that can help you write the manifest and background scripts.

Extensions mentioned in this guide

Frequently asked

What size should a Chrome extension icon be?

Supply 16, 32, 48 and 128 pixel square PNG files. The 128 px one is required and used for installation and the Chrome Web Store.

Do I need all four icon sizes for a Chrome extension?

Only 128 px is always required, and Google recommends 48 px as well. Providing all four avoids blurry toolbar and Windows icons.

Can I use SVG for a Chrome extension icon?

No. Chrome's docs say SVG is not supported for icons declared in the manifest, and PNG is recommended. Keep your SVG as the design master and export PNGs.

What is the Chrome Web Store screenshot size?

Google's image guide asks for 1280 x 800 pixels, with 640 x 400 also accepted, and allows one to five screenshots. Check the Developer Dashboard for the current rule.

What size is the small promo tile for the Chrome Web Store?

440 x 280 pixels. It is required, and Google advises avoiding text on it.

What is the marquee promo tile size?

1400 x 560 pixels. It is optional.

Where do I put the icons in my extension folder?

Any folder works, such as images, as long as the paths in manifest.json match. Paths are relative to the extension's root directory.

How do I change the extension icon dynamically?

Call chrome.action.setIcon with a path or size-to-path map from your service worker or popup. For a short text status, use chrome.action.setBadgeText instead.

Why is my Chrome extension icon not showing?

The most likely cause is a wrong file path or a non-PNG file in manifest.json. Fix the path, then click reload on the chrome://extensions card.

Does the icon need a transparent background?

Chrome recommends PNG for its transparency support, and Google asks for 16 px of transparent padding on the 128 px store icon. A solid background shape is fine if it is part of the design.

Can I see how an extension icon looks in the toolbar before publishing?

Yes. Load the folder with Load unpacked on chrome://extensions with Developer mode on, then pin it from the puzzle-piece menu.

Are there free tools to get icon ideas for a Chrome extension?

You can browse existing listings and save reference images with an image downloader extension. Use them for inspiration only and respect copyright.

Sources

  1. Chrome for Developers: Manifest icons
  2. Chrome for Developers: Supplying images in the Chrome Web Store
  3. Chrome for Developers: Configure extension icons
  4. Chrome for Developers: chrome.action API