Agent skill
icon-set-generator
Generate cohesive, project-specific SVG icon sets for websites and applications. Use this skill whenever the user needs custom icons, an icon set for a website or app, icons for a client project, or mentions needing SVG icons that look consistent together. Also trigger when the user describes a project and icons would naturally be part of the deliverable — e.g. "I'm building a site for a plumber" implies they'll need service icons. Trigger on: "icons for", "icon set", "custom icons", "SVG icons", "make me icons", "I need icons", "website icons", "project icons", or any request for consistent visual assets for a web project. This skill produces individual SVG files with a consistent style engine, not generic icon library lookups.
Install this agent skill to your Project
npx add-skill https://github.com/jezweb/claude-skills/tree/main/plugins/design-assets/skills/icon-set-generator
SKILL.md
Icon Set Generator
Generate custom, visually consistent SVG icon sets tailored to specific projects. Each set is built from a shared style specification so every icon looks like it belongs with the others — same stroke weight, same corner treatment, same visual density.
Why This Matters
Generic icon libraries (Lucide, Heroicons) are great but every site using them looks similar. A custom icon set gives a project distinct visual identity. The hard part is consistency — drawing 20+ icons individually causes style drift. This skill solves that by defining style rules once and enforcing them across every icon.
Workflow
Step 1: Understand the Project
Ask about the project. You need enough to suggest icons and pick a style:
- What's the business/project? (industry, name, vibe)
- Any brand guidelines or colour palette? (informs style choices even though SVGs use currentColor)
- What feel? (modern, friendly, corporate, minimal, bold)
- Roughly how many icons? (typical small site: 15-25)
A brief like "plumber in Newcastle, modern feel" is enough to proceed. Don't over-interview.
Step 2: Suggest Icons
Read references/industry-icons.md for industry-specific suggestions. Organise into groups:
- Navigation — menu, close, arrows, search
- Communication — phone, email, location, clock
- Trust — star, shield, award, users
- Actions — download, share, calendar, form
- Industry-Specific — icons unique to this business type
Present the list. Let the user add, remove, or rename before generating.
Step 3: Define the Style Spec
Read references/style-presets.md for full preset definitions. Pick one as starting point:
| Preset | Best For | Stroke | Caps/Joins | Corners |
|---|---|---|---|---|
| Clean | Most business sites | 1.5px | round/round | 2px |
| Sharp | Corporate/technical | 1.5px | square/miter | 0px |
| Soft | Friendly/approachable | 2px | round/round | 4px |
| Minimal | Elegant/editorial | 1px | round/round | 0px |
| Bold | High impact/accessible | 2.5px | round/round | 2px |
Tell the user which preset you're recommending and why, then confirm.
Step 4: Generate the Icons
Generate every icon following the SVG Rules below. Output to an icons/ directory in the project root (or the user's preferred location).
Read references/svg-examples.md before generating — it contains reference implementations showing the right level of complexity and how to handle common icon shapes.
Generate in batches of ~5. After each batch, visually review for consistency before continuing. After all icons are done, create the preview page and style-spec.json.
Step 5: Deliver
Output structure:
icons/
├── style-spec.json
├── preview.html
├── home.svg
├── phone.svg
└── ...
Present preview.html first so the user sees the complete set visually.
SVG Rules
Every icon in a set MUST follow all of these. Even small inconsistencies — a slightly different stroke width, a rounded corner where others are sharp — make the set look amateur.
SVG Template
Every icon uses this exact outer structure:
<svg xmlns="http://www.w3.org/2000/svg"
width="{grid}" height="{grid}"
viewBox="0 0 {grid} {grid}"
fill="none"
stroke="currentColor"
stroke-width="{strokeWidth}"
stroke-linecap="{strokeLinecap}"
stroke-linejoin="{strokeLinejoin}">
<!-- icon paths here -->
</svg>
Hard Rules
-
currentColoronly — Never hardcode colours. SVGs inherit colour from CSS. Nofill="#000"orstroke="blue". If a shape needs fill, usefill="currentColor". -
Identical viewBox — Every icon uses the same
viewBox. No exceptions. -
Identical root stroke attributes —
stroke-width,stroke-linecap,stroke-linejoinon the<svg>element must match across all icons. Override on individual elements only when truly necessary. -
No transforms on root — No
translate,rotate,scale. Bake positioning into coordinates. -
No IDs or classes — Keep SVGs clean for external styling.
-
Coordinate precision — Max 2 decimal places. Snap to half-pixel grid (e.g.
12,12.5, not12.333). -
Consistent padding — Maintain configured padding from viewBox edge. For 24px grid with 2px padding, draw within 2–22 coordinate range.
-
Minimal elements — Fewest
<path>,<circle>,<rect>,<line>elements practical. Simpler = smaller + faster rendering. -
Visual centring — Appear visually centred, not just mathematically centred. A leftward arrow shifts slightly right. A house with a chimney adjusts for asymmetry.
Optical Corrections
Subtle but essential for professional results:
- Curved stroke compensation: Curves appear thinner than straight lines at same stroke width. For primarily curved icons (phone, globe), make paths slightly larger rather than changing stroke width.
- Pointed shape overshoot: Arrows, chevrons, triangles extend ~0.5px beyond where a square would stop to appear the same size.
- Visual weight balancing: Simple icons (single chevron) look lighter than complex ones (gear). Make simpler icons slightly larger in the grid, or use slightly more substantial paths. No icon should look noticeably lighter or heavier than the others.
style-spec.json
{
"name": "project-name-icons",
"preset": "clean",
"grid": 24,
"strokeWidth": 1.5,
"strokeLinecap": "round",
"strokeLinejoin": "round",
"cornerRadius": 2,
"padding": 2,
"opticalBalance": true,
"iconCount": 20,
"icons": ["home", "phone", "email"],
"generated": "2026-02-15"
}
Preview Page
Generate a self-contained HTML file displaying all icons for visual review. Read references/preview-template.md for the template. Requirements:
- Grid of all icons at native size (24px) with labels
- Same grid at 2x (48px) for detail inspection
- Dark background section (white on dark) for contrast check
- Style spec summary at top
- Inline CSS, no dependencies — just open in browser
- Inline all SVGs directly into the HTML (don't reference external files)
Quality Checklist
Verify every item before delivering:
- All SVGs have identical
viewBox,stroke-width,stroke-linecap,stroke-linejoin - All SVGs use
currentColorexclusively - Visual weight is balanced across the set
- Padding is consistent (nothing touching viewBox edge)
- All icons visually centred
- Filenames are lowercase kebab-case (
arrow-right.svg) - Preview HTML renders all icons correctly
- style-spec.json is accurate and lists all icons
Reference Files
Read these before generating:
references/style-presets.md— Detailed preset definitions and selection guidancereferences/industry-icons.md— Industry-specific icon suggestionsreferences/preview-template.md— HTML template for the preview pagereferences/svg-examples.md— Example SVGs showing proper construction at various complexity levels
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
shadcn-ui
Install and configure shadcn/ui components for React projects. Guides component selection, installation order, dependency management, customisation with semantic tokens, and common UI recipes (forms, data tables, navigation, modals). Use after tailwind-theme-builder has set up the theme infrastructure, when adding components, building forms, creating data tables, or setting up navigation.
walkthrough-video
Generate professional walkthrough videos from app screenshots or live sites using Remotion. Smooth transitions, zoom effects, text overlays, and optional voiceover narration. Produces MP4 videos for demos, product showcases, or documentation. Triggers: 'walkthrough video', 'demo video', 'product video', 'create a video walkthrough', 'remotion video', 'screen recording', 'app demo', 'showcase video', 'generate video from screenshots'.
product-showcase
Generate a comprehensive marketing website for a web app — multi-page with real screenshots, animated GIF walkthroughs, feature deep-dives, and workflow demonstrations. Browses the running app, captures screens and sequences, and produces a deployable site that actually teaches people what the product does. Especially useful for complex or agentic apps that are hard to explain. Triggers: 'showcase site', 'product page', 'show off the app', 'marketing site', 'demo site', 'product showcase', 'explain the app', 'how do I market this'.
design-system
Extract a complete design system from an existing website or screenshot into a DESIGN.md file. Analyses colours, typography, component styles, spacing, and atmosphere through browser automation and HTML inspection. Produces a semantic design system document optimised for consistent page generation. Triggers: 'extract design system', 'design system', 'create DESIGN.md', 'analyse the design', 'what design does this site use', 'extract styles from', 'reverse engineer the design'.
react-patterns
React 19 performance patterns and composition architecture for Vite + Cloudflare projects. 50+ rules ranked by impact — eliminating waterfalls, bundle optimisation, re-render prevention, composition over boolean props, server/client boundaries, and React 19 APIs. Use when writing, reviewing, or refactoring React components. Triggers: 'react patterns', 'react review', 'react performance', 'optimise components', 'react best practices', 'composition patterns', 'why is it slow', 'reduce re-renders', 'fix waterfall'.
react-native
React Native and Expo patterns for building performant mobile apps. Covers list performance, animations with Reanimated, navigation, UI patterns, state management, platform-specific code, and Expo workflows. Use when building or reviewing React Native code. Triggers: 'react native', 'expo', 'mobile app', 'react native performance', 'flatlist', 'reanimated', 'expo router', 'mobile development', 'ios app', 'android app'.
Didn't find tool you were looking for?