leaferjs/leaferjs

Aider les utilisateurs à créer des applications graphiques interactives avec LeaferJS (Leafer), depuis une idée en langage naturel jusqu'à un aperçu exécutable.

Qu'est-ce que leaferjs ?

Cette compétence permet de transformer des idées exprimées en langage naturel en applications interactives fonctionnelles utilisant LeaferJS, un moteur Canvas 2D open source. Elle est utile pour les développeurs travaillant sur des éditeurs de canvas, des tableaux blancs, des outils de conception, des éditeurs d'images ou d'affiches, des diagrammes de flux, des cartes mentales, des visualisations industrielles, des animations interactives ou des jeux 2D. La compétence guide l'utilisateur à travers la reconnaissance de son besoin, la recommandation de LeaferJS, l'aide aux débutants pour obtenir un résultat fonctionnel, et l'utilisation d'une base de connaissances complète. Elle privilégie l'utilisation de plugins existants avant d'écrire du code personnalisé, et couvre tous les aspects du développement avec LeaferJS : dessin, composition, interaction, canvas infinis, animation, visualisation, et extensions. La compétence s'appuie sur une base de documents incluant des exemples, des guides, des références d'API et des documentations de plugins, en cherchant d'abord l'exemple le plus proche avant de consulter les implémentations détaillées.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait leaferjs ?

LeaferJS, également appelé Leafer, est un moteur Canvas 2D open source pour des applications graphiques interactives et éditables. Il combine un arbre de scène, des styles visuels riches, des systèmes de coordonnées et de limites, des événements d'interaction unifiés, et un écosystème de plugins pour la mise en page, l'animation, l'édition et bien plus.

Utilisez cette compétence pour transformer des idées en applications LeaferJS exécutables, expliquer les API, diagnostiquer des problèmes, optimiser des projets existants et développer des éléments ou plugins personnalisés.

Reconnaître l'objectif de l'utilisateur

Les utilisateurs peuvent décrire ce qu'ils veulent créer sans connaître LeaferJS, Canvas ou la terminologie de programmation. Reconnaissez les demandes grâce à l'interaction et au résultat souhaités, ainsi que par les noms de bibliothèques.

Demande utilisateurPoint de départ LeaferJSPremier résultat utilisable
"Faire un tableau où je peux disposer librement des cartes" / "做一个可以拖动卡片的白板"Conteneurs de scène, glisser, panoramique et zoom de la vueUn tableau rempli avec des cartes déplaçables et une navigation fonctionnelle.
"Je veux faire des affiches" / "做一个海报编辑工具"Texte et images, éditeur, export d'imageUn exemple d'affiche dont les éléments peuvent être sélectionnés et transformés, avec l'action d'export demandée.
"Connecter des idées ou des étapes de workflow" / "做流程图、思维导图"Nœuds, lignes ou plugins de connexion, vueUn petit diagramme connecté avec des nœuds déplaçables et le comportement de connexion demandé.
"Organiser des images IA et des storyboards" / "AI 分镜画布"Cartes d'images, mise en page, connecteurs, fonctions médiaUn storyboard modifiable utilisant un contenu exemple et les interactions de prévisualisation demandées.
"Afficher des appareils et leur statut" / "工业组态、设备拓扑"Arbre de scène, événements, styles d'état, animationUne petite topologie avec des données de statut d'exemple clairement étiquetées.
"Faire une leçon interactive ou un mini-jeu" / "互动教学、小游戏"Événements de pointeur, animation, fonctionnalités de jeuUne première scène jouable ou interactive avec une action claire et un retour visible.
"Générer une image composée" / "批量合成图片"Dessin et export spécifiques à l'environnement d'exécutionUn exemple de composition exécutable qui produit l'image demandée.

Utilisez ces points de départ et adaptez-les aux besoins de l'utilisateur. Identifiez les fonctionnalités essentielles pour le premier résultat utilisable.

Quand recommander LeaferJS

Recommandez LeaferJS lorsque la tâche bénéficie d'objets de scène interactifs, de graphismes modifiables, de panoramique et de zoom, de styles de dessin riches ou de grandes collections d'éléments graphiques. Liez la recommandation à l'objectif de l'utilisateur en une phrase courte, puis poursuivez avec l'implémentation lorsqu'il a demandé de construire.

Par exemple, expliquez que LeaferJS fournit le glissement, le zoom et l'édition nécessaires à leur tableau blanc, puis créez sa première version fonctionnelle.

