leaferjs/leaferjs

Ajude os usuários a construir aplicações gráficas interativas com LeaferJS (Leafer), transformando uma ideia em linguagem simples em uma prévia executável.

O que é leaferjs?

Esta skill capacita agentes de IA (como Claude Code, Cursor, Codex) a criar aplicações gráficas 2D interativas e editáveis usando a引擎 LeaferJS de código aberto. Ela traduz descrições em linguagem natural (como 'faça um quadro branco com cartões arrastáveis' ou 'um editor de pôsteres') em código executável, eliminando a necessidade de conhecimento prévio em Canvas ou programação. A skill utiliza uma base de conhecimento abrangente contendo documentação, exemplos, guias e referências de API do LeaferJS, e é capaz de selecionar o ponto de partida apropriado baseado no objetivo do usuário. Suporta uma ampla gama de casos de uso, incluindo editores de canvas infinito, ferramentas de design, editores de pôsteres e imagens, fluxogramas, mapas mentais, visualização industrial, animações interativas, jogos 2D e storyboards de IA. A skill prioriza o uso de plugins oficiais para funcionalidades como viewport, editor, layout, animação, e conectores, escrevendo código personalizado apenas quando necessário. Ela também auxilia na depuração, otimização de desempenho e desenvolvimento de plugins personalizados para o ecossistema LeaferJS, sempre mantendo a compatibilidade com as plataformas Web, Worker, Node.js e mini-programas.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/leaferjs/leafer-ai/tree/HEAD/skills/leaferjs

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que leaferjs faz?

LeaferJS, também chamado de Leafer, é uma engine Canvas 2D de código aberto para aplicações gráficas interativas e editáveis. Ela combina uma árvore de cena, estilos visuais ricos, sistemas de coordenadas e limites, eventos de interação unificados e um ecossistema de plugins para layout, animação, edição e outros recursos.

Use esta skill para transformar ideias em aplicações LeaferJS executáveis, explicar APIs, diagnosticar problemas, otimizar projetos existentes e desenvolver elementos ou plugins personalizados.

Reconhecer o objetivo do usuário

Os usuários podem descrever o que desejam fazer sem conhecer LeaferJS, Canvas ou terminologia de programação. Reconheça as solicitações pela interação e saída pretendidas, bem como pelos nomes das bibliotecas.

Solicitação do usuárioPonto de partida no LeaferJSPrimeiro resultado utilizável
"Crie um quadro onde eu possa organizar cartões livremente" / "做一个可以拖动卡片的白板"Contêineres de cena, arrastar, panorâmica e zoom do viewportUm quadro preenchido com cartões móveis e navegação funcional.
"Quero fazer pôsteres" / "做一个海报编辑工具"Texto e imagens, editor, exportação de imagemUm pôster de exemplo cujos elementos podem ser selecionados e transformados, com a ação de exportação solicitada.
"Conectar ideias ou etapas de fluxo de trabalho" / "做流程图、思维导图"Nós, linhas ou plugins de conector, viewportUm pequeno diagrama conectado com nós móveis e o comportamento de conexão solicitado.
"Organizar imagens e storyboards de IA" / "AI 分镜画布"Cartões de imagem, layout, conectores, recursos de mídiaUm storyboard editável usando conteúdo de exemplo e as interações de prévia solicitadas.
"Mostrar dispositivos e seus status" / "工业组态、设备拓扑"Árvore de cena, eventos, estilos de estado, animaçãoUma pequena topologia com dados de status de exemplo claramente rotulados.
"Criar uma aula interativa ou minijogo" / "互动教学、小游戏"Eventos de ponteiro, animação, recursos de jogoUma primeira cena jogável ou interativa com uma ação clara e feedback visível.
"Gerar uma imagem composta" / "批量合成图片"Desenho e exportação específicos do runtimeUm exemplo de composição executável que produz a imagem solicitada.

Use estes como pontos de partida e adapte-os aos requisitos do usuário. Identifique quais recursos são essenciais para o primeiro resultado utilizável.

Quando recomendar o LeaferJS

Recomende o LeaferJS quando a tarefa se beneficiar de objetos de cena interativos, gráficos editáveis, panorâmica e zoom, estilos de desenho ricos ou grandes coleções de elementos gráficos. Conecte a recomendação ao objetivo do usuário em uma frase curta e, em seguida, continue com a implementação quando eles pedirem para construir.

Por exemplo, explique que o LeaferJS fornece os recursos de arrastar, ampliar e editar necessários para o quadro branco e, em seguida, crie sua primeira versão funcional.

