joshuashepherd/my-skills/icon-audit
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Audit and fix icon usage for movemental — mixed libraries, wrong sizes, hardcoded colors, missing accessibility, and illustration anti-patterns. Enforces lucide-react as the single icon library.
Install
npx vskill@latest install joshuashepherd/my-skills/icon-auditSKILL.md
Audit and fix icon anti-patterns across the movemental codebase.
Target: $ARGUMENTS
If no target is provided, scan src/components/ and src/app/(site)/.
Before Starting
- Read
docs/design/DESIGN.md— icon conventions. - Grep for icon imports to understand current usage patterns.
Icon Standard
Single library: `lucide-react` — no other icon libraries allowed.
Size Scale
| Context | Size | Tailwind | |
|---|---|---|---|
| Inline with text | 16px | size-4 | |
| Standard UI | 20px | size-5 | |
| Feature cards | 20-24px | size-5 or size-6 | |
| Hero features | 24px | size-6 |
Color
- Icons inherit
currentColorby default - Use semantic tokens via parent:
text-primary,text-muted-foreground, etc. - Never hardcode icon colors (
text-blue-600,fill="#000")
Accessibility
- Decorative icons:
aria-hiddenattribute - Meaningful icons (no adjacent label): wrap with
<span className="sr-only">Label</span> - Icon-only buttons: must have
aria-label
Audit Checklist
1. WRONG LIBRARY (Critical)
Search for non-lucide icon imports:
@heroicons/react→ replace with lucide equivalentreact-icons→ replace with lucide equivalent@radix-ui/react-icons→ replace with lucide equivalent- Material Symbols (
material-symbols-outlined) → replace with lucide - Inline SVGs that duplicate a lucide icon → use the lucide component
2. SIZE INCONSISTENCY (High)
- Mixed icon sizes in the same context (e.g.,
size-4andsize-6in the same card grid) - Icons not using the Tailwind
size-*utility (usingw-5 h-5instead ofsize-5) - Icons larger than
size-6(24px) in non-hero contexts
3. COLOR VIOLATIONS (High)
- Hardcoded colors:
text-blue-600,fill="#0053db",stroke="black" - Should use parent's semantic color or explicit token:
text-primary,text-muted-foreground
4. ACCESSIBILITY (Medium)
- Decorative icons missing
aria-hidden - Icon-only buttons without
aria-label - Icons conveying meaning without text alternative
5. FLEX COMPRESSION (Medium)
- Icons inside flex containers without
shrink-0(can get squished) - Fix: add
shrink-0to icons in flex layouts
Output Format
Rules
- Lucide is the ONLY icon library. No exceptions.
- Icons use
size-*utility, notw-*/h-*pairs. - All decorative icons get
aria-hidden. - Never modify
src/components/ui/*— only domain components and pages.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingclaude/design/icon-audit/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/joshuashepherd/my-skills/icon-audit)