PluginBench
Skill
Review
Audit score 70

ui-to-vue

affaan-m/everything-claude-code

Batch-convert UI design screenshots into Vue 3 components with Vant, Element Plus, or Ant Design Vue.

What is ui-to-vue?

Converts directories of design screenshots or design-export images into Vue 3 Composition API components. Use this when you have multiple UI mockups that need to be turned into a working component library with shared components, page views, and router wiring.

  • Batch-converts design screenshots into Vue 3 Composition API components
  • Maps native UI elements to Vant, Element Plus, or Ant Design Vue components
  • Extracts repeated UI regions into reusable shared components
  • Generates page components organized by module and state (list, detail, form, loading, empty)
  • Produces router configuration alongside component output
  • Handles cut-image assets with priority ordering (page-level, module-level, global)

How to install ui-to-vue

npx skills add https://github.com/affaan-m/everything-claude-code --skill ui-to-vue
Prerequisites
  • Node.js and npm installed
  • DashScope API key (set via DASHSCOPE_API_KEY environment variable or config file)
  • Design screenshots or exports organized in a directory structure
  • Target Vue 3 project with chosen UI library (Vant, Element Plus, or Ant Design Vue)
Claude Code
Cursor
Windsurf
Cline

How to use ui-to-vue

  1. 1.Organize design screenshots in a directory structure grouped by module and page state (e.g., screenshots/HomePage/List/, screenshots/HomePage/cut-images/)
  2. 2.Set the DASHSCOPE_API_KEY environment variable: export DASHSCOPE_API_KEY=your_key
  3. 3.Run the converter with npx ui-to-vue-converter@1.0.2 --input ./screenshots --ui vant --output ./src (replace 'vant' with 'element-plus' or 'antd-vue' as needed)
  4. 4.Review the generated components in the output directory for correctness, placeholder data, and styling
  5. 5.Verify generated code passes your project's formatter, linter, type checker, and build
  6. 6.Commit reviewed components to your project, keeping API keys and config files out of version control

Use cases

Good for
  • Converting a set of mobile app mockups into a Vant-based Vue 3 application
  • Generating desktop UI components from design exports using Element Plus or Ant Design Vue
  • Batch-processing multiple page states (default, loading, empty, error) into organized component structure
  • Extracting shared UI patterns across multiple design screenshots into reusable components
  • Creating initial component scaffolding from design system exports before adding interaction logic
Who it's for
  • Vue 3 developers converting designs to code
  • Teams using Vant, Element Plus, or Ant Design Vue
  • Developers needing rapid component scaffolding from design mockups
  • Projects with multiple page states and shared component patterns

ui-to-vue FAQ

What UI libraries are supported?

Vant (mobile), Element Plus (desktop), and Ant Design Vue (desktop). Specify via the --ui flag.

How are repeated UI regions handled?

The converter extracts UI regions that appear more than once into shared components under the components/ directory.

What if I only have one screenshot?

This skill is designed for batch conversion of multiple screenshots. For a single bespoke component, direct component creation may be more efficient.

Can I use this with private customer designs?

No. Screenshots are sent to an external model API (DashScope). Do not run this on private customer data without explicit permission.

What should I do if the converter ignores my cut images?

Confirm the asset directory name is one of: assets, icons, sprites, cut, images, or cut-images, and that it is nested under the matching page or module directory.

Full instructions (SKILL.md)

Source of truth, from affaan-m/everything-claude-code.


name: ui-to-vue description: 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. metadata: origin: community

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

OptionDescriptionDefault
--inputDesign image directory./screenshots
--uiUI library: vant, element-plus, or antd-vuevant
--outputOutput directory./src
--configConfig 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

IssueCheck
401 or authentication errorConfirm DASHSCOPE_API_KEY is set in the shell running the command.
command not found: ui-to-vueUse the npx ui-to-vue-converter@1.0.2 form or install the package globally.
Cut images are ignoredConfirm the asset directory name is supported and nested under the matching page or module.
Components ignore the requested UI libraryRe-run with an explicit --ui value and inspect the generated imports.
Generated layout dimensions look wrongConfirm the screenshot export width matches the target library baseline.

References

  • npm package: ui-to-vue-converter