원클릭으로
generating-app-icons
Use when creating application icons for Windows apps, from initial SVG design through to final ICO file
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when creating application icons for Windows apps, from initial SVG design through to final ICO file
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when improving code structure, applying design patterns, ensuring backward compatibility, or making incremental changes without altering behavior
Use when planning work items, managing backlogs, creating epics/features/stories/tasks, or organizing development work in Agile/SCRUM methodology
Use when implementing any feature or bugfix, before writing implementation code
Use when designing application structure, implementing layered architecture, applying DDD patterns, or making architectural decisions about separation of concerns
Use when building, designing, or coding Azure Logic Apps Consumption workflows - covers architecture patterns, Code View JSON conventions, error handling, performance optimization, security, naming conventions, and deployment best practices
Use when updating version numbers in SharePoint Framework (SPFx) solutions after features or bugfixes
| name | generating-app-icons |
| description | Use when creating application icons for Windows apps, from initial SVG design through to final ICO file |
Create application icons from scratch: design SVG concepts, select the best option, convert to multi-resolution ICO for Windows applications.
Create 3-4 icon concepts as SVG files. Consider the app's purpose and brand.
| Style | Best For | Example Elements |
|---|---|---|
| Symbolic | Developer tools, utilities | Chevrons, brackets, geometric shapes |
| Metaphorical | Search, discovery apps | Magnifying glass, lens, compass |
| Abstract | Universal concepts | Infinity symbol, orbs, interconnected shapes |
| Letterform | Brand-focused | Stylized first letter, monogram |
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#14B8A6"/>
<stop offset="100%" style="stop-color:#0D9488"/>
</linearGradient>
</defs>
<!-- Background -->
<rect x="18" y="18" width="220" height="220" rx="44" fill="#0F172A"/>
<!-- Your icon elements here -->
</svg>
.scripts/generating-app-icons/
├── option-1-symbolic.svg
├── option-2-metaphor.svg
├── option-3-abstract.svg
└── option-4-letterform.svg
Create an HTML preview to compare options at all sizes:
<!DOCTYPE html>
<html>
<head>
<title>Icon Preview</title>
<style>
body { background: #1a1a2e; color: white; font-family: system-ui; }
.preview { display: flex; gap: 20px; align-items: end; margin: 20px; }
.size-label { text-align: center; opacity: 0.7; margin-top: 8px; }
</style>
</head>
<body>
<h2>Option 1: Symbolic</h2>
<div class="preview">
<div><img src="option-1.svg" width="256"><div class="size-label">256</div></div>
<div><img src="option-1.svg" width="64"><div class="size-label">64</div></div>
<div><img src="option-1.svg" width="32"><div class="size-label">32</div></div>
<div><img src="option-1.svg" width="16"><div class="size-label">16</div></div>
</div>
<!-- Repeat for other options -->
</body>
</html>
Open in browser, evaluate at small sizes, select the winner.
npm install -g svgexport
npm install png-to-ico # Install locally, not globally
Why local png-to-ico? The CLI uses stdout for binary output, which PowerShell corrupts. Use Node.js API instead.
Export the chosen SVG to multiple PNG sizes:
svgexport chosen-icon.svg icon-256.png 256:256
svgexport chosen-icon.svg icon-64.png 64:64
svgexport chosen-icon.svg icon-32.png 32:32
svgexport chosen-icon.svg icon-16.png 16:16
Critical: Do NOT use shell redirection (>) for binary output in PowerShell—it corrupts the file.
Create a Node.js script to write the ICO properly:
const fs = require('fs');
const path = require('path');
const { default: pngToIco } = require('png-to-ico');
async function createIco(pngFiles, outputPath) {
const icoBuffer = await pngToIco(pngFiles);
fs.writeFileSync(outputPath, icoBuffer);
console.log(`Created: ${outputPath} (${icoBuffer.length} bytes)`);
}
const pngFiles = [
'icon-256.png',
'icon-64.png',
'icon-32.png',
'icon-16.png'
];
createIco(pngFiles, 'AppIcon.ico');
Save as .scripts/generating-app-icons/create-ico.js and run:
node .scripts/generating-app-icons/create-ico.js
| Symptom | Cause | Fix |
|---|---|---|
| "Argument must be a picture that can be used as Icon" | Corrupted ICO file | Use Node.js API, not shell redirect |
| ICO file very large (300KB+) but invalid | PowerShell text encoding | Use fs.writeFileSync with Buffer |
| Icon not updating after rebuild | App still running | Close app before rebuild |
| svgexport not found after nvm switch | Package in old Node version | Reinstall with current Node |
# Full pipeline
npm install -g svgexport
npm install png-to-ico
svgexport design.svg icon-256.png 256:256
svgexport design.svg icon-64.png 64:64
svgexport design.svg icon-32.png 32:32
svgexport design.svg icon-16.png 16:16
node create-ico.js