home / skills / michaelboeding / skills / icon-generation

icon-generation skill

/skills/icon-generation

This skill generates professional app icons with transparent backgrounds, producing square PNGs ready for apps, favicons, and UI across styles.

npx playbooks add skill michaelboeding/skills --skill icon-generation

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
11.1 KB
---
name: icon-generation
description: >
  Generate app icons with transparent backgrounds. Triggers include:
  "generate icon", "create icon", "make icon", "app icon", "favicon",
  "icon for", "logo icon", "icon set", "icon pack", "transparent icon"
  Creates square PNG icons with transparent backgrounds suitable for app icons, favicons, and UI elements.
---

# Icon Generation Skill

Generate professional app icons with transparent backgrounds using AI (Google Gemini).

**Output:** Square PNG with transparent background - ready for app stores, favicons, or UI.

## Quick Examples

| User Says | What Happens |
|-----------|--------------|
| "Create an icon for a music app" | Generates square PNG with transparent background |
| "Make a settings gear icon, flat style" | Flat design icon with clean lines |
| "Generate a 3D shopping cart icon" | 3D-style icon with depth and shadows |
| "I need a favicon for my blog" | Small icon optimized for web |
| "Create icon set: home, search, profile" | Batch generates multiple icons |
| "Make icons matching this style" + image | Uses reference image to match style |
| "Generate more icons like this one" | Creates consistent icon set from reference |

## Prerequisites

- `GOOGLE_API_KEY` - Required for Google Gemini image generation
  - Get your key at: https://aistudio.google.com/apikey

## Icon Styles

| Style | Description | Best For |
|-------|-------------|----------|
| **flat** | Modern flat design, solid colors, minimal shadows | iOS, Material Design, web |
| **3d** | Depth, gradients, realistic shadows | macOS, premium apps |
| **line** | Outline only, thin strokes | Minimalist UI, toolbars |
| **glyph** | Solid filled shape, single color | System icons, tab bars |
| **gradient** | Smooth color transitions | Modern app icons |
| **minimal** | Ultra-simple, essential shapes only | Professional, clean UI |

## Workflow

### Step 1: Gather Requirements (REQUIRED)

Use the `AskUserQuestion` tool for each question. Ask ONE question at a time.

**Q1: Icon Concept**
> "What should this icon represent?
>
> Examples: settings gear, shopping cart, user profile, home, music note, camera"

*Wait for response.*

**Q2: Style**
> "What **style**?
>
> - Flat (modern, solid colors)
> - 3D (depth, shadows)
> - Line (outline only)
> - Glyph (solid filled shape)
> - Gradient (color transitions)
> - Minimal (ultra-simple)"

*Wait for response.*

**Q3: Size**
> "What **size**? (can generate multiple)
>
> - 1024px (App Store, high-res)
> - 512px (Android, web)
> - 256px (desktop apps)
> - 128px (favicons, small UI)
> - All common sizes"

*Wait for response.*

**Q4: Reference Image (Optional but important for icon sets)**
> "Do you have a **reference image** to match the style?
>
> - Yes, I have an existing icon to match
> - No, generate fresh style"

*If yes, ask for the image path. Wait for response.*

**Q5: Colors (Optional)**
> "Any **color preferences**?
>
> - Let AI choose based on concept
> - Specific colors (e.g., blue and white)
> - Monochrome (single color + transparency)
> - Match brand colors"

*Wait for response.*

**Q6: Output Format**
> "What **file format**?
>
> - PNG (transparency, recommended)
> - JPEG (smaller file, no transparency)
> - WebP (modern format, good compression)"

*Wait for response.*

**Q7: Background Removal Method (for PNG/WebP)**
> "How should we remove the background?
>
> - Built-in (fast, may have minor artifacts)
> - Rembg (AI-based, high quality, runs locally)
> - None (keep white background from generation)"

*Wait for response.*

### Step 2: Craft the Prompt

Transform user request into an icon-specific prompt:

**Template:**
```
A [STYLE] style icon of [CONCEPT] on a transparent background.
Square format, centered, clean edges, suitable for app icon.
[COLOR PREFERENCES]. Simple, recognizable, professional.
```

**Example transformations:**
- User: "music app icon"
- Enhanced: "A flat style icon of a musical note on a transparent background. Square format, centered, clean edges, suitable for app icon. Vibrant purple and pink gradient. Simple, recognizable, professional design with modern aesthetic."

