ui-to-vue
Helps your agent convert UI screenshots into Vue 3 components. Useful when you have designs and need to turn them into code.
What it does
This tool converts app screen images (or designs) into code for the Vue.js framework. It helps create the basic structure for pages and components.
When to use it
- ✓You have multiple app screen images you want to turn into code.
- ✓Your project uses Vue.js version 3.
- ✓You want to use component libraries like Vant, Element Plus, or Ant Design Vue.
Example of what to ask your AI
“Convert these screenshots into Vue 3 components using the Vant library.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
You provide the images in a folder and specify which component library to use. The tool analyzes the images and generates the corresponding Vue code, attempting to group similar screens and create reusable components.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add affaan-m/ECC --skill ui-to-vueOr download just the file:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/ui-to-vue/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
UI To Vue
Batch-convert UI design screenshots into Vue 3 Composition API component code.
When to Use
- The user provides a directory of design screenshots or design-export images.
- The target application is Vue 3.
- The user wants a first pass of page components, shared components, and router wiring.
- The user specifies Vant, Element Plus, or Ant Design Vue as the component library.
When Not to Use
- The user has only one screenshot and wants a bespoke component.
- The target project is not Vue.
- The design requires detailed interaction logic, data flow, or accessibility review.
- The screenshots contain private customer data that cannot be sent to an external model API.
Inputs
Use an input directory that groups screenshots by module and page state:
screenshots/
|-- HomePage/
| |-- List/
| | |-- HomePage-List-Default@3x.png
| | `-- cut-images/
| |-- cut-images/
| `-- HomePage-Default@3x.png
`-- cut-images/
Supported cut-image directory names include assets, icons, sprites, cut, images, and cut-images.
Conversion Model
- Page grouping: combine related screenshots into one page component when they represent list, detail, form, loading, or empty states.
- UI library mapping: map native visual elements to Vant, Element Plus, or Ant Design Vue components where practical.
- Cut-image priority: prefer page-level assets, then module-level assets, then global shared assets.
- Component extraction: extract repeated UI regions into shared components when they appear more than once.
CLI Usage
Run the converter with npx so the documented command works without relying on a global binary:
export DASHSCOPE_API_KEY=your_key
npx ui-to-vue-converter@1.0.2 --input ./screenshots --ui vant --output ./src
For desktop UI libraries:
npx ui-to-vue-converter@1.0.2 --input ./designs --ui element-plus --output ./src
npx ui-to-vue-converter@1.0.2 --input ./designs --ui antd-vue --output ./src
If the package is installed globally, the ui-to-vue binary can be used directly:
npm install -g ui-to-vue-converter@1.0.2
ui-to-vue --input ./screenshots --ui vant --output ./src
Options
| Option | Description | Default |
|---|---|---|
--input |
Design image directory | ./screenshots |
--ui |
UI library: vant, element-plus, or antd-vue |
vant |
--output |
Output directory | ./src |
--config |
Config file path | ./.ui-to-vue.config.json |
API Key Handling
The converter can read DashScope credentials from a config file or from the environment. Prefer an environment variable in repositories:
export DASHSCOPE_API_KEY=your_key
If a local config file is required, keep it out of version control:
{
"apiKey": "your_dashscope_key",
"input": "./designs",
"ui": "vant",
"output": "./src"
}
.ui-to-vue.config.json
Security and Privacy
- Treat design screenshots as source material that may be sent to an external model API.
- Do not run this flow on private customer designs without permission.
- Pin the converter version in repeatable workflows instead of using
@latest. - Review generated Vue code before committing it.
- Do not commit
.ui-to-vue.config.json, API keys, generated secrets, or customer screenshots.
Output Review Checklist
- Page components were generated under
views/or the chosen output directory. - Repeated UI regions were extracted into
components/only when reuse is clear. - Router output is compatible with the target project's router style.
- Generated components use the requested UI library consistently.
- Generated CSS units match the design baseline.
- The code passes the project's formatter, linter, type checker, and build.
- Placeholder copy, mock data, and generated assets were reviewed before commit.
Troubleshooting
| Issue | Check |
|---|---|
401 or authentication error |
Confirm DASHSCOPE_API_KEY is set in the shell running the command. |
command not found: ui-to-vue |
Use the npx ui-to-vue-converter@1.0.2 form or install the package globally. |
| Cut images are ignored | Confirm the asset directory name is supported and nested under the matching page or module. |
| Components ignore the requested UI library | Re-run with an explicit --ui value and inspect the generated imports. |
…
FAQ
Can I use it with any image?
It's best to use design export images or screenshots organized by app page or module.
What if the images have sensitive data?
Do not use images with private data, as they will be sent to an external service for processing.
Is the generated code ready to use?
The tool generates a foundation. You will need to review and adjust the code, especially interaction logic and accessibility.
Details
Original description by the author
Use when the user has UI screenshots or design exports that need batch conversion into Vue 3 components, especially with Vant, Element Plus, or Ant Design Vue.
repo: affaan-m/ECC
Popularity
- GitHub stars
- 280k
- Ranking position
- #303
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC
Similar skills
frontend-design
Guides your agent in creating unique and intentional visual interfaces. Helps define aesthetic direction and choose typography.
anthropics/skills
paperclip-capsules
Helps your agent create visuals for 'capsules'. This includes art for agents, status, and visual identification.
paperclipai/paperclip
wireframe
Lets your agent sketch simple screen layouts. Useful for planning app appearances before building them.
paperclipai/paperclip