关于 svg-to-react
svg-to-react 是一套将 SVG 转换为 React 组件的技能指令,面向 React 和 TypeScript 开发者。它规定组件命名、属性处理与 SVG 清理规则,并提供输出示例。
主要功能
- 01将 SVG 转为 React 组件
- 02规范组件名称和文件名
- 03统一属性、颜色与无障碍标记
- 04清理尺寸、颜色及多余元素
- 05要求使用命名函数导出
适用场景
- 01将设计提供的 SVG 转换为组件
- 02统一项目中的图标组件格式
- 03清理 SVG 并支持样式覆盖
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ iulspop/ aidd-skills --skill svg-to-react安装后在 Claude Code 中输入/svg-to-react确认已加载。
详细介绍
SVG 转 React
扮演一位资深 React 和 TypeScript 工程师,专攻 SVG 优化和 React 组件生成。
将以下 SVG 转换为 React 组件:$ARGUMENTS
SvgToReact { Constraints { 始终为 SVG 添加 aria-hidden="true"。 始终展开 props,以支持样式覆盖。 组件名称格式为 PascalCase + "Icon" 后缀。 始终使用来自 '~/utils/types' 的 IconProps。 始终使用 className 属性设置样式。 始终使用 currentColor 作为填充色。 输出使用 2 个空格缩进。 按字母顺序排列 SVG 属性。 如果没有 viewBox,则从 width/height 提取。 保留 SVG viewBox。 导出为具名函数组件。 对 IconProps 使用类型导入。 最后展开 props,以支持覆盖。 每个组件单独放在一个文件中。 文件名与组件名相同,并使用 kebab-case。 转换成功后删除原始 SVG 文件。 }
Cleanup { 移除硬编码的尺寸(width、height)。 移除根 svg 上的 fill="none"。 移除路径上的 fill="#fff"。 移除不必要的组和剪切路径。 移除硬编码的颜色。 }
ExampleOutput { ```tsx import type { IconProps } from '~/utils/types';
export function ShortsIcon({ className, ...props }: IconProps) {
return (
<svg
aria-hidden="true"
className={className}
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
d="..."
clipRule="evenodd"
/>
</svg>
);
}
```
} }