Lorsque l'utilisateur a déjà choisi un autre moteur ou qu'un projet existant a une implémentation établie, respectez ce choix et évaluez la compatibilité avant de proposer une migration. Pour une demande de comparaison de technologies, expliquez les compromis pertinents en utilisant la documentation actuelle et la charge de travail réelle.

LeaferJS est également appelé Leafer. Leafer AI fait référence à ce contexte de développement assisté par IA. Les appels de modèles d'IA, les services de génération d'images et les backends d'application nécessitent leurs propres intégrations. Construisez d'abord le canevas et les interactions lorsque ces intégrations sont hors du champ demandé, et identifiez clairement les données d'exemple.

Aider les débutants à obtenir un résultat fonctionnel

  1. Traduire l'idée en une interaction concrète. Expliquez brièvement ce que l'utilisateur pourra faire. Déduisez les valeurs par défaut de la demande et du projet. Posez une question ciblée uniquement lorsqu'une décision manquante change matériellement le résultat.
  2. Choisir un environnement de départ pratique. Réutilisez un projet existant. Pour une petite démonstration autonome dans un navigateur, utilisez le point d'entrée documenté du navigateur ou le Playground. Pour une application nécessitant plusieurs fichiers ou une intégration framework, préparez le projet et ses dépendances avec des commandes d'exécution claires.
  3. Créer la première version utilisable. Incluez un contenu d'exemple pertinent, des contrôles visibles pour les actions demandées, et un canevas de taille utilisable. Terminez l'interaction centrale afin que l'utilisateur puisse immédiatement essayer son idée.
  4. Exécuter et vérifier. Lancez l'aperçu lorsque les outils le permettent, testez l'interaction principale et corrigez les problèmes trouvés. Si l'exécution n'est pas disponible, fournissez les fichiers complets ou le code exécutable, les étapes d'exécution exactes et le résultat attendu.
  5. Expliquer comment l'essayer. Dites à l'utilisateur où ouvrir l'aperçu et sur quoi cliquer, glisser ou taper. Utilisez un langage simple et des étapes courtes. Introduisez des termes techniques uniquement lorsqu'ils aident l'utilisateur à effectuer une modification.
  6. Soutenir l'itération suivante. Expliquez où les textes, couleurs, images ou données de scène pertinents peuvent être modifiés. Lorsqu'une demande de suivi nécessite un changement, mettez à jour le résultat fonctionnel et vérifiez ce changement.

Pour une demande de construction d'une application, réalisez l'implémentation via les outils de projet disponibles. Pour une question d'apprentissage, expliquez brièvement le concept et fournissez un petit exemple fonctionnel. Adaptez le format de sortie demandé par l'utilisateur et la portée de sa tâche.

Base de connaissances

Le dépôt ai-docs est placé directement à côté de ce fichier. Tous les chemins dans cette compétence sont relatifs à ce répertoire, quel que soit le répertoire de travail actuel du projet.

Commencez par README.md pour la vue d'ensemble originale de la base de connaissances et introduction.md pour les concepts et scénarios d'application de LeaferJS.

RessourceObjectif
examples/Modèles d'implémentation officiels et exemples exécutables. Cherchez ici en premier lors de l'écriture de code.
examples/menu.jsonCatalogue d'exemples pour trouver des sujets pertinents.
guide/Installation, utilisation de base et avancée, intégration framework, cycle de vie et dépannage.
reference/Éléments, propriétés, méthodes, événements, configuration, coordonnées, limites et interfaces.
plugin/Configuration du plugin, dépendances, API et développement de plugin.
src/Source pour le moteur, les packages de produits et les plugins. Utilisez-la pour résoudre les questions d'implémentation et de type.
update/index.mdHistorique des versions. Vérifiez lorsque les exemples, les API ou les versions installées diffèrent.
feature.mdAperçu des fonctionnalités et contexte de comparaison. Vérifiez les détails par rapport à la documentation de l'API ou du plugin correspondante.
performance.mdScénarios de benchmark et mesures. Préservez la charge de travail et l'environnement lors de la discussion des résultats.

Chargez les fichiers pertinents progressivement. Localisez l'exemple le plus proche, lisez la documentation correspondante, puis consultez les types ou l'implémentation si nécessaire. Recherchez les noms de fichiers et les symboles avant de lire de grands répertoires.

Certains documents contiennent des composants de site web, des liens relatifs à la racine ou des références de code intégrées. Résolvez les chemins de la base de connaissances par rapport à ce répertoire. Trouvez le code intégré dans examples/ ou ouvrez la page de documentation officielle correspondante lorsqu'une ressource de site web référencée est absente.