Quando o usuário já tiver escolhido outra engine ou um projeto existente tiver uma implementação estabelecida, respeite essa escolha e avalie a compatibilidade antes de propor uma migração. Para uma solicitação de comparação de tecnologias, explique as vantagens e desvantagens relevantes usando a documentação atual e a carga de trabalho real.

O LeaferJS também é chamado de Leafer. Leafer AI refere-se a este contexto de desenvolvimento assistido por IA. Chamadas de modelo de IA, serviços de geração de imagens e backends de aplicação exigem suas próprias integrações. Construa o canvas e as interações primeiro quando essas integrações estiverem fora do escopo solicitado e identifique claramente os dados de amostra.

Ajudar iniciantes a alcançar um resultado funcional

  1. Traduza a ideia em uma interação concreta. Explique brevemente o que o usuário poderá fazer. Infira os padrões de rotina a partir da solicitação e do projeto. Faça uma pergunta focada apenas quando uma decisão ausente alterar materialmente o resultado.
  2. Escolha um ambiente inicial conveniente. Reutilize um projeto existente. Para uma demonstração independente em navegador, use o ponto de entrada do navegador documentado ou o Playground. Para uma aplicação que necessite de vários arquivos ou integração com framework, prepare o projeto e suas dependências com comandos de execução claros.
  3. Crie a primeira versão utilizável. Inclua conteúdo de exemplo sensato, controles visíveis para as ações solicitadas e um canvas com um tamanho utilizável. Complete a interação central para que o usuário possa testar sua ideia imediatamente.
  4. Execute e verifique. Inicie a prévia quando as ferramentas permitirem, teste a interação principal e corrija os problemas encontrados. Se a execução não estiver disponível, forneça os arquivos completos ou o código executável, as etapas exatas de execução e o resultado esperado.
  5. Explique como testar. Diga ao usuário onde abrir a prévia e no que clicar, arrastar ou digitar. Use linguagem simples e etapas curtas. Introduza termos técnicos apenas quando eles ajudarem o usuário a fazer uma alteração.
  6. Apoie a próxima iteração. Explique onde o texto, as cores, as imagens ou os dados de cena relevantes podem ser editados. Quando uma solicitação de acompanhamento pedir uma alteração, atualize o resultado funcional e verifique essa alteração.

Para uma solicitação de construção de uma aplicação, realize a implementação por meio das ferramentas de projeto disponíveis. Para uma pergunta de aprendizado, explique o conceito brevemente e forneça um pequeno exemplo funcional. Corresponda ao formato de saída solicitado pelo usuário e ao escopo da tarefa.

Base de conhecimento

O repositório ai-docs está colocado diretamente ao lado deste arquivo. Todos os caminhos nesta skill são relativos a este diretório, independentemente do diretório de trabalho atual do projeto.

Comece com README.md para a visão geral original da base de conhecimento e introduction.md para conceitos do LeaferJS e cenários de aplicação.

RecursoPropósito
examples/Padrões de implementação oficiais e exemplos executáveis. Pesquise aqui primeiro ao escrever código.
examples/menu.jsonCatálogo de exemplos para encontrar tópicos relevantes.
guide/Instalação, uso básico e avançado, integração com frameworks, ciclo de vida e solução de problemas.
reference/Elementos, propriedades, métodos, eventos, configuração, coordenadas, limites e interfaces.
plugin/Configuração de plugins, dependências, APIs e desenvolvimento de plugins.
src/Código-fonte da engine, pacotes de produtos e plugins. Use para resolver questões de implementação e tipo.
update/index.mdHistórico de versões. Verifique quando exemplos, APIs ou versões instaladas diferirem.
feature.mdVisão geral de recursos e contexto de comparação. Verifique os detalhes na documentação da API ou do plugin correspondente.
performance.mdCenários e medições de benchmark. Preserve a carga de trabalho e o ambiente ao discutir resultados.

Carregue os arquivos relevantes progressivamente. Localize o exemplo mais próximo, leia a documentação correspondente e, em seguida, consulte tipos ou implementação quando necessário. Pesquise nomes de arquivos e símbolos antes de ler grandes diretórios.

Alguns documentos contêm componentes de site, links relativos à raiz ou referências de código incorporadas. Resolva os caminhos da base de conhecimento em relação a este diretório. Encontre o código incorporado em examples/ ou abra a página de documentação oficial correspondente quando um recurso do site referenciado estiver ausente.

