1---2name: web-asset-generator3description: Generate and optimize web assets: favicons, app icons, OG/social images, and devicons. TRIGGER when: user asks to create favicons, generate app icons (iOS, Android, PWA), build OG/social media images, optimize SVG/PNG/WebP, create icon sprite sheets, convert logos to icon sets, or work with devicons/technology icons. DO NOT TRIGGER when: user is designing UI layouts or component architecture (use design-ux skill), writing CSS/Tailwind styles (use droo-stack skill), or building image processing pipelines unrelated to web assets.4---56# web-asset-generator78Generate production-ready icon sets, social images, and optimized assets from source images. One source file in, every platform-specific variant out.910## What You Get1112- Favicon generation (ICO, PNG, SVG) for all browsers and sizes13- Apple touch icons, Android adaptive icons, PWA manifest icons14- OG/social media images with proper dimensions and metadata tags15- Devicon integration and custom technology icon creation16- Image optimization pipelines (SVGO, pngquant, sharp, WebP)17- Format selection guidance (when to use SVG vs PNG vs WebP vs ICO)1819## When to Use2021- Generating favicon sets from a source logo or SVG22- Creating iOS/Android/PWA app icon variants23- Building OG images and Twitter card assets24- Converting logos into lightweight icon sets25- Optimizing SVG files (removing editor cruft, minifying)26- Compressing PNGs or converting to WebP27- Creating devicon/technology icon sprites2829## When NOT to Use3031- **UI layout and component design** -- use `design-ux`32- **CSS/Tailwind styling patterns** -- use `droo-stack`33- **General image editing** (photo manipulation, filters) -- not a skill concern34- **Video or animation assets** -- out of scope3536## Reading Guide3738| Working on | Read |39| -------------------------------------------- | ------------------------ |40| Favicons, Apple touch, Android, PWA manifest | `favicon-and-icons.md` |41| SVG cleanup, PNG crush, WebP, format choice | `image-optimization.md` |42| OG tags, Twitter cards, social dimensions | `social-images.md` |43| Devicon libraries, logo sprites, monochrome | `devicons.md` |4445## See also4647- `design-ux` -- for design token systems, color palettes, and accessibility48- `droo-stack` -- for code-level patterns in TypeScript, Python, and shell4950## Tool Landscape5152| Tool | Language | Use case |53| ----------------------- | -------- | ------------------------------------ |54| sharp | Node | Resize, convert, compress images |55| svgo | Node | SVG optimization and cleanup |56| imagemagick (convert) | CLI | Format conversion, ICO generation |57| optipng | CLI | Lossless PNG optimization |58| pngquant | CLI | Lossy PNG compression (8-bit) |59| real-favicon-generator | Web/CLI | Full favicon package from one image |60| pwa-asset-generator | Node | PWA splash screens and icons |61| Pillow | Python | Programmatic image generation |62| cairosvg | Python | SVG to PNG/PDF rasterization |6364## Common Pitfalls6566| Mistake | Why It Fails | Better Approach |67| ---------------------------------------- | -------------------------------------------------- | -------------------------------------------- |68| Single favicon.ico only | Missing Apple touch, Android, PWA | Generate full set: ICO + PNG + SVG + manifest |69| Huge unoptimized PNG favicons | Slow page load, poor Lighthouse score | Compress with pngquant, serve SVG where able |70| OG image wrong dimensions | Gets cropped or letterboxed on social platforms | Use 1200x630 for OG, 1200x675 for Twitter |71| SVG with embedded raster images | Defeats SVG purpose, huge file size | Trace rasters to paths or use PNG instead |72| No maskable icon for Android | Icon looks tiny in adaptive icon circle | Add `"purpose": "maskable"` variant to manifest |73| Serving WebP without PNG fallback | Breaks Safari <14, older browsers | Use `<picture>` element with PNG fallback |7475## Key Conventions7677- **Source-first**: Always keep the highest-resolution source file; generate variants from it78- **Automate generation**: Script the conversion pipeline; never hand-resize icons79- **Format-appropriate**: SVG for simple logos, PNG for complex/photographic, WebP for modern browsers80- **Manifest-complete**: PWA manifest must include all required icon sizes with correct `purpose` fields81- **Lossless then lossy**: Run lossless optimization first (optipng/svgo), then lossy (pngquant) if size still matters