favicon-gen
jezweb/claude-skills
Generate complete favicon packages from logos, text, or brand colours in all required formats.
What is favicon-gen?
Creates production-ready favicons (SVG, ICO, PNG, manifest) from logos, initials, or branded shapes. Use this when a user needs a favicon, wants to replace CMS defaults, convert a logo, create monogram icons, or fix favicon display issues including iOS black squares.
- Generate favicon.svg, favicon.ico, apple-touch-icon.png, icon-192.png, and icon-512.png from a single source
- Create monogram favicons from text/initials with customizable shapes (circle, rounded square, shield, hexagon)
- Extract icon elements from existing logos and optimize for small sizes
- Produce web manifest (manifest.webmanifest) with theme and display configuration
- Generate HTML link tags for proper favicon integration across browsers and devices
How to install favicon-gen
npx skills add https://github.com/jezweb/claude-skills --skill favicon-gen- ImageMagick installed (brew install imagemagick on macOS, apt install imagemagick on Linux); alternatively use favicon.io for format conversion
How to use favicon-gen
- 1.Choose your favicon source: extracted logo icon, text/initials monogram, or branded shape
- 2.Create or obtain a source SVG file (use templates from assets/ directory if needed)
- 3.Run ImageMagick convert commands to generate all formats (ICO, PNG at 180/192/512px)
- 4.Create a web manifest file by customizing the manifest.webmanifest template with your business name and theme colors
- 5.Add the five HTML link tags to your site's <head> and place all generated files in your site root (/public/ for Vite/React)
Use cases
- Replace WordPress or CMS default favicons with branded alternatives
- Convert a company logo into a complete favicon package for web and mobile
- Create branded initials icons (monograms) for personal or team projects
- Fix favicon not displaying or iOS showing black square issues
- Generate PWA icons and manifest for progressive web app deployment
- Web developers building new sites or updating existing ones
- Product teams launching branded web applications
- Designers converting logos into favicon formats
- Anyone troubleshooting favicon display or iOS home screen icon issues
favicon-gen FAQ
The apple-touch-icon.png must have a solid background color, not transparency. Use the -background flag in ImageMagick: convert favicon.svg -resize 180x180 -background "#yourcolor" -alpha remove apple-touch-icon.png
Yes. Always generate SVG, ICO, apple-touch-icon.png, icon-192.png, and icon-512.png. Modern browsers use SVG, legacy browsers use ICO, iOS uses apple-touch-icon, and Android/PWA use the 192/512 sizes.
Use https://favicon.io to convert your SVG to the required PNG and ICO formats instead of running local convert commands.
No. Only favicon.svg, favicon.ico, icon-192.png, and icon-512.png support transparency. apple-touch-icon.png must have a solid background or it will appear as a black square on iOS.
Always test at 16x16 pixels. If text is not readable, simplify the design, use bold font weight, and ensure sufficient contrast between text and background.
Full instructions (SKILL.md)
Source of truth, from jezweb/claude-skills.
name: favicon-gen description: "Generate custom favicons from logos, text, or brand colours. Produces favicon.svg, favicon.ico, apple-touch-icon.png, icon-192/512.png, and web manifest. Use whenever the user wants a favicon, mentions replacing a CMS default favicon, converting a logo into a favicon, creating branded initials icons, or troubleshooting favicon not displaying / iOS black square / missing manifest." compatibility: claude-code-only
Favicon Generator
Generate a complete favicon package from a logo, initials, or brand colours. Produces all required formats and HTML integration code.
Workflow
Step 1: Choose Your Approach
Have a logo with an icon element?
YES -> Extract icon from logo
NO -> Have text/initials?
YES -> Create monogram favicon
NO -> Use branded shape
Step 2: Create Source SVG
Extracted icon — copy icon paths from logo, centre in 32x32 viewBox, simplify for small sizes.
Monogram — use a template from assets/:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<circle cx="16" cy="16" r="16" fill="#0066cc"/>
<text x="16" y="21" font-size="16" font-weight="bold"
text-anchor="middle" fill="#ffffff" font-family="sans-serif">AC</text>
</svg>
Branded shape — circle (universal), rounded square (modern), shield (security), hexagon (tech).
SVG templates available in assets/ directory.
Step 3: Generate All Formats
Requires ImageMagick (convert command). Install if needed: brew install imagemagick (macOS) or apt install imagemagick (Linux).
# ICO (16x16 + 32x32)
convert favicon.svg -define icon:auto-resize=16,32 favicon.ico
# Apple Touch Icon (180x180, SOLID background — transparent = black on iOS)
convert favicon.svg -resize 180x180 -background "#0066cc" -alpha remove apple-touch-icon.png
# Android/PWA icons
convert favicon.svg -resize 192x192 icon-192.png
convert favicon.svg -resize 512x512 icon-512.png
No ImageMagick? Use https://favicon.io to convert from the SVG instead.
Step 4: Create Web Manifest
Copy and customise assets/manifest.webmanifest:
{
"name": "Your Business Name",
"short_name": "Business",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#0066cc",
"background_color": "#ffffff",
"display": "standalone"
}
Step 5: Add HTML Tags
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#0066cc">
Place all files in site root (/public/ in Vite/React).
Critical Rules
- Always generate ALL formats — SVG, ICO, apple-touch-icon, 192, 512, manifest
- iOS icons MUST have solid backgrounds — transparent = black square
- Always use bold font weight for monogram text (regular disappears at 16x16)
- Test at 16x16 — if it's not legible, simplify
- Never launch with CMS defaults (WordPress "W", etc.)
Format Quick Reference
| Format | Size | Transparency | Purpose |
|---|---|---|---|
favicon.svg | Vector | Yes | Modern browsers |
favicon.ico | 16+32 | Yes | Legacy browsers |
apple-touch-icon.png | 180x180 | No | iOS home screen |
icon-192.png | 192x192 | Yes | Android |
icon-512.png | 512x512 | Yes | PWA |
Asset Files
assets/favicon-svg-circle.svg— Circle monogram templateassets/favicon-svg-square.svg— Rounded square templateassets/favicon-svg-shield.svg— Shield templateassets/manifest.webmanifest— Web manifest template
Reference Files
references/format-guide.md— Complete format specificationsreferences/extraction-methods.md— Logo icon extraction stepsreferences/monogram-patterns.md— Advanced monogram designreferences/shape-templates.md— Industry-specific shapes with SVG code
Related skills
More from jezweb/claude-skills and the wider catalog.

