Generate favicons, PWA icons, mobile app icon sets, Windows tiles, and browser extension assets entirely in your browser. No uploads, no server, no tracking. Works offline.
- Multiple input modes - upload an image, paste from clipboard, create from text/letter, or pick an emoji
- All icon formats - PNG, ICO (multi-resolution), SVG (with dark mode CSS), JPG, WebP, AVIF
- Platform bundles - one-click exports for Modern Web, PWA, Chrome Extension, Android adaptive icons, iOS AppIcon.appiconset, Windows tiles, or All Sizes
- Social previews - optional Open Graph, Twitter, and LinkedIn preview PNGs with copyable meta tags
- Auto-crop - detect content bounds and trim whitespace with adjustable tolerance
- Manual crop - draw a crop rectangle or enter precise dimensions
- Maskable preview - safe-zone overlay with circle, squircle, and rounded-square masks
- Processing controls - safe padding, lossy quality, size-budget warnings, background fill or gradient, drop shadow, tint/desaturate/glass effects, and pixel-hinted small icons
- Code snippets - generates HTML
<link>tags,manifest.webmanifestJSON, extension manifest icon blocks, Android XML, iOS Contents.json, and Windows browserconfig.xml - Framework handoffs - tabbed snippets for plain HTML, Vite, Next.js app router, Astro, Chrome/Firefox MV3, Android, and iOS
- Deployment URL controls - generate root-relative, relative, or custom-base asset URLs with optional SHA-256 cache-busting queries
- Input and encoder guardrails - rejects malformed/external SVG input and prevents empty canvas blobs from entering exports
- Manifest metadata - set app name, ID, description, start URL, display mode, categories, theme colors, shortcuts, screenshots, language, direction, and optional monochrome icon purpose
- CSP-hardened shell - local CSS and JavaScript files run under a strict self-only policy with blob/data allowances for previews, downloads, and workers
- Deployable ZIPs - exports generated images plus README.txt and the platform support files needed by the selected bundle
- Export manifest - ZIP and folder exports include
iconforge-export.jsonwith file inventory, dimensions, MIME types, byte sizes, and SHA-256 hashes - Export validation - checks generated platform files, dimensions, manifest icon metadata, support files, and maskable safe-zone coverage before deployment
- Generation diagnostics - reports browser feature support, selected preset/formats, skipped formats, worker fallback state, file count, byte total, and validation status
- Draft recovery - saves recent settings locally and can optionally restore the source image after reloads
- Installed file handling - installed Chrome/Edge PWAs can open supported image files from the operating system
- UI string catalog - shell, status, diagnostic, validation, and snippet text now route through default English catalog keys for future localization
- Drop-replace template matching - load an existing folder or ZIP filename map and export only matching generated assets
- File size display - see per-icon and total file sizes after generation
- SVG dark mode - generates SVG favicons with embedded
prefers-color-schemeCSS - Offline PWA - install as a Progressive Web App, works without internet, and shows a reload notice when an update is ready
- 100% client-side - all processing happens in your browser via Canvas and Web Workers
- Go to sysadmindoc.github.io/IconForge or open
index.htmllocally. - Upload an image, use text mode, or use emoji mode.
- Select sizes and formats, or pick a platform preset.
- Click Generate Icons.
- Download individually, download a deployable ZIP, save to a folder, or copy the generated snippets.
No build step, no package manager, no dependencies.
rtk node -c app.js
rtk node tests/export-regression.test.js
rtk node tests/a11y-labels.test.js
rtk node tests/csp-shell.test.js
rtk python tests/browser-preset-smoke.py
rtk node -c sw.js| Format | Input | Output | Notes |
|---|---|---|---|
| PNG | Yes | Yes | Default output format |
| JPG | Yes | Yes | Background fill for transparency |
| WebP | Yes | Yes | Feature-detected; hidden when unsupported |
| AVIF | Yes | Yes | Feature-detected; Chrome 124+ only |
| SVG | Yes | Yes | Output includes dark-mode CSS |
| ICO | Yes | Yes | Multi-resolution favicon file |
| GIF | Yes | - | Input only |
| BMP | Yes | - | Input only |
| TIFF | Yes | - | Input only |
| Preset | Sizes | Use Case |
|---|---|---|
| Modern Web | 16, 32, 48, 180, 192, 512 | favicon.ico, SVG favicon, apple-touch-icon, manifest icons |
| PWA | 72-512 icons + 38 startup images | Any + maskable icons, current iOS/iPadOS splash images, web manifest |
| Extension | 16, 32, 48, 128 | Chrome/Firefox extension icons |
| Android | mdpi-xxxhdpi adaptive + legacy buckets | Foreground/background/legacy PNGs and adaptive icon XML |
| iOS | 180, 512 + app icon matrix | Full AppIcon.appiconset with Contents.json |
| Windows | 70, 150, 310, 310x150 | Windows tile images and browserconfig.xml |
| All Sizes | 16-512 standard set | Complete coverage |
Custom sizes up to 4096x4096 can be added.
- Chrome/Edge 99+
- Firefox 112+
- Safari 16.4+
WebP and AVIF output are feature-detected and hidden on unsupported browsers.
- Zero network requests during processing
- No cookies, analytics, or telemetry
- EXIF metadata is stripped by canvas re-encoding
- All processing via Canvas 2D API and Web Workers
MIT