app-icon-generator
Generates app icons programmatically using CoreGraphics following Apple HIG. Use when user wants to create, generate, or design an app icon for macOS or iOS.
What this skill does
# App Icon Generator Generate production-quality app icons programmatically using a CoreGraphics Swift script. Produces all required sizes and installs into the Xcode asset catalog. ## When This Skill Activates Use this skill when the user: - Asks to "generate an app icon" or "create an icon" - Wants a "placeholder icon" or "app icon design" - Mentions "icon for my app" or "need an app icon" - Asks to "update the app icon" ## Pre-Generation Checks ### 1. Project Context Detection ``` Glob: **/Assets.xcassets/AppIcon.appiconset/Contents.json ``` - Identify platform: macOS, iOS, or universal - Check for existing icon files (warn before overwriting) - Read `Contents.json` to understand required sizes ### 2. App Context Detection Gather app information to customize the icon: ``` Read: .planning/APP.md (if exists — app definition) Read: .planning/CODEBASE.md (if exists — app description) Grep: "CFBundleName" or app name in project files ``` If no planning files exist, ask the user. ## Configuration Questions Ask via AskUserQuestion: ### Question 1: App Category "What category best describes your app?" - **Productivity** — Clean geometric shapes, blues/teals - **Creative/Media** — Vibrant colors, camera/brush/music motifs - **Developer Tools** — Dark backgrounds, terminal/code symbols - **Utilities** — Functional shapes, neutral/system colors ### Question 2: Visual Style "What visual style do you prefer?" - **Bold Symbol** — Single prominent shape/icon centered (like the record button) - **Contained Scene** — A scene inside a shape (like a monitor with elements) - **Abstract Mark** — Geometric/abstract design (like viewfinder brackets) - **Gradient Glyph** — SF Symbol-style glyph on gradient background ### Question 3: Color Palette "What color palette fits your app?" - **Deep Blue/Indigo** — Professional, trustworthy (navy #0f0c29 to indigo #302b63) - **Teal/Cyan** — Fresh, modern (dark teal #0a1628 to blue #1a4a6b) - **Purple/Violet** — Creative, premium (midnight #1a0533 to violet #4a1a8a) - **Warm/Orange** — Energetic, friendly (dark red #2d1117 to orange #c0392b) ### Question 4: Accent Color "What accent color for the focal element?" - **Red** — Attention, recording, alerts (#ff453a to #d63031) - **Blue** — Trust, communication (#007aff to #0056b3) - **Green** — Success, nature, health (#34c759 to #248a3d) - **Gold/Yellow** — Premium, energy (#ffd60a to #c7a600) ## Apple HIG Icon Guidelines **Read `apple-hig-icons.md` before generating.** Key rules: 1. **No text** in the icon — must be universally recognizable 2. **Single focal point** — one clear element the eye is drawn to 3. **Simple shapes** — must be legible at 16x16 (macOS menu bar) 4. **Fill the canvas** — macOS/iOS apply the rounded rect mask automatically 5. **Front-facing perspective** — no 3D tilts or dramatic angles 6. **Use gradients sparingly** — subtle depth, not rainbow 7. **Ensure contrast** — the focal element must stand out from background 8. **Platform-appropriate**: - macOS: Can be more detailed (icons display larger) - iOS: Keep simpler (smaller grid, more rounded) ## Generation Process ### Step 1: Determine Icon Design Based on the user's answers (or app context), select: - **Background**: Gradient direction, colors, optional radial glow - **Primary Element**: The main shape/symbol - **Secondary Elements**: Optional ring, glow, accent shapes - **Style Modifiers**: Shine, shadow, stroke weight ### Step 2: Generate Swift Script Create a self-contained Swift script at `scripts/generate-icon.swift` that: - Uses `import AppKit` and `CoreGraphics` (no dependencies) - Generates **3 variants** at 1024x1024 - Saves to `icon-variants/` directory - Uses the design parameters from Step 1 **Script structure:** ```swift #!/usr/bin/env swift import AppKit import CoreGraphics let size: CGFloat = 1024 // ... helper functions (gradients, glows, shapes) // ... variant generation functions // ... save and output ``` **Design building blocks** (combine these based on category/style): | Building Block | Function | Use For | |---------------|----------|---------| | `drawGradientBackground` | Linear gradient fill | All icons | | `drawRadialGlow` | Soft colored glow behind focal element | Adding depth | | `drawCircle` | Filled/stroked circle | Record buttons, dots, orbs | | `drawRoundedRect` | Rounded rectangle | Screens, cards, containers | | `drawRing` | Circle outline | Borders, focus rings | | `drawBrackets` | Corner bracket marks | Viewfinders, capture | | `drawMonitor` | Screen + stand shape | Screen/display apps | | `drawShield` | Shield outline | Security/privacy apps | | `drawGear` | Gear/cog shape | Settings/utility apps | | `drawWaveform` | Audio waveform bars | Audio/music apps | | `drawDocument` | Page with fold corner | Document/writing apps | | `drawShine` | Elliptical specular highlight | Adding polish | | `drawShadow` | Drop shadow beneath element | Adding depth | ### Step 3: Run Script and Present Variants ```bash swift scripts/generate-icon.swift ``` Show all 3 variants to the user using the Read tool (Claude can view images). Ask the user to pick one, or request adjustments. ### Step 4: Resize and Install Once the user picks a variant: 1. **Resize** using `sips` (built into macOS): For **macOS** (10 sizes): ```bash sips -z 16 16 master.png --out icon_16x16.png sips -z 32 32 master.png --out [email protected] sips -z 32 32 master.png --out icon_32x32.png sips -z 64 64 master.png --out [email protected] sips -z 128 128 master.png --out icon_128x128.png sips -z 256 256 master.png --out [email protected] sips -z 256 256 master.png --out icon_256x256.png sips -z 512 512 master.png --out [email protected] sips -z 512 512 master.png --out icon_512x512.png sips -z 1024 1024 master.png --out [email protected] ``` For **iOS** (single 1024x1024): ```bash cp master.png icon_1024x1024.png ``` 2. **Write Contents.json** for the asset catalog For **macOS**: ```json { "images": [ { "filename": "icon_16x16.png", "idiom": "mac", "scale": "1x", "size": "16x16" }, { "filename": "[email protected]", "idiom": "mac", "scale": "2x", "size": "16x16" }, { "filename": "icon_32x32.png", "idiom": "mac", "scale": "1x", "size": "32x32" }, { "filename": "[email protected]", "idiom": "mac", "scale": "2x", "size": "32x32" }, { "filename": "icon_128x128.png", "idiom": "mac", "scale": "1x", "size": "128x128" }, { "filename": "[email protected]", "idiom": "mac", "scale": "2x", "size": "128x128" }, { "filename": "icon_256x256.png", "idiom": "mac", "scale": "1x", "size": "256x256" }, { "filename": "[email protected]", "idiom": "mac", "scale": "2x", "size": "256x256" }, { "filename": "icon_512x512.png", "idiom": "mac", "scale": "1x", "size": "512x512" }, { "filename": "[email protected]", "idiom": "mac", "scale": "2x", "size": "512x512" } ], "info": { "author": "xcode", "version": 1 } } ``` For **iOS** (single size, system generates others): ```json { "images": [ { "filename": "icon_1024x1024.png", "idiom": "universal", "platform": "ios", "size": "1024x1024" } ], "info": { "author": "xcode", "version": 1 } } ``` 3. **Copy files** into the asset catalog directory 4. **Build** to verify: `xcodebuild build -scheme <scheme> -destination 'platform=<platform>' -quiet` ### Step 5: Cleanup - Keep `scripts/generate-icon.swift` for future regeneration - Remove `icon-variants/` directory (or add to `.gitignore`) ## Category-Specific Design Recipes ### Productivity Apps - **Background**: Deep blue (#0f1b3d) to teal (#1a4a6b) - **Element**: Checkmark, list, or document shape in white - **Accent**: Green checkmark or blue highlight - **Style**: Clean, minimal, professional ### Creative/Media Apps - **Background**: Dark purple (#1a0533) to magenta (#6b1a5c) - **Element**: Camera lens, brush stroke, play button, or waveform - **Accent**: Red record dot, orange/yellow creative spar
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.