- User: "settings gear, minimal"
- Enhanced: "A minimal style icon of a settings gear on a transparent background. Square format, centered, clean edges. Monochrome gray. Ultra-simple design, essential shapes only, no extra details."

### Step 3: Generate the Icon

Execute the script:

```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  --prompt "your enhanced prompt" \
  --style "flat" \
  --size 1024 \
  --output "/path/to/icon.png"
```

**With multiple sizes:**
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  --prompt "your enhanced prompt" \
  --style "flat" \
  --size 1024 512 256 128 \
  --output "/path/to/icon"
```
This generates: `icon_1024.png`, `icon_512.png`, `icon_256.png`, `icon_128.png`

**Batch generation (multiple icons):**
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  --batch '["home", "search", "profile", "settings"]' \
  --style "flat" \
  --size 512 \
  --output "/path/to/icons"
```
This generates: `home_512.png`, `search_512.png`, `profile_512.png`, `settings_512.png`

### Step 4: Deliver the Result

1. Show the generated icon(s) to the user
2. Provide the prompt used
3. Offer to:
   - Generate different sizes
   - Try a different style
   - Create variations
   - Generate as ICO (favicon format)

## Script Parameters

| Parameter | Short | Description | Default |
|-----------|-------|-------------|---------|
| `--prompt` | `-p` | Icon description | Required |
| `--style` | `-s` | Icon style preset | flat |
| `--size` | `-z` | Size(s) in pixels | 512 (or auto from reference) |
| `--format` | `-f` | Output format (png, jpeg, webp) | png |
| `--bg-removal` | `--bg` | Background removal method (builtin, rembg, none) | builtin |
| `--output` | `-o` | Output path | auto-generated |
| `--batch` | `-b` | JSON array of concepts | None |
| `--colors` | `-c` | Color preferences | AI choice |
| `--reference` | `-r` | Reference image(s) for style matching | None |

## Background Removal Methods

This skill uses the **background-remove** skill for transparent background generation.

| Method | Description | Best For |
|--------|-------------|----------|
| **builtin** | Fast white-to-transparent conversion | Quick iterations, most icons |
| **rembg** | AI-based removal using U2-Net model | High-quality results, complex backgrounds |
| **none** | Keeps the white background as-is | JPEG output, manual post-processing |

### Requirements

See the [background-remove skill](../background-remove/SKILL.md) for installation instructions.

```bash
# Install rembg for AI-based background removal
pip install rembg

# Or with GPU acceleration (requires CUDA)
pip install rembg[gpu]
```

## Style Prompt Modifiers

The script automatically adds these style-specific prompt modifiers:

| Style | Modifier Added |
|-------|----------------|
| flat | "flat design, solid colors, no gradients, minimal shadows, clean vector style" |
| 3d | "3D style, depth, soft shadows, subtle gradients, professional rendering" |
| line | "line art, outline only, thin consistent strokes, no fill, minimalist" |
| glyph | "solid filled shape, single color, bold silhouette, high contrast" |
| gradient | "smooth gradient colors, modern vibrant transitions, glossy finish" |
| minimal | "ultra-minimal, essential shapes only, maximum simplicity, geometric" |

## Common Icon Sizes

| Size | Use Case |
|------|----------|
| 1024px | iOS App Store, high-resolution displays |
| 512px | Android Play Store, macOS apps |
| 256px | Windows apps, desktop shortcuts |
| 192px | Android launcher icons |
| 180px | iOS home screen |
| 128px | Favicons (high-res), small UI |
| 64px | Toolbar icons |
| 32px | Standard favicon |
| 16px | Smallest favicon |

## Error Handling

**Missing API key:**
```
Error: GOOGLE_API_KEY not set. Get your key at https://aistudio.google.com/apikey
```

**Generation failed:**
- Retry with simpler prompt
- Check if concept is clear and recognizable
- Ensure style is appropriate for the concept

**Non-transparent output:**
- The script explicitly requests transparent background
- If still not transparent, try adding "isolated on transparent" to prompt
- For complex concepts, results may vary

## Reference Image Support

