gpt-taste
gpt taste
app-icon-generator
Generates app icons in all required sizes for iOS, Android, and PWA from a single source image. Use when user asks to "generate app icons", "create ios icons", "android app icons", "favicon", or "pwa icons".
Full skill instructions
Generates app icons in all required sizes for iOS, Android, PWA, and web from a single source image.
Check for source icon file:
# Look for icon source
find . -name "*icon*.png" -o -name "*logo*.png"
Source image requirements:
Present findings and ask for source if not found.
Verify available tools:
# Check for ImageMagick
which convert || echo "ImageMagick not found"
# Check for sharp-cli
which sharp || echo "sharp-cli not found"
# Check for sips (macOS)
which sips || echo "sips not found (macOS only)"
Installation guide if needed:
# macOS
brew install imagemagick
# Ubuntu/Debian
sudo apt-get install imagemagick
# Node.js (cross-platform, recommended)
npm install -g sharp-cli
iOS requires multiple sizes:
# iOS App Icons (all required sizes)
declare -a ios_sizes=(
"20" # iPhone Notification (2x, 3x)
"29" # iPhone Settings (2x, 3x)
"40" # iPhone Spotlight (2x, 3x)
"60" # iPhone App (2x, 3x)
"76" # iPad App (1x, 2x)
"83.5" # iPad Pro App (2x)
"1024" # App Store
)
# Generate using ImageMagick
for size in "${ios_sizes[@]}"; do
convert icon-source.png -resize ${size}x${size} "ios/icon-${size}.png"
# Generate 2x
size2x=$((size * 2))
convert icon-source.png -resize ${size2x}x${size2x} "ios/icon-${size}@2x.png"
# Generate 3x (for relevant sizes)
if [[ $size -eq 20 || $size -eq 29 || $size -eq 40 || $size -eq 60 ]]; then
size3x=$((size * 3))
convert icon-source.png -resize ${size3x}x${size3x} "ios/icon-${size}@3x.png"
fi
done
Or using sharp-cli:
# Generate all iOS sizes
sharp -i icon-source.png -o ios/icon-{size}.png \
resize 20 40 60 58 80 87 120 180 76 152 167 1024
Contents.json for Xcode:
{
"images": [
{
"size": "20x20",
"idiom": "iphone",
"filename": "icon-40.png",
"scale": "2x"
},
{
"size": "20x20",
"idiom": "iphone",
"filename": "icon-60.png",
"scale": "3x"
},
{
"size": "29x29",
"idiom": "iphone",
"filename": "icon-58.png",
"scale": "2x"
},
{
"size": "29x29",
"idiom": "iphone",
"filename": "icon-87.png",
"scale": "3x"
},
{
"size": "40x40",
"idiom": "iphone",
"filename": "icon-80.png",
"scale": "2x"
},
{
"size": "40x40",
"idiom": "iphone",
"filename": "icon-120.png",
"scale": "3x"
},
{
"size": "60x60",
"idiom": "iphone",
"filename": "icon-120.png",
"scale": "2x"
},
{
"size": "60x60",
"idiom": "iphone",
"filename": "icon-180.png",
"scale": "3x"
},
{
"size": "1024x1024",
"idiom": "ios-marketing",
"filename": "icon-1024.png",
"scale": "1x"
}
],
"info": {
"version": 1,
"author": "xcode"
}
}
Android adaptive icons:
Android uses adaptive icons with separate foreground and background layers.
# Android icon sizes (in dp)
# mdpi = 1x, hdpi = 1.5x, xhdpi = 2x, xxhdpi = 3x, xxxhdpi = 4x
# mipmap-mdpi (48x48)
convert icon-source.png -resize 48x48 android/mipmap-mdpi/ic_launcher.png
# mipmap-hdpi (72x72)
convert icon-source.png -resize 72x72 android/mipmap-hdpi/ic_launcher.png
# mipmap-xhdpi (96x96)
convert icon-source.png -resize 96x96 android/mipmap-xhdpi/ic_launcher.png
# mipmap-xxhdpi (144x144)
convert icon-source.png -resize 144x144 android/mipmap-xxhdpi/ic_launcher.png
# mipmap-xxxhdpi (192x192)
convert icon-source.png -resize 192x192 android/mipmap-xxxhdpi/ic_launcher.png
# Play Store (512x512)
convert icon-source.png -resize 512x512 android/playstore-icon.png
Adaptive icon XML:
<!-- res/mipmap-anydpi-v26/ic_launcher.xml -->
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
Round icon variant:
# Generate round icons (same sizes)
for size in 48 72 96 144 192; do
density=$(get_density $size) # mdpi, hdpi, etc.
convert icon-source.png -resize ${size}x${size} \
\( +clone -threshold -1 -negate -fill white -draw "circle $((size/2)),$((size/2)) $((size/2)),0" \) \
-alpha off -compose copy_opacity -composite \
"android/mipmap-${density}/ic_launcher_round.png"
done
Progressive Web App icons:
# PWA icon sizes
sharp -i icon-source.png -o pwa/icon-{size}.png \
resize 72 96 128 144 152 192 384 512
# Also generate maskable icons (with safe area)
# Maskable icons need 40% safe area
sharp -i icon-source.png -o pwa/icon-{size}-maskable.png \
resize 72 96 128 144 152 192 384 512 \
--extend top=10 bottom=10 left=10 right=10
manifest.json:
{
"name": "My App",
"short_name": "App",
"icons": [
{
"src": "/icons/icon-72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "/icons/icon-96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "/icons/icon-128.png",
"sizes": "128x128",
"type": "image/png"
},
{
"src": "/icons/icon-144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "/icons/icon-152.png",
"sizes": "152x152",
"type": "image/png"
},
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-384.png",
"sizes": "384x384",
"type": "image/png"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "/icons/icon-192-maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/icons/icon-512-maskable.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}
Web favicons (multiple sizes):
# Standard sizes
convert icon-source.png -resize 16x16 favicon-16.png
convert icon-source.png -resize 32x32 favicon-32.png
convert icon-source.png -resize 48x48 favicon-48.png
# Create multi-size .ico file
convert favicon-16.png favicon-32.png favicon-48.png favicon.ico
# Apple touch icon
convert icon-source.png -resize 180x180 apple-touch-icon.png
# Microsoft tile
convert icon-source.png -resize 144x144 mstile-144.png
HTML head tags:
<!-- Favicons -->
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48.png">
<link rel="shortcut icon" href="/favicon.ico">
<!-- Apple touch icon -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<!-- Android -->
<link rel="icon" type="image/png" sizes="192x192" href="/android-chrome-192.png">
<link rel="icon" type="image/png" sizes="512x512" href="/android-chrome-512.png">
<!-- Microsoft -->
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/mstile-144.png">
For React Native apps:
# iOS (place in ios/AppName/Images.xcassets/AppIcon.appiconset/)
# Same as iOS native above
# Android (place in android/app/src/main/res/)
# Same as Android native above
Or use react-native-make:
npx react-native set-icon --path icon-source.png
Using flutter_launcher_icons:
# pubspec.yaml
dev_dependencies:
flutter_launcher_icons: ^0.13.1
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/icon.png"
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "assets/icon-foreground.png"
# Generate icons
flutter pub get
flutter pub run flutter_launcher_icons
Complete icon generation script:
#!/bin/bash
# generate-icons.sh
SOURCE_ICON="icon-source.png"
OUTPUT_DIR="generated-icons"
# Check if source exists
if [ ! -f "$SOURCE_ICON" ]; then
echo "Error: Source icon not found: $SOURCE_ICON"
exit 1
fi
# Create directories
mkdir -p "$OUTPUT_DIR"/{ios,android,pwa,web}
echo "🎨 Generating app icons..."
# iOS icons
echo "📱 iOS icons..."
for size in 40 60 58 87 80 120 180 76 152 167 1024; do
convert "$SOURCE_ICON" -resize ${size}x${size} \
"$OUTPUT_DIR/ios/icon-${size}.png"
echo " ✓ ${size}x${size}"
done
# Android icons
echo "🤖 Android icons..."
convert "$SOURCE_ICON" -resize 48x48 "$OUTPUT_DIR/android/mdpi.png"
convert "$SOURCE_ICON" -resize 72x72 "$OUTPUT_DIR/android/hdpi.png"
convert "$SOURCE_ICON" -resize 96x96 "$OUTPUT_DIR/android/xhdpi.png"
convert "$SOURCE_ICON" -resize 144x144 "$OUTPUT_DIR/android/xxhdpi.png"
convert "$SOURCE_ICON" -resize 192x192 "$OUTPUT_DIR/android/xxxhdpi.png"
convert "$SOURCE_ICON" -resize 512x512 "$OUTPUT_DIR/android/playstore.png"
echo " ✓ All densities generated"
# PWA icons
echo "🌐 PWA icons..."
for size in 72 96 128 144 152 192 384 512; do
convert "$SOURCE_ICON" -resize ${size}x${size} \
"$OUTPUT_DIR/pwa/icon-${size}.png"
echo " ✓ ${size}x${size}"
done
# Favicons
echo "🔖 Favicons..."
convert "$SOURCE_ICON" -resize 16x16 "$OUTPUT_DIR/web/favicon-16.png"
convert "$SOURCE_ICON" -resize 32x32 "$OUTPUT_DIR/web/favicon-32.png"
convert "$SOURCE_ICON" -resize 48x48 "$OUTPUT_DIR/web/favicon-48.png"
convert "$OUTPUT_DIR/web/favicon-"{16,32,48}.png "$OUTPUT_DIR/web/favicon.ico"
convert "$SOURCE_ICON" -resize 180x180 "$OUTPUT_DIR/web/apple-touch-icon.png"
echo " ✓ All favicons generated"
echo "✅ Icon generation complete!"
echo "📁 Icons saved to: $OUTPUT_DIR"
iOS (Xcode):
Android (Android Studio):
Web:
React Native:
ios/AppName/Images.xcassets/AppIcon.appiconset/android/app/src/main/res/mipmap-*/Design Guidelines:
Technical Guidelines:
Testing:
iOS:
Android:
PWA:
Web:
gpt taste
Premium brand-kit image generation for high-end identity systems, logo concepts, and visual-world presentations.
Premium website design-to-code skill that generates visual references first, then builds faithful frontend implementations.
Premium frontend image direction for landing pages and marketing sites, generating one distinct horizontal image per section.
Premium mobile app screen concepts and flows with clean hierarchy, strong imagery, and distinctive art direction.
Emil Kowalski's philosophy on UI polish, component design, and the invisible details that make software feel good.
Frontend design and iteration for production-grade interfaces, from concept to ship.
Reverse-engineer design tokens from public websites into starter token files for your project.
Builds an animation from scratch by making the decisions in the order that determines whether it feels right.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
Chat-to-edit AI studio for product photos, portraits, branding, and video.
Generate your dream room in seconds.
Redesign your interior in seconds using AI
Transform rooms with AI-generated designs.
Transform Your Space with AI-Powered Japanese Interior Designs by Jife
AI-powered wireframes for non-designers.
Revolutionize Property Viewing with AI-Generated Floor Plans and Virtual Tours
Transform sketches into stunning architectural renders with AI.