一键导入
add-icon
Turn raw SVG markup into a React icon component in src/icons/. Use when the user provides SVG markup and wants it added as an icon.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Turn raw SVG markup into a React icon component in src/icons/. Use when the user provides SVG markup and wants it added as an icon.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Draft short project release notes from git tag diffs. Use when asked to summarize changes between releases/tags, especially when release notes should reference pull request numbers.
Turn raw SVG markup into an Astro icon component in website/src/icons/. Use when the user provides SVG markup and wants it added as a website Astro icon.
Analyze frontend performance recordings and propose ranked optimizations. Use when the user wants to optimize a slow interaction or analyze a Chrome/Safari performance trace.
| name | add-icon |
| description | Turn raw SVG markup into a React icon component in src/icons/. Use when the user provides SVG markup and wants it added as an icon. |
You are turning raw SVG markup the user provides into a React icon component in src/icons/.
Get the SVG: The user will give you raw SVG markup (often copy-pasted from Streamline, Figma, etc.).
Pick a filename: Use a short kebab-case name describing the icon (e.g. settings.tsx, arrow-right.tsx). Infer obvious icon names without asking. For common brand logos, use the brand name (e.g. GitHub → github.tsx). Ask the user only if the name is truly ambiguous.
Pick a component name: PascalCase + Icon suffix (e.g. SettingsIcon, ArrowRightIcon, GithubIcon).
Transform the SVG:
export const <Name>Icon = ({ className }: { className?: string }) => (...)<svg> tag: keep xmlns, fill, and viewBox. Add className={className}. Remove hardcoded width and height — size is controlled by Tailwind (size-4, size-6, etc.).stroke="#000000") with stroke="currentColor". Same for fill if it's a color — but leave fill="none" alone.id attributes, <desc> tags, <title> tags, and any other vendor metadata.strokeWidth, strokeLinecap, strokeLinejoin, d, and other geometry-defining attributes.Write the file to src/icons/<name>.tsx immediately. Use bash with a quoted heredoc instead of the write tool to avoid slow line-by-line UI rendering:
cat > src/icons/<name>.tsx <<'EOF'
...
EOF
src/icons/<name>.tsx after transforming.bash with a quoted heredoc for file creation; do not use the write tool unless bash is unavailable.Input:
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="Foo" height={24} width={24}>
<desc>Some vendor blurb</desc>
<g id="group"><path id="p1" stroke="#000000" d="M6 0v14" strokeWidth={2} /></g>
</svg>
Output (src/icons/foo.tsx):
export const FooIcon = ({ className }: { className?: string }) => (
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" className={className}>
<g>
<path stroke="currentColor" d="M6 0v14" strokeWidth={2} />
</g>
</svg>
)
Usage: <FooIcon className="size-4 text-primary" />