Use reference images to create consistent icon sets. When you provide a reference, the AI will match:
- Visual style and design language
- Line weight and stroke thickness
- Color palette and shading
- Level of detail and complexity
- Overall proportions and spacing

### When to Use Reference Images

| Scenario | Use Reference? |
|----------|----------------|
| Creating multiple icons for same app | Yes - ensures consistency |
| Matching existing brand icons | Yes - maintains brand identity |
| Adding to existing icon set | Yes - blends seamlessly |
| Single standalone icon | Optional - fresh style is fine |
| Exploring different styles | No - let AI be creative |

### Reference Image Examples

**Single icon matching existing style:**
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "settings gear" \
  -r /path/to/existing_icon.png \
  -z 512
```

**Icon set with consistent style:**
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -b '["home", "search", "profile", "settings", "notifications"]' \
  -r /path/to/brand_icon.png \
  -z 512 \
  -o "app_icons"
```

**Multiple reference images (up to 14):**
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "calendar" \
  -r /path/to/icon1.png \
  -r /path/to/icon2.png \
  -z 512
```

## Tips for Best Results

1. **Be specific about the concept**: "shopping cart" is better than "e-commerce"
2. **Match style to platform**: Flat for iOS/Android, 3D for macOS
3. **Keep it simple**: Icons should be recognizable at small sizes
4. **Test at small sizes**: Generate 32px to ensure readability
5. **Use consistent style**: For icon sets, use same style for all icons
6. **Use reference images**: For icon sets, always use a reference to ensure consistency

## Examples

### App Icon
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "camera with colorful lens" \
  -s gradient \
  -z 1024 512 256 \
  -o "camera_icon"
```

### Favicon
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "letter B for blog" \
  -s minimal \
  -z 128 32 16 \
  -o "favicon"
```

### Icon Set
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -b '["home", "search", "notifications", "profile", "settings"]' \
  -s flat \
  -z 512 \
  -o "app_icons"
```

### High-Quality Background Removal (Rembg)
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "detailed gear with shadows" \
  -s 3d \
  -z 512 \
  --bg rembg \
  -o "gear_icon"
```

### WebP Format with Built-in Background Removal
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/icon-generation/scripts/icon_generator.py \
  -p "lightning bolt" \
  -s gradient \
  -z 512 \
  -f webp \
  -o "bolt_icon"
```

Overview

This skill generates square PNG app icons with fully transparent backgrounds, ready for app stores, favicons, and UI elements. It produces single icons or batched icon sets in multiple sizes and supports style presets like flat, 3D, line, glyph, gradient, and minimal. The workflow collects requirements, crafts a precise icon prompt, generates images, and optionally runs high-quality background removal.

How this skill works

The skill asks step-by-step questions to collect concept, style, size, colors, reference images, and output preferences. It converts the answers into an enhanced prompt tailored for icon generation, calls an image-generation model, and exports square PNGs with transparent backgrounds. Optional background removal methods (builtin or rembg) are applied to guarantee clean transparency and consistent edges.

When to use it

  • You need a single app icon with a transparent background for stores or launchers
  • Creating a consistent icon set (home, search, profile, settings) with matching style
  • Designing favicons or small UI icons that must remain recognizable at 16–128px
  • Matching new icons to existing brand or reference images
  • Iterating quickly through styles (flat, 3D, minimal) and sizes for testing

Best practices

  • Be specific about the concept (e.g., “shopping cart” vs “e-commerce”) to ensure clarity
  • Choose style according to platform: flat for mobile, 3D for premium desktop apps
  • Generate and preview small sizes (32px, 16px) to verify readability
  • Use a reference image for consistent icon sets and brand matching
  • Prefer PNG for transparency; use rembg for higher-quality background removal when needed

Example use cases

  • Generate a 1024px app store icon in gradient style for a camera app
  • Create a favicon set (128px, 32px, 16px) for a blog using minimal style
  • Batch-generate a flat-style icon pack: home, search, profile, settings at 512px
  • Match new icons to an existing brand icon by supplying a reference image
  • Produce a 3D settings gear icon with rembg background removal for a desktop app

FAQ

What file formats are supported?

PNG is recommended for transparency; JPEG and WebP are also supported if you prefer smaller files or different compression.

How do I ensure transparent backgrounds?

Use PNG output and choose builtin or rembg background removal; rembg provides higher-quality results for complex edges.