Electron App Icons from One SVG

By the Axialis Engineering team ·

Electron App Icons from One SVG

Shipping an Electron app means producing three different icon containers — a Windows .ico, a macOS .icns, and a folder of Linux PNGs — each with its own required sizes. Instead of running three separate exporters, you can generate all three from a single SVG master in one pass with IconVectors and reference them directly from your electron-builder config.

Recommended sizes for desktop app icons

One SVG master exported into a Windows ICO, a macOS ICNS and a folder of Linux PNGs, which electron-builder picks per platform icon.svgmaster, 1024 baseWindowsbuild/icon.ico16 24 32 48 64 128 256macOSbuild/icon.icns16 32 64 128 256 512 1024Linuxbuild/icons/*.png16 24 32 48 64 128 256 512electron-builderreads the build/folder and picksthe container foreach platform
Three platforms, three containers, one source. The ICO and the ICNS each pack their size ladder into one file; Linux takes loose PNGs. Put them under build/ and electron-builder picks the right one for each target without further configuration.

1 - Prepare your SVG master

Open an existing icon with File → Open... (Ctrl+O) or start a fresh one with New Icon (Ctrl+N). Keep the artwork centered with a little padding and favor a simple silhouette: anything thinner than a couple of pixels disappears once the icon is rendered at 16×16. Save a lean master with File → Export → Export Minified (Shift+Ctrl+M) so the same source drives every output.

A camera icon SVG open on the IconVectors canvas at 600% zoom with a live pixel preview
The pixel preview shows how the master reads at small sizes before you export.

2 - Export ICO, ICNS, and PNG in one pass

Open File → Export → Export to Multiple Bitmaps (Shift+F3), then pick a destination folder and a base filename such as app-icon.

The Export Icon to Multiple Bitmaps dialog in IconVectors with file formats and pixel sizes selected

3 - Wire the icons into electron-builder

Place your exported files under a build folder (for example, build/icons/) and reference them in the build section of package.json.

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "dist/main.js",
  "build": {
    "appId": "com.example.myapp",
    "directories": { "buildResources": "build" },
    "mac":   { "icon": "build/icons/app-icon.icns" },
    "win":   { "icon": "build/icons/app-icon.ico" },
    "linux": { "icon": "build/icons/png" }   // folder of PNGs (16..512)
  }
}

Note: On Linux you can point linux.icon at a single high-res PNG (512 px) and let the packager resize, but keeping the full PNG folder gives desktop environments an exact match at each size and avoids rescaling blur.

4 - Verify on each platform

Troubleshooting

Related guides

Start Making SVG Icons Today with IconVectors

Download the fully-functional 30‑Day Free Trial and unlock your icon design workflow.

Version 2.10 for Windows - October 6, 2026. macOS and Linux: version 2.00 available now, 2.10 coming soon.