skills/ui-to-vue/SKILL.md
Batch-convert UI design screenshots into Vue 3 Composition API component code.
Use an input directory that groups screenshots by module and page state:
screenshots/
|-- HomePage/
| |-- List/
| | |-- [email protected]
| | `-- cut-images/
| |-- cut-images/
| `-- [email protected]
`-- cut-images/
Supported cut-image directory names include assets, icons, sprites, cut, images, and cut-images.
Run the converter with npx so the documented command works without relying on a global binary:
export DASHSCOPE_API_KEY=your_key
npx [email protected] --input ./screenshots --ui vant --output ./src
For desktop UI libraries:
npx [email protected] --input ./designs --ui element-plus --output ./src
npx [email protected] --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 [email protected]
ui-to-vue --input ./screenshots --ui vant --output ./src
| 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 |
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
@latest..ui-to-vue.config.json, API keys, generated secrets, or customer screenshots.views/ or the chosen output directory.components/ only when reuse is clear.| 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 [email protected] 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. |
| Generated layout dimensions look wrong | Confirm the screenshot export width matches the target library baseline. |
ui-to-vue-converter