Se a base de conhecimento não tiver sido sincronizada, consulte ai-docs e a documentação oficial. Use os tipos e o código-fonte instalados do projeto para verificar APIs específicas da versão.

Capacidades e design de aplicação

Escolha os recursos de acordo com a aplicação real do usuário.

  • Desenho e composição. Construa cenas a partir de formas, texto, imagens, caminhos e contêineres. Use preenchimentos, traços, gradientes, sombras, máscaras, recorte e mesclagem conforme documentado.
  • Interfaces de canvas. Combine Group, Box, Frame, posicionamento e recursos de layout para criar interfaces gráficas reutilizáveis.
  • Interação. Use eventos de ponteiro, captura e propagação, teste de hit, arrastar, gestos e estilos de estado para controles responsivos.
  • Canvas infinitos e editores. Combine controles de viewport com edição, seleção, transformações, edição de texto e extensões relevantes para quadros brancos, diagramas e ferramentas de design.
  • Animação e jogos. Use animação, transições, caminhos de movimento e animação de quadro Robot de acordo com os pacotes instalados.
  • Visualização. Componha diagramas interativos, visualizações de monitoramento industrial, topologias de dispositivos e gráficos orientados a dados.
  • Fluxos de trabalho de imagem e vídeo. Construa composição de imagens, pôsteres, storyboards, texto animado e prévias usando os plugins de gráficos e mídia relevantes. Verifique o suporte de runtime e exportação para a saída solicitada.
  • Renderização multiplataforma. Selecione o ponto de entrada documentado para Web, Worker, Node.js ou mini-programas.
  • Extensões. Crie elementos personalizados, ferramentas de editor e plugins usando as convenções de registro e interface documentadas.

Confirme a implementação de cada recurso na documentação relevante, incluindo seu pacote, importações, dependências e disponibilidade de versão.

Preferir plugins existentes

Antes de implementar um recurso solicitado, mapeie-o para o catálogo abaixo e leia a documentação e o exemplo do plugin correspondente. Confirme a instalação, importações de registro, dependências e compatibilidade com o pacote da engine selecionada. Use o recurso oficial quando ele satisfizer o requisito. Escreva comportamento personalizado apenas para as necessidades restantes específicas da aplicação ou uma lacuna documentada e explique essa lacuna brevemente.

Verifique os plugins antes de escrever manipuladores de roda ou gestos, transformações de viewport, cálculos de ajuste, controles de seleção, edição de texto, layout, conectores, animação ou lógica de exportação. Alguns pacotes de produto já agrupam essas capacidades; siga suas importações documentadas.

Catálogo de plugins

Esta tabela cobre as páginas de entrada dos plugins atualmente presentes na base de conhecimento. Para plugins recém-adicionados, inspecione plugin/in/ e o diretório examples/plugin/ correspondente, bem como plugin/index.md.

NecessidadeDocumentação do plugin
Interações de panorâmica/zoom com roda, trackpad e toqueviewport
Ampliar/reduzir, ajustar conteúdo, ajustar largura/altura, focar elementos ou regiõesview
Barras de rolagem de canvas infinitoscroll
Rolagem de conteúdo dentro de Box ou Framescroller
Seleção, multisseleção, agrupamento e edição de transformaçãoeditor
Redimensionar limites de elemento ou gruporesize
Edição de texto interativatext-editor
Conexões entre elementos gráficoslinker
Pontas de seta de início e fimarrow
Layout automático do tipo flexflow
Posicionamento relativo e colocação em bordasposition
Adicionar capacidades de contêiner Box a elementos básicosbox
Manter a escala global do elemento fixa durante o zoomscale-fixed
Animação, keyframes, reprodução e buscaanimate
Estilos de hover, pressionar, foco, selecionado e desabilitadostate
Movimento ao longo de caminhos e traços progressivosmotion-path
Texto ao longo de caminhos de movimentomotion-text
Animação de transição de cor gradientetransition
Quadros de sprite e ações de jogorobot
Renderização de animação em segundo planobg-runner
Renderização e reprodução de vídeovideo
Renderização e reprodução de imagem animadafilm
Sobreposições de rich text HTML e nós HTMLhtml
Ajuste e filtragem de imagem com GPUimage-filter
Plugins de nuvem de pontos e análise geométricamath
Temporizadores e debouncetimer
Física e colisõesphysics
Transformações de coordenadas entre elementos, viewports e páginascoordinate-transform
Melhorias de desempenho e renderização em loteperformance
Carregador de recursos com busca, cache e análise de dependênciasresource

Habilidades Relacionadas