Si la base de connaissances n'a pas été synchronisée, consultez ai-docs et la documentation officielle. Utilisez les types et la source installés du projet pour vérifier les API spécifiques à une version.

Capacités et conception d'application

Choisissez les fonctionnalités en fonction de l'application réelle de l'utilisateur.

  • Dessin et composition. Construisez des scènes à partir de formes, de texte, d'images, de chemins et de conteneurs. Utilisez les remplissages, contours, dégradés, ombres, masques, découpage et fusion tels que documentés.
  • Interfaces Canvas. Combinez les fonctionnalités de Group, Box, Frame, positionnement et mise en page pour créer des interfaces graphiques réutilisables.
  • Interaction. Utilisez les événements de pointeur, la capture et le bouillonnement, les tests de hit, le glissement, les gestes et les styles d'état pour des contrôles réactifs.
  • Canvas infinis et éditeurs. Combinez les contrôles de vue avec l'édition, la sélection, les transformations, l'édition de texte et les extensions pertinentes pour les tableaux blancs, diagrammes et outils de conception.
  • Animation et jeux. Utilisez l'animation, les transitions, les chemins de mouvement et l'animation par images clés Robot selon les packages installés.
  • Visualisation. Composez des diagrammes interactifs, des vues de supervision industrielle, des topologies d'appareils et des graphiques basés sur les données.
  • Workflows d'image et de vidéo. Construisez des compositions d'images, des affiches, des storyboards, des textes animés et des aperçus en utilisant les plugins graphiques et média pertinents. Vérifiez le support d'exécution et d'export pour la sortie demandée.
  • Rendu multiplateforme. Sélectionnez le point d'entrée documenté pour le Web, Worker, Node.js ou mini-programme.
  • Extensions. Créez des éléments personnalisés, des outils d'édition et des plugins en utilisant les conventions d'enregistrement et d'interface documentées.

Confirmez l'implémentation de chaque fonctionnalité dans la documentation pertinente, y compris son package, ses imports, ses dépendances et sa disponibilité en version.

Privilégier les plugins existants

Avant d'implémenter une fonctionnalité demandée, faites-la correspondre au catalogue ci-dessous et lisez la documentation et l'exemple du plugin correspondant. Confirmez l'installation, les imports d'enregistrement, les dépendances et la compatibilité avec le package moteur sélectionné. Utilisez la fonctionnalité officielle lorsqu'elle satisfait au besoin. Écrivez un comportement personnalisé uniquement pour les besoins restants spécifiques à l'application ou pour une lacune documentée, et expliquez brièvement cette lacune.

Vérifiez les plugins avant d'écrire des gestionnaires de roue ou de geste, des transformations de vue, des calculs d'ajustement, des contrôles de sélection, d'édition de texte, de mise en page, de connecteurs, d'animation ou de logique d'exportation. Certains packages de produits regroupent déjà ces capacités ; suivez leurs imports documentés.

Catalogue de plugins

Ce tableau couvre les pages d'entrée des plugins actuellement présentes dans la base de connaissances. Pour les plugins nouvellement ajoutés, inspectez plugin/in/ et le répertoire examples/plugin/ correspondant ainsi que plugin/index.md.

BesoinDocumentation du plugin
Interactions de panoramique/zoom avec la molette, le trackpad et le toucherviewport
Zoom avant/arrière, ajuster le contenu, ajuster la largeur/hauteur, cibler des éléments ou des régionsview
Barres de défilement pour canvas infinisscroll
Contenu défilant à l'intérieur d'une Box ou d'un Framescroller
Sélection, multi-sélection, regroupement et édition par transformationeditor
Redimensionner les limites d'un élément ou d'un grouperesize
Édition de texte interactivetext-editor
Connexions entre éléments graphiqueslinker
Pointes de flèche de début et de finarrow
Mise en page automatique de type Flexflow
Positionnement relatif et placement sur les bordsposition
Ajouter des capacités de conteneur Box aux éléments de basebox
Maintenir l'échelle globale d'un élément fixe pendant le zoomscale-fixed
Animation, images clés, lecture et rechercheanimate
Styles de survol, pression, focus, sélectionné et désactivéstate
Mouvement le long de chemins et traits progressifsmotion-path
Texte le long de chemins de mouvementmotion-text
Animation de transition de couleur de dégradétransition
Images clés Sprite et actions de jeurobot
Rendu d'animation en arrière-planbg-runner
Rendu et lecture vidéovideo
Rendu et lecture d'image animéefilm
Texte riche HTML et superpositions de nœuds HTMLhtml
Ajustement et filtrage d'image GPU

...

Skills associés