fork-discipline
Audit and enforce the core/client boundary in multi-client projects. Detects where shared platform code is tangled with client-specific code, finds hardcoded client checks, config files that replace instead of merge, scattered client code, migration conflicts, and missing extension points. Produces a boundary map, violation report, and refactoring plan. Optionally generates FORK.md documentation and restructuring scripts. Triggers: 'fork discipline', 'check the boundary', 'is this core or client', 'platform audit', 'client separation', 'fork test', 'refactor for multi-client', 'clean up the fork'.

git-workflow
Guided git workflows: prepare PRs, clean up branches, resolve merge conflicts, handle monorepo tags, squash-and-merge patterns. Use when asked to prepare a PR, clean branches, resolve conflicts, or tag a release.

github-release
Prepare and publish GitHub releases. Sanitizes code for public release (secrets scan, personal artifacts, LICENSE/README validation), creates version tags, and publishes via gh CLI. Trigger with 'release', 'publish', 'open source', 'prepare for release', 'create release', or 'github release'.

google-apps-script
Build Google Apps Script automation for Sheets with custom menus, triggers, dialogs, and integrations.

google-chat-messages
Send Google Chat messages via incoming webhooks — text, rich cards (cardsV2), threaded replies. TypeScript types, card builder utility, widget reference inline. Use whenever the user wants to post to Google Chat from a script, build a chatbot reply, send a notification card, build a Google Chat webhook integration, or troubleshoot card / threading issues.

gws-install
Quick install of the Google Workspace CLI (gws) on an additional machine using existing OAuth credentials. Requires client_secret.json from a previous gws-setup. Use whenever the user wants to install gws on a new computer, reinstall after a fresh OS, configure a second workstation, or says 'install gws', 'gws on new machine', 'set up gws again'.