by kubai087
A Claude skill that draws dynamic icons in one consistent style, with hover motion or as static SVG.
# Add to your Claude Code skills
git clone https://github.com/kubai087/kubai-iconsGuides for using ai agents skills like kubai-icons.
See how kubai-icons compares with popular alternatives.
kubai-icons is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by kubai087. A Claude skill that draws dynamic icons in one consistent style, with hover motion or as static SVG. It has 66 GitHub stars.
kubai-icons's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/kubai087/kubai-icons" and add it to your Claude Code skills directory (see the Installation section above). kubai-icons ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
kubai-icons is primarily written in HTML. It is open-source under kubai087 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh kubai-icons against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
这个 skill 自带完整的实现:引擎、一整套范例图标、展示页、自检脚本和静态导出脚本。你的工作是按规则写新图标,不是重写引擎。
PROMPT.md:全部设计规则,每一条都是硬性要求。动手前完整读一遍。src/engine.js:引擎。颜色推导、外描边遮罩、厚度带渐变、投影和内发光滤镜、插值动画、色板都在这里。直接复用,不要改。src/icons.js:范例图标。新图标按同样的格式追加。src/app.js、index.html:展示页。ORDER 决定展示哪些图标、按什么顺序排。scripts/check.mjs:自检脚本。在无头 Chrome 里截出静止、悬停、悬停过程的中间帧、24px、28px 和所有色板,并读出每一页的脚本报错。临时文件都放在输出目录里,跑完自动清理。scripts/export.mjs:静态导出。把图标渲染成不依赖脚本和样式表的独立 SVG 文件,可以指定色板、主色和静止或悬停状态。读 PROMPT.md。
确定交付形式。用户没说清楚时先问一句:
src/engine.js 在页面里运行。适合网页和能跑 JS 的界面。.svg 文件,没有动效,任何地方都能用:设计工具、原生 App、文档、<img>。用户提到"切图""SVG 文件""放进 Figma""App 里用"等,就是要静态。确定在哪里做:
index.html、src/、scripts/ 复制到目标位置(一个新目录或新仓库),在那份副本里工作。保留每个文件开头的版权声明;PROMPT.md 和 SKILL.md 只留在 skill 里,不要复制进去(见 LICENSE 第 3 条)。src/icons.js 里追加。读产品代码,列出功能。动态版每个功能写一句"物体 + 悬停动作";静态版只需要确定物体(PROMPT.md 第 1 节)。
每写一个图标之前,先在 src/icons.js 里找一两个结构最接近的范例读一遍(例如翻开的东西看信封和日历,切出前片的看下载和上传,会旋转的看齿轮和星标),照它们的写法来。
把名字加进 src/app.js 的 ORDER。用不到的范例,不放进 ORDER 就不会显示。
运行自检,把新图标和几个现有图标放在一起看:
node scripts/check.mjs --only 新图标A,新图标B --with 文件夹,邮件,下载
截图在 check-out/。逐条对照 PROMPT.md 第 10 节的清单检查;脚本报出错误时先修错误。往复类动作看 frames.png;查细缝时加 --scale 3;查浅主色上的标记时加 --accent #F59E0B,把所有图标换成同一个主色。不加 --only 就检查整套。静态版看 rest.png、size-24.png、size-28.png 和 palettes.png 就够了。
改到全部通过后,更新 README 里提到的图标数量,以及展示页每个断点的列数(列数要能整除图标总数,断点可以增删)。
要静态时,导出到用户指定的目录,并告诉用户用的是哪个色板:
node scripts/export.mjs --only 新图标A,新图标B --palette 彩色 --out 目标目录
--palette 按名字选色板(彩色、蓝灰、青瓷、薄荷、薰衣草、杏色、黑色),--accent #hex 把所有图标换成一个主色,--state hover 导出悬停结束时的样子,--size 设定像素尺寸,--pad 给投影留出边距。每个图标一个 名字.svg。
CHROME 覆盖。Copyright (c) 2026 Kubai087. Licensed under the Kubai Icons License; see LICENSE.
Kubai Icons is a skill for Claude. Give it a feature list or a product's code, and it draws icons that sit next to the 66 in this repository as if the same designer had made them, either with hover motion or as static SVG files. The repository ships everything that makes that repeatable, so the model only has to decide what the icon is and draw its shapes:
| Part | What it does for the model |
|---|---|
PROMPT.md |
The rules, each one a hard requirement: canvas and keylines, layers, corners and outlines, light, colour, marks and motion. |
src/engine.js |
Colour derivation, outside outlines, gradients, shadows, interpolation and palettes are already built. New icons reuse them instead of reinventing them. |
src/icons.js |
66 worked examples. Each new icon starts from the closest one in structure. |
scripts/check.mjs |
A headless self-check: rest, hover, every moment in between, 24px, 28px and every palette. The model looks at the screenshots and fixes the icon until the checklist passes. |
These six icons were drawn by a fresh Claude session that had nothing but SKILL.md and PROMPT.md: an alarm clock, a notebook, a QR scanner, an exit door, a calculator and a compass. Each round of these blind tests closes the gaps it finds in the rules, so the next set comes out closer to the rest.
Copy this into Claude Code and send it:
Install the Kubai Icons skill for me:
clone https://github.com/kubai087/kubai-icons into ~/.claude/skills/kubai-icons
(if it's already there, pull the latest version instead),
make sure ~/.claude/skills/kubai-icons/SKILL.md exists, and tell me when it's ready.
Then restart Claude Code, and the skill is ready to use.
Download kubai-icons-v*.zip from the latest release and unzip it into your skills folder:
unzip kubai-icons-v1.0.0.zip -d ~/.claude/skills/
Or clone the repository there:
git clone https://github.com/kubai087/kubai-icons.git ~/.claude/skills/kubai-icons
Either way, Claude Code picks the skill up the next time it starts.
Publishing to a skill marketplace that asks for a version and display names in SKILL.md? Upload kubai-icons-v*-platform.zip from the same release; it carries those fields at the top of the frontmatter.
The skill asks for careful geometry, layering across animation frames, and several rounds of looking at its own screenshots. It was developed and blind-tested with Claude Opus 5.5, which gives the most consistent results. Choose it in your client's model picker, or start Claude Code with:
claude --model claude-opus-5-5
Describe what you need in plain words. The skill triggers on requests about icons, so you don't need to name it.
PROMPT.md, then writes one line per feature: an everyday object and what it does on hover ("a folder opens", "a lock springs open").To start a new set for your own product, the skill copies the engine, gallery and self-check into your project and works there.
Tell Claude which one you need, or it will ask.
| Dynamic (default) | Static | |
|---|---|---|
| What you get | SVG + JS that changes shape on hover, run by the engine | Self-contained .svg files, one per icon, no script or stylesheet |
| Where it fits | Web pages and any interface that runs JavaScript | Design tools, native apps, documents, <img> tags |
| Motion | Two keyframes per part, rest and hover | None; the rest pose or the end of the hover |
Ask for "static SVG files" or "icons I can drop into Figma", and the skill draws the icons the same way, then exports them. You can also export any icon in this repository yourself:
node scripts/export.mjs --only 文件夹,日历 --palette 薄荷 --out icons/
| Option | What it does |
|---|---|
--palette |
彩色 (default), 蓝灰, 青瓷, 薄荷, 薰衣草, 杏色 or 黑色. |
--accent #hex |
Paints every icon in one accent colour. |
--state hover |
Exports the end of the hover instead of the rest pose. |
--size 96 |
Width and height in pixels. |
--pad 2.5 |
Room around the canvas, in icon units, so the shadow isn't cut off. |
--out dir |
Where the files go; export/ by default. |
Every icon is a back piece, optional white content and a front piece, like a folder holding a sheet of paper. Outlines sit outside the fill, so shapes keep their full size. Every gradient, outline and shadow is derived from one accent colour, so a single value repaints the whole icon. Each part has exactly two keyframes, rest and hover, and the motion is something the object itself does: the folder opens, the envelope unseals, the calendar turns to the next day.
Seven palettes come with the set: one colour per icon, five clear tones built from a single base colour (blue-grey, celadon, mint, lavender, apricot), and black. Changing palette animates the colours too.
www.kubai.design/kubai-icons shows the whole set. Hover any icon, switch palettes, or turn on the demo to watch them all move. Locally, open index.html in a browser.
Needs Node.js 18 or later and Chrome. Everything runs headless; no window opens.
node scripts/check.mjs --only 剪刀,地图 --with 文件夹,邮件,下载
| Option | What it does |
|---|---|
--only |
Checks only these icons. Without it, the whole set. |
--with |
Adds existing icons beside them for comparison. |
--accent #F59E0B |
Paints every icon in one accent colour, to check marks on light accents. |
--scale 3 |
Renders every sheet at 3×, to look for seams. |
--out dir |
Writes the screenshots somewhere other than check-out/. |
CHROME overrides the browser path. The animations in this README come from node scripts/media.mjs, which also needs ffmpeg and img2webp.
There are two ways in:
CONTRIBUTING.md has the rules for both. Please read the code of conduct too; security issues go through SECURITY.md.
This repository is under the Kubai Icons License. It is source-available, not open source. In short:
PROMPT.md, SKILL.md), sell the skill, remove its notices, or present it under another name or as your own work.The Kubai and Lumno names and logos are not licensed for reuse. The construction comes from the bookmark folder icon in Lumno.