227 lines
16 KiB
Markdown
227 lines
16 KiB
Markdown
# Matrice de fonctionnalités Figma
|
||
|
||
Comparaison fonctionnalité par fonctionnalité des capacités de Figma Design avec l'état d'implémentation actuel d'Open Pencil.
|
||
|
||
::: tip Légende des statuts
|
||
✅ Supporté — la fonctionnalité est complète · 🟡 Partiel — le comportement de base existe, certaines sous-fonctionnalités manquent · 🔲 Pas encore implémenté
|
||
:::
|
||
|
||
**Couverture :** 94 des 158 éléments Figma traités — 76 ✅ entièrement supportés, 18 🟡 partiels, 64 🔲 en attente. Dernière mise à jour : 2026-03-07.
|
||
|
||
## Interface et navigation
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Barre d'outils de design | ✅ | Barre inférieure (style UI3) : Sélection, Frame, Section, Rectangle, Ellipse, Ligne, Texte, Main, Plume |
|
||
| Panneau des calques (barre latérale gauche) | ✅ | Vue en arbre avec expansion/réduction, réordonnancement par glissement, toggle de visibilité ; largeur redimensionnable |
|
||
| Panneau des pages | ✅ | Ajouter, supprimer, renommer des pages ; état viewport par page |
|
||
| Panneau de propriétés (barre latérale droite) | ✅ | Sections : Apparence, Remplissage, Contour, Effets, Typographie, Layout, Position ; largeur redimensionnable |
|
||
| Zoom et défilement | ✅ | <kbd>Ctrl</kbd> + scroll, pinch, <kbd>⌘</kbd><kbd>+</kbd> / <kbd>⌘</kbd><kbd>−</kbd> / <kbd>⌘</kbd><kbd>0</kbd>, espace+glisser, souris milieu, outil main (H) |
|
||
| Règles du canevas | ✅ | Règles haut/gauche avec bandes de sélection et badges de coordonnées |
|
||
| Couleur de fond du canevas | ✅ | Fond par page via le panneau de propriétés |
|
||
| Guides du canevas | 🔲 | Figma supporte des guides glissables depuis les règles |
|
||
| Menu d'actions / palette de commandes | 🔲 | Recherche d'actions rapides de Figma |
|
||
| Menu contextuel | ✅ | Clic droit avec presse-papiers, ordre-z, groupement, composant, visibilité, verrouillage, déplacer-vers-page |
|
||
| Raccourcis clavier | 🟡 | Raccourcis de base + composants + ordre-z + visibilité/verrouillage implémentés ; Échelle, Flèche, Crayon, retournement, formatage texte pas encore câblés |
|
||
| Rechercher et remplacer | 🔲 | Recherche/remplacement de texte dans le document |
|
||
| Vue des contours de calques | 🔲 | Vue filaire de tous les calques |
|
||
| Miniatures personnalisées | 🔲 | Miniature générée à l'export, mais pas de sélecteur personnalisé |
|
||
| Réglages de valeur de nudge | 🔲 | Défaut 1px/10px ; Figma permet des valeurs personnalisées |
|
||
| Menu de l'app (mode navigateur) | ✅ | Menus Fichier, Édition, Affichage, Objet, Texte, Disposition ; Tauri utilise les menus natifs |
|
||
| Outils IA | 🟡 | 90+ outils via Anthropic, OpenAI, Google AI, OpenRouter + serveur MCP ; pas d'images générées par IA ni de recherche IA encore |
|
||
|
||
## Calques et formes
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Outils de forme (Rectangle, Ellipse, Ligne, Polygone, Étoile) | ✅ | Tous les types de forme de base ; côtés du polygone et rayon intérieur de l'étoile configurables |
|
||
| Frames | ✅ | Découpe du contenu, système de coordonnées indépendant |
|
||
| Groupes | ✅ | <kbd>⌘</kbd><kbd>G</kbd> pour grouper, <kbd>⇧</kbd><kbd>⌘</kbd><kbd>G</kbd> pour dégrouper |
|
||
| Sections | ✅ | Pilules de titre, auto-adoption des nœuds superposés, texte adaptatif à la luminance |
|
||
| Outil arc (arcs, demi-cercles, anneaux) | ✅ | arcData avec angle début/fin et rayon intérieur |
|
||
| Outil crayon (main levée) | 🔲 | Outil de dessin à main levée de Figma |
|
||
| Masques | 🔲 | Masques de forme pour découper les calques |
|
||
| Types de calques et hiérarchie | ✅ | 17 types de nœuds, Map plat + arbre parent-enfant |
|
||
| Sélectionner des calques | ✅ | Clic, shift-clic, sélection par marquise |
|
||
| Alignement et position | ✅ | Position, rotation, dimensions dans le panneau |
|
||
| Copier et coller des objets | ✅ | Presse-papiers standard + format binaire Kiwi de Figma |
|
||
| Mettre à l'échelle proportionnellement | 🟡 | Shift-redimensionner contraint les proportions ; pas d'outil Scale dédié (K) |
|
||
| Verrouiller et déverrouiller des calques | ✅ | <kbd>⇧</kbd><kbd>⌘</kbd><kbd>L</kbd> toggle le verrouillage |
|
||
| Basculer la visibilité | ✅ | Icône œil dans le panneau + raccourci <kbd>⇧</kbd><kbd>⌘</kbd><kbd>H</kbd> |
|
||
| Renommer des calques | ✅ | Double-clic renommage inline ; Entrée/Échap/clic pour valider |
|
||
| Mettre au premier plan / Envoyer en arrière | ✅ | Raccourcis ] et [ ; aussi dans le menu contextuel |
|
||
| Déplacer vers une page | ✅ | Déplacer les nœuds entre pages via menu contextuel |
|
||
| Contraintes (redimensionnement réactif) | 🔲 | Épingler bords/centre pour le comportement de resize parent |
|
||
| Sélection intelligente (distribuer/aligner) | 🔲 | Espacer et aligner uniformément |
|
||
| Guides de layout (colonnes, lignes, grille) | 🔲 | Guides colonne/ligne/grille sur les frames |
|
||
| Mesurer les distances entre calques | 🔲 | Alt-survol pour afficher les distances |
|
||
| Éditer des objets en lot | ✅ | Panneau multi-sélection : valeurs partagées affichées normalement, valeurs différentes affichent « Mixed » |
|
||
| Identifier les objets similaires | 🔲 | Trouver des calques similaires |
|
||
| Copier/coller des propriétés | 🔲 | Copier remplissage/contour/effets entre calques |
|
||
| Relations parent-enfant | ✅ | Hiérarchie complète avec parentIndex, re-parentage par glissement |
|
||
|
||
## Outils vectoriels
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Réseaux vectoriels | ✅ | Modèle compatible Figma, pas de chemins simples |
|
||
| Outil plume | ✅ | Points d'angle, courbes de Bézier, chemins ouverts/fermés |
|
||
| Éditer des calques vectoriels | 🟡 | Création fonctionne ; édition avancée de sommets limitée |
|
||
| Opérations booléennes (Union, Soustraction, Intersection, Exclusion) | 🔲 | Combiner des formes avec des opérations booléennes |
|
||
| Aplatir des calques | 🔲 | Fusionner les chemins vectoriels |
|
||
| Convertir les contours en chemins | 🔲 | Commande Outline Stroke |
|
||
| Convertir le texte en chemins | 🔲 | Aplatir le texte en contours vectoriels |
|
||
| Outil shape builder | 🔲 | Outil booléen interactif |
|
||
| Décalage de chemin | 🔲 | Inset/outset d'un chemin vectoriel |
|
||
| Simplifier le chemin | 🔲 | Réduire le nombre de points vectoriels |
|
||
|
||
## Texte et typographie
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Outil texte et édition en ligne | ✅ | Édition native sur canevas, textarea phantom, style runs (<kbd>⌘</kbd><kbd>B</kbd> / <kbd>I</kbd> / <kbd>U</kbd>, bouton S) |
|
||
| Rendu de texte (Paragraph API) | ✅ | CanvasKit Paragraph pour le façonnage, les sauts de ligne, les métriques |
|
||
| Chargement de polices (polices système) | ✅ | Inter par défaut, font-kit dans Tauri avec cache OnceLock, queryLocalFonts dans le navigateur |
|
||
| Famille et graisse de police | ✅ | FontPicker avec défilement virtuel, recherche, aperçu CSS |
|
||
| Taille de police et interligne | ✅ | Éditable dans la section typographie |
|
||
| Alignement du texte | 🟡 | Alignement de base ; Figma a l'alignement vertical et les modes auto-largeur/hauteur |
|
||
| Styles de texte | 🟡 | Gras/italique/souligné/barré par sélection ; pas de presets réutilisables encore |
|
||
| Modes de redimensionnement du texte | 🔲 | Modes auto-largeur, auto-hauteur, taille-fixe de Figma |
|
||
| Listes à puces et numérotées | 🔲 | Formatage de listes dans le texte |
|
||
| Liens dans le texte | 🔲 | Hyperliens dans le contenu texte |
|
||
| Emojis et symboles intelligents | 🔲 | Rendu d'émojis et caractères spéciaux |
|
||
| Fonctionnalités OpenType | 🔲 | Ligatures, alternatives stylistiques, chiffres tabulaires |
|
||
| Polices variables | 🔲 | Axes de police ajustables (graisse, largeur, inclinaison) |
|
||
| Support texte CJK | 🔲 | Rendu du texte chinois, japonais, coréen |
|
||
| Support texte RTL | 🔲 | Mise en page de texte de droite à gauche |
|
||
| Polices d'icônes | 🔲 | Gestion spéciale des glyphes de polices d'icônes |
|
||
|
||
## Couleur, dégradés et images
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Sélecteur de couleur (HSV) | ✅ | Carré HSV, curseur de teinte, curseur alpha, entrée hex |
|
||
| Remplissages solides | ✅ | Couleur hex avec opacité |
|
||
| Dégradé linéaire | ✅ | Arrêts de dégradé, poignées de transformation |
|
||
| Dégradé radial | ✅ | Rendu via shaders CanvasKit |
|
||
| Dégradé angulaire | ✅ | Support dégradé sweep/conique |
|
||
| Dégradé diamant | ✅ | Dégradé diamant à quatre points |
|
||
| Remplissages d'image | ✅ | Décodés à partir de données blob avec modes d'échelle (fill, fit, crop, tile) |
|
||
| Remplissages de motif | 🔲 | Remplissages d'image/motif répétitif |
|
||
| Modes de fusion | 🔲 | Modes de fusion de calque et remplissage (multiply, screen, overlay, etc.) |
|
||
| Ajouter des images et vidéos | 🟡 | Remplissages d'image rendus ; pas d'import drag-and-drop ni support vidéo |
|
||
| Ajustement des propriétés d'image | 🔲 | Exposition, contraste, saturation, etc. |
|
||
| Recadrer une image | 🔲 | Recadrage interactif d'images |
|
||
| Outil pipette | 🔲 | Échantillonner des couleurs du canevas |
|
||
| Édition de couleur en sélection mixte | 🔲 | Ajuster les couleurs dans une sélection hétérogène |
|
||
| Modèles de couleur (RGB, HSL, HSB, Hex) | 🟡 | HSV + Hex dans le sélecteur ; pas de bascule mode HSL ou RGB |
|
||
|
||
## Effets et propriétés
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Ombre portée | ✅ | Décalage, rayon de flou, couleur via filtres CanvasKit |
|
||
| Ombre intérieure | ✅ | Effet d'ombre inset |
|
||
| Flou de calque | ✅ | Flou gaussien sur le calque |
|
||
| Flou d'arrière-plan | ✅ | Flouter le contenu derrière le calque |
|
||
| Flou de premier plan | ✅ | Flou au premier plan |
|
||
| Épaisseur du contour | ✅ | Configurable dans le panneau de propriétés |
|
||
| Extrémité du contour (round, square, arrow) | ✅ | `NONE`, `ROUND`, `SQUARE`, `ARROW_LINES`, `ARROW_EQUILATERAL` |
|
||
| Jointure du contour (miter, bevel, round) | ✅ | Les trois types de jointure |
|
||
| Motifs de tirets | ✅ | Motif de contour dash-on/dash-off |
|
||
| Rayon de coin | ✅ | Rayon uniforme et par coin avec toggle indépendant |
|
||
| Lissage de coin (style iOS) | 🔲 | Arrondi continu des coins de Figma |
|
||
| Remplissages/contours multiples par calque | 🔲 | Figma permet d'empiler remplissages et contours |
|
||
|
||
## Auto Layout
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Flux horizontal et vertical | ✅ | Moteur flexbox Yoga WASM |
|
||
| Basculer auto layout (<kbd>⇧</kbd><kbd>A</kbd>) | ✅ | Basculer sur un frame ou envelopper la sélection |
|
||
| Gap (espacement entre enfants) | ✅ | Configurable dans le panneau de propriétés |
|
||
| Padding (uniforme et par côté) | ✅ | Les quatre côtés indépendamment |
|
||
| Justify content | ✅ | Start, center, end, space-between |
|
||
| Align items | ✅ | Start, center, end, stretch |
|
||
| Dimensionnement des enfants (fixe, remplir, ajuster) | ✅ | Modes de dimensionnement par enfant |
|
||
| Wrap | ✅ | Flex wrap pour layout multi-ligne |
|
||
| Flux auto layout en grille | ✅ | CSS Grid via fork Yoga — tracks colonnes/lignes, gaps, spans |
|
||
| Flux combinés (imbriqués) | ✅ | Frames auto-layout imbriqués avec directions différentes |
|
||
| Réordonnancer par glissement dans auto layout | ✅ | Indicateur visuel d'insertion |
|
||
| Largeur/hauteur min et max | 🔲 | Figma supporte les contraintes min/max |
|
||
|
||
## Composants et systèmes de design
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Créer des composants | 🟡 | <kbd>⌥</kbd><kbd>⌘</kbd><kbd>K</kbd> crée depuis frame/groupe ; pas d'UI de propriétés de composant encore |
|
||
| Ensembles de composants | 🟡 | <kbd>⇧</kbd><kbd>⌘</kbd><kbd>K</kbd> combine des composants ; bordure pointillée violette ; pas d'édition de propriétés de variante |
|
||
| Instances de composants | 🟡 | Créer instance depuis menu contextuel ; sync en direct ; pas d'UI d'édition de surcharges |
|
||
| Variantes | 🔲 | Changement de variante et sélection par propriétés |
|
||
| Propriétés de composant | 🔲 | Propriétés booléennes, texte, échange d'instance |
|
||
| Propagation des surcharges | ✅ | Changements du composant principal propagés ; surcharges préservées |
|
||
| Variables (couleur, nombre, chaîne, booléen) | 🟡 | `COLOR` avec UI complète ; `FLOAT`/STRING/BOOLEAN définis sans UI d'édition |
|
||
| Collections et modes de variables | 🟡 | Collections, modes, changement activeMode fonctionnent ; pas d'UI de thématisation |
|
||
| Styles (couleur, texte, effet, layout) | 🔲 | Presets de style réutilisables nommés |
|
||
| Bibliothèques (publier, partager, mettre à jour) | 🔲 | Bibliothèques partagées de composants/styles |
|
||
| Détacher une instance | ✅ | <kbd>⌥</kbd><kbd>⌘</kbd><kbd>B</kbd> convertit une instance en frame |
|
||
| Aller au composant principal | ✅ | Naviguer vers le composant source, cross-page |
|
||
|
||
## Prototypage
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Connexions de prototype | 🔲 | Pas encore pris en charge |
|
||
| Déclencheurs (clic, survol, glisser, etc.) | 🔲 | Pas encore pris en charge |
|
||
| Actions (naviguer, overlay, scroll, etc.) | 🔲 | Pas encore pris en charge |
|
||
| Animations et transitions | 🔲 | Pas encore pris en charge |
|
||
| Smart animate | 🔲 | Auto-animer les calques correspondants |
|
||
| Overlays | 🔲 | Prototypage modal/popover |
|
||
| Comportement de scroll et overflow | 🔲 | Frames scrollables dans les prototypes |
|
||
| Flux de prototype | 🔲 | Points de départ nommés |
|
||
| Variables dans les prototypes | 🔲 | Logique conditionnelle avec variables |
|
||
| Easing et animations spring | 🔲 | Courbes d'animation personnalisées |
|
||
| Présenter et jouer les prototypes | 🔲 | Visionneuse de prototype plein écran |
|
||
|
||
## Import et export
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Import de fichier .fig | ✅ | Codec Kiwi complet : 194 définitions, ~390 champs par `NodeChange` |
|
||
| Export de fichier .fig | ✅ | Encodage Kiwi + compression Zstd + génération de miniature |
|
||
| Enregistrer / Enregistrer sous | ✅ | <kbd>⌘</kbd><kbd>S</kbd> / <kbd>⇧</kbd><kbd>⌘</kbd><kbd>S</kbd> ; dialogues natifs (Tauri), File System Access API (Chrome/Edge), téléchargement (Safari) |
|
||
| Presse-papiers Figma (coller) | ✅ | Décoder binaire Kiwi du presse-papiers Figma |
|
||
| Presse-papiers Figma (copier) | ✅ | Encoder binaire Kiwi lisible par Figma |
|
||
| Import de fichier Sketch | 🔲 | Analyse de fichiers .sketch |
|
||
| Export image/SVG | 🟡 | PNG/JPG/WEBP avec sélecteur d'échelle et aperçu ; WEBP/SVG export ✅ ; PDF export 🔲 |
|
||
| Historique des versions | 🔲 | Parcourir et restaurer les versions précédentes |
|
||
| Copier des assets entre outils | 🟡 | Presse-papiers Figma fonctionne ; Copier comme texte/SVG/PNG/JSX |
|
||
|
||
## API de plugins et scripting
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Commande eval avec Figma Plugin API | ✅ | Exécution headless de JavaScript avec objet global figma compatible |
|
||
|
||
## Collaboration et mode développeur
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Commentaires (épingler, fils, résoudre) | 🔲 | Pas encore pris en charge |
|
||
| Multijoueur en temps réel | ✅ | P2P via Trystero + Yjs CRDT, curseurs, mode suivi ; sans serveur |
|
||
| Chat au curseur | 🔲 | Bulles de chat inline au curseur |
|
||
| Branching et merging | 🔲 | Branches de version pour fichiers de design |
|
||
| Mode développeur (inspecter) | 🟡 | Onglet Code montre JSX ; pas de propriétés CSS ni specs de handoff |
|
||
| Code Connect | 🔲 | Lier composants de design au code |
|
||
| Extraits de code | 🟡 | Export JSX avec coloration et copie ; pas d'extraits CSS/Swift/Kotlin |
|
||
| Figma for VS Code | 🔲 | Intégration plugin éditeur |
|
||
| Serveur MCP | ✅ | @open-pencil/mcp avec transports stdio + HTTP ; 90+ outils core + 3 gestion de fichiers = 90+ total |
|
||
| Outils CLI | ✅ | CLI headless : info, tree, find, export, analyze, node, pages, variables, eval ; serveur MCP |
|
||
|
||
## Figma Draw
|
||
|
||
| Fonctionnalité | Statut | Notes |
|
||
|---------------|--------|-------|
|
||
| Outils d'illustration | 🔲 | Outils de dessin spécialisés de Figma Draw |
|
||
| Transformations de motif | 🔲 | Créer des motifs répétitifs avec des transformations |
|