ui-to-vue
affaan-m/ECC
Converta em lote capturas de tela do design da interface do usuário em componentes da API de Composição do Vue 3 usando o Vant, o Element Plus ou o Ant Design Vue.
...Expandir tudoUI para Vue
Converta em lote capturas de tela de design de interface do usuário em código de componentes da API de Composição do Vue 3.
Quando usar
- O usuário fornece um diretório com capturas de tela de design ou imagens exportadas do design.
- O aplicativo de destino é o Vue 3.
- O usuário deseja uma primeira versão dos componentes de página, componentes compartilhados e configuração do roteador.
- O usuário especifica Vant, Element Plus ou Ant Design Vue como biblioteca de componentes.
Quando não usar
- O usuário tem apenas uma captura de tela e deseja um componente personalizado.
- O projeto alvo não é o Vue.
- O design requer lógica de interação detalhada, fluxo de dados ou análise de acessibilidade.
- As capturas de tela contêm dados confidenciais de clientes que não podem ser enviados a uma API de modelo externa.
Entradas
Use um diretório de entrada que agrupe as capturas de tela por módulo e estado da página:
screenshots/
|-- HomePage/
| |-- List/
| | |-- [email protected]
| | `-- cut-images/
| |-- cut-images/
| `-- [email protected]
`-- cut-images/
Os nomes de diretórios de imagens recortadas compatíveis incluem assets, icons, sprites, cut, images, e cut-images.
Modelo de conversão
- Agrupamento de páginas: combine capturas de tela relacionadas em um único componente de página quando elas representarem os estados de lista, detalhe, formulário, carregamento ou vazio.
- Mapeamento da biblioteca de interface do usuário: mapeie elementos visuais nativos para componentes Vue do Vant, Element Plus ou Ant Design, sempre que possível.
- Prioridade de imagens recortadas: dê preferência a recursos no nível da página, depois aos recursos no nível do módulo e, por fim, aos recursos globais compartilhados.
- Extração de componentes: extraia regiões repetidas da interface do usuário em componentes compartilhados quando elas aparecerem mais de uma vez.
Uso da CLI
Execute o conversor com npx para que o comando documentado funcione sem depender de um binário global:
export DASHSCOPE_API_KEY=your_key
npx [email protected] --input ./screenshots --ui vant --output ./src
Para bibliotecas de interface do usuário para desktop:
npx [email protected] --input ./designs --ui element-plus --output ./src
npx [email protected] --input ./designs --ui antd-vue --output ./src
Se o pacote estiver instalado globalmente, o ui-to-vue binário pode ser usado diretamente:
npm install -g [email protected]
ui-to-vue --input ./screenshots --ui vant --output ./src
Opções
| Opção | Descrição | Padrão |
|---|---|---|
--input |
Diretório de imagens de design | ./screenshots |
--ui |
Biblioteca de interface do usuário: vant, element-plus, ou antd-vue |
vant |
--output |
Diretório de saída | ./src |
--config |
Caminho do arquivo de configuração | ./.ui-to-vue.config.json |
Gerenciamento de chaves de API
O conversor pode ler as credenciais do DashScope a partir de um arquivo de configuração ou do ambiente. É preferível usar uma variável de ambiente nos repositórios:
export DASHSCOPE_API_KEY=your_key
Se for necessário um arquivo de configuração local, mantenha-o fora do controle de versão:
{
"apiKey": "your_dashscope_key",
"input": "./designs",
"ui": "vant",
"output": "./src"
}
.ui-to-vue.config.json
Segurança e privacidade
- Trate as capturas de tela do projeto como material de origem que pode ser enviado a uma API de modelo externa.
- Não execute este fluxo em projetos privados de clientes sem permissão.
- Fixem a versão do conversor em fluxos de trabalho repetíveis, em vez de usar
@latest. - Revise o código Vue gerado antes de fazer o commit.
- Não faça commit de
.ui-to-vue.config.json, chaves de API, segredos gerados ou capturas de tela de clientes.
Lista de verificação de saída
- Os componentes da página foram gerados em
views/ou no diretório de saída escolhido. - As regiões repetidas da interface do usuário foram extraídas para
components/somente quando a reutilização for clara. - A saída do roteador é compatível com o estilo de roteador do projeto de destino.
- Os componentes gerados utilizam a biblioteca de interface do usuário solicitada de maneira consistente.
- As unidades CSS geradas correspondem à linha de base do design.
- O código é aprovado pelo formatador, linter, verificador de tipos e compilação do projeto.
- O texto provisório, os dados simulados e os recursos gerados foram revisados antes do commit.
Solução de problemas
| Problema | Verifique |
|---|---|
401 ou erro de autenticação |
Confirme DASHSCOPE_API_KEY se está definido no shell que está executando o comando. |
command not found: ui-to-vue |
Use o npx [email protected] formulário ou instale o pacote globalmente. |
| Imagens recortadas são ignoradas | Confirme se o nome do diretório de ativos é compatível e se está aninhado sob a página ou o módulo correspondente. |
| Os componentes ignoram a biblioteca de interface do usuário solicitada | Execute novamente com um --ui e verifique as importações geradas. |
| As dimensões do layout gerado parecem incorretas | Confirme se a largura da exportação da captura de tela corresponde à linha de base da biblioteca de destino. |
Referências
- Pacote npm:
ui-to-vue-converter
---
name: ui-to-vue
description: Batch-convert UI design screenshots into Vue 3 Composition API components using Vant, Element Plus, or Ant Design Vue.
---
# 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:
```text
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`.
## 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:
```bash
export DASHSCOPE_API_KEY=your_key
npx [email protected] --input ./screenshots --ui vant --output ./src
```
For desktop UI libraries:
```bash
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:
```bash
npm install -g [email protected]
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:
```bash
export DASHSCOPE_API_KEY=your_key
```
If a local config file is required, keep it out of version control:
```json
{
"apiKey": "your_dashscope_key",
"input": "./designs",
"ui": "vant",
"output": "./src"
}
```
```gitignore
.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 [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. |
## References
- npm package: `ui-to-vue-converter`
Todos os arquivos
1 arquivosInstalar ui-to-vue
Baixe e descompacte os arquivos de habilidades no diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/affaan-m/ECC/tree/main/skills/ui-to-vue # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
