A practical guide for extension authors who want the Marketplace icon, README visuals, screenshots, badges, and banner color to support the same honest developer-tool promise.
VS Code Marketplace Extension Icon Optimization means preparing a rights-safe PNG icon, referencing it correctly in package.json, and checking how it looks beside the extension name, publisher, description, banner color, badges, and README images. The icon should explain the extension quickly without pretending to be an official Microsoft or Visual Studio Code product.
A Marketplace extension icon is different from product icon theme glyphs, file icon theme previews, Activity Bar icons, README screenshots, and demo GIFs. The Marketplace icon is a listing asset. It appears in extension cards and details pages, so it needs a simple silhouette, strong contrast, clean edges, and a truthful relationship to the extension's actual function.
icon as the path to an icon of at least 128x128 pixels, with 256x256 for Retina screens. It also shows galleryBanner.color and galleryBanner.theme in the manifest. See the VS Code extension manifest reference.Separate the Marketplace icon from other extension visuals
The extension icon should be treated as a small developer-facing trust signal. A formatter can use a clean geometric mark. A linter can use a simple check or code-shape concept. A theme can use a color system that still works in a small square. A snippet pack can use a compact symbol instead of lines of unreadable sample code.
README images have a different job. They can show editor screenshots, command output, configuration examples, or theme previews, but they should not contain secrets, internal repository names, personal data, or fake performance claims. Badges should point to trusted services and reflect real project status, not invented verification.
| VS Code Marketplace visual role | Where it appears | What it should communicate | Main quality or policy risk | What to preview before publishing |
|---|---|---|---|---|
| Marketplace extension icon | Extension cards, search results, and detail pages | The extension's function or brand in one small square | Blur, tiny text, copied logos, or fake official styling | 128x128 and 256x256 views on light and dark surfaces |
| PNG package icon | File referenced by package.json | A packaged asset that resolves inside the VSIX | Wrong relative path or excluded file | VSIX contents and manifest path |
| Marketplace banner color | Listing header area | A background that supports the icon | Low contrast or clashing color | galleryBanner.color beside the final icon |
| README screenshot | Marketplace details body and repository README | Real extension behavior in context | Private code, fake UI, broken remote image URL | Rendered README on Marketplace and repository |
| Trusted badge | README or package metadata | Real build, version, license, or marketplace status | Unsupported SVG badge or fake status | Badge source, HTTPS resolution, and honest label |
Use official size and package rules as the floor
The official 128x128 minimum is the floor, not the design target. A 256x256 PNG is usually safer because high-density screens and scaled Marketplace cards can reveal fuzzy edges. Build the icon from an even larger source if needed, then export a clean PNG. Avoid thin outlines, tiny words, dense gradients, and mascots with facial details that vanish when scaled down.
package.json may not be SVG, README and changelog image URLs should resolve over HTTPS, and certain SVG badges are allowed only from trusted providers. See VS Code publishing extensions guidance.Keep brand and publisher trust clean
Do not copy the VS Code icon, Microsoft logo, competing extension logos, language marks, framework logos, or product badges unless you have the rights to use them. Do not make an icon that suggests Microsoft endorsement or a verified publisher badge unless that status is real. Microsoft brand guidance warns against using Microsoft brand assets in ways that imply endorsement or using Microsoft logos as app icons without permission.
The listing copy should match the icon promise. If the icon suggests testing, the extension should actually test something. If the screenshots show a dashboard, the extension should provide that view. If the README includes a badge, the badge should come from a real service and represent current project status.
Marketplace-ready checklist
- Export a clean PNG icon at 128x128 or larger, with 256x256 available for sharper displays.
- Reference the icon with a correct relative path in
package.json. - Confirm the icon file is included in the packaged VSIX.
- Choose
galleryBanner.colorand theme values that keep the icon readable. - Check README images, badges, repository, license, changelog, and support links.
- Remove copied logos, fake badges, misleading screenshots, private data, and unsupported claims.
FAQs About VS Code Extension Icon Prep
It is the process of designing, exporting, packaging, and previewing the extension icon and related listing visuals so the Marketplace page looks clear, honest, and professional.
Follow the current VS Code manifest guidance: at least 128x128 pixels, with 256x256 recommended for Retina screens.
Use PNG for the extension icon referenced in package.json, because VS Code publishing guidance says that package icon may not be SVG.