Claude-skill-registry figma-setup
Configure Code Connect dans un projet pour mapper les composants Figma vers le code existant. Utiliser pour initialiser l'intégration Figma dans un projet, quand l'utilisateur dit "setup figma", "configurer code connect", "lier figma", ou veut connecter son design system Figma à son code.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/figma-setup" ~/.claude/skills/majiayu000-claude-skill-registry-figma-setup && rm -rf "$T"
skills/data/figma-setup/SKILL.mdFigma Setup
📥 Contexte à charger
Au démarrage, vérifier les prérequis pour Code Connect.
| Contexte | Pattern/Action | Priorité |
|---|---|---|
| Package.json | (30 lignes) | Requis |
| Framework | pour react/vue/angular/next | Requis |
| Code Connect existant | | Optionnel |
| Composants UI | | Requis |
Instructions de chargement
- Lire package.json pour vérifier Node.js et les dépendances
- Détecter le framework frontend
- Vérifier si Code Connect est déjà configuré
- Scanner les composants UI existants à mapper
Activation
Au démarrage :
- Vérifier les prérequis (Node 18+, package.json)
- Détecter le framework frontend
- Scanner les composants UI existants
- Vérifier si Code Connect déjà configuré
Rôle & Principes
Rôle : Configurer Code Connect pour mapper les composants Figma vers les composants code existants. Ne pas créer de nouveaux composants, juste établir les connexions.
Principes :
- One-time setup - Configuration initiale, pas d'usage quotidien
- Non-invasif - N'ajoute que des fichiers .figma.tsx, ne modifie pas le code existant
- Mapper l'existant - Utiliser les composants du projet, pas en créer de nouveaux
- Developer experience - Faciliter la vie des devs qui consultent Figma
Règles :
- ⛔ Ne JAMAIS modifier les composants existants
- ⛔ Ne JAMAIS créer de nouveaux composants UI
- ⛔ Ne JAMAIS commit les credentials Figma
- ✅ Toujours vérifier les prérequis avant installation
- ✅ Toujours scanner les composants existants
- ✅ Toujours valider les mappings avant publication
Process
1. Vérification des prérequis
🔧 **Figma Code Connect Setup** **Prérequis :** | Check | Status | |-------|--------| | Node.js 18+ | [✅/❌] (version: X.Y.Z) | | package.json | [✅/❌] | | Framework détecté | [React/Vue/HTML/❌] | | Composants UI | [X fichiers trouvés/❌] | **Code Connect existant :** [Oui/Non] [Si prérequis manquants] ❌ Prérequis manquants. Actions requises : - [Action 1] - [Action 2] [Si OK] ✅ Prérequis validés. On continue l'installation ?
⏸️ STOP - Validation prérequis
2. Installation de Code Connect
# Installation du package npm install -D @figma/code-connect
Vérifier le succès de l'installation.
3. Configuration figma.config.json
📝 **Configuration Code Connect** Je vais créer `figma.config.json` : ```json { "$schema": "https://figma.com/code-connect/schema", "codeConnect": { "parser": "[react|html|vue]", "include": ["src/components/**/*.figma.tsx"], "exclude": ["**/*.test.tsx", "**/*.stories.tsx"] } }
Parser détecté : [parser] (basé sur package.json)
Cette configuration te convient ?
**⏸️ STOP** - Validation configuration Créer le fichier après validation. --- ### 4. Scan des composants existants ```markdown 🔍 **Composants détectés** | Composant | Chemin | Type | |-----------|--------|------| | Button | `src/components/ui/button.tsx` | Component | | Input | `src/components/ui/input.tsx` | Component | | Card | `src/components/ui/card.tsx` | Component | | Dialog | `src/components/ui/dialog.tsx` | Component | | ... | ... | ... | **Total** : X composants candidats au mapping Ces composants correspondent à ton design system Figma ?
⏸️ STOP - Validation liste composants
5. Authentification Figma
🔐 **Authentification Figma** Pour connecter ton compte Figma, exécute : ```bash npx figma connect
Cette commande va :
- Ouvrir ton navigateur
- Te demander de te connecter à Figma
- Autoriser Claude Code à accéder à tes fichiers
- Sauvegarder les credentials localement (~/.figma/)
⚠️ Note : Les credentials sont stockés localement et ne sont PAS commités.
Exécute la commande et confirme quand c'est fait.
**⏸️ STOP** - Attendre confirmation auth --- ### 6. Création des mappings Pour chaque composant identifié, si l'utilisateur fournit une URL Figma : ```markdown 🔗 **Mapping : [ComponentName]** **Composant code** : `src/components/ui/[name].tsx` **URL Figma** : [URL fournie ou à renseigner] Je vais créer `src/components/ui/[name].figma.tsx` : ```tsx import figma from "@figma/code-connect"; import { [ComponentName] } from "./[name]"; figma.connect([ComponentName], "[FIGMA_URL]", { props: { // Props détectées depuis le composant [propName]: figma.[type]("[Figma Prop Name]"), }, example: (props) => ( <[ComponentName] {...props}> {props.children} </[ComponentName]> ), });
Ce mapping te convient ? (Tu peux aussi fournir l'URL Figma si pas encore fait)
**⏸️ STOP** - Validation mapping Répéter pour chaque composant. --- ### 7. Publication des mappings ```markdown 📤 **Publication Code Connect** **Fichiers créés** : - `figma.config.json` - `src/components/ui/button.figma.tsx` - `src/components/ui/input.figma.tsx` - ... **Prêt à publier ?** ```bash npx figma connect publish
Cela va :
- Valider tous les fichiers .figma.tsx
- Uploader les mappings vers Figma
- Rendre les connexions visibles dans l'inspecteur Figma
Confirme pour publier.
**⏸️ STOP** - Validation publication --- ### 8. Validation & Résumé ```markdown ## ✅ Figma Code Connect Configuré **Fichiers créés** : | Fichier | Description | |---------|-------------| | `figma.config.json` | Configuration Code Connect | | `*.figma.tsx` | [N] fichiers de mapping | **Composants mappés** : [N] / [Total] **Workflow quotidien** : 1. Designer modifie dans Figma 2. Dev inspecte le composant dans Figma 3. Figma affiche le code du composant mappé 4. Dev copie/utilise le code **Commandes utiles** : ```bash npx figma connect create "URL" # Créer un nouveau mapping npx figma connect publish # Publier les changements npx figma connect verify # Vérifier les mappings
Prochaine étape ?
- [A] Ajouter d'autres mappings (
)/figma-setup [url] - [F] Générer du code depuis Figma (
)/figma-to-code - [U] Importer les tokens dans UI Designer (
)/ui-designer --from-figma
**⏸️ STOP** - Fin du setup --- ## Output Validation Avant de terminer, valider : ```markdown ### ✅ Checklist Output Figma Setup | Critère | Status | |---------|--------| | @figma/code-connect installé | ✅/❌ | | figma.config.json créé | ✅/❌ | | Auth Figma configurée | ✅/❌ | | Au moins 1 mapping créé | ✅/❌ | | Mappings publiés | ✅/❌ | **Score : X/5** → Si < 4, compléter avant de terminer
Templates
figma.config.json (React)
{ "$schema": "https://figma.com/code-connect/schema", "codeConnect": { "parser": "react", "include": ["src/components/**/*.figma.tsx"], "exclude": ["**/*.test.tsx", "**/*.stories.tsx", "**/node_modules/**"] } }
figma.config.json (Vue)
{ "$schema": "https://figma.com/code-connect/schema", "codeConnect": { "parser": "html", "include": ["src/components/**/*.figma.ts"], "exclude": ["**/*.test.ts", "**/node_modules/**"] } }
Template .figma.tsx
import figma from "@figma/code-connect"; import { ComponentName } from "./component-name"; figma.connect(ComponentName, "FIGMA_URL", { props: { // String prop label: figma.string("Label"), // Boolean prop disabled: figma.boolean("Disabled"), // Enum prop variant: figma.enum("Variant", { "Primary": "primary", "Secondary": "secondary", }), // Size prop size: figma.enum("Size", { "Small": "sm", "Medium": "md", "Large": "lg", }), // Instance prop (icon, slot) icon: figma.instance("Icon"), // Children children: figma.children("Content"), }, example: (props) => ( <ComponentName variant={props.variant} size={props.size} disabled={props.disabled} > {props.label} </ComponentName> ), });
Auto-Chain
Après le setup, proposer :
## 🔗 Prochaine étape ✅ Figma Code Connect configuré avec [N] mappings. **Suggestions :** → 🖼️ **`/figma-to-code [url]`** - Générer du code depuis une sélection Figma → 🎨 **`/ui-designer --from-figma`** - Importer les tokens Figma dans le design system --- **[F] Figma to Code** | **[U] UI Designer** | **[X] Terminé**
⏸️ STOP - Attendre choix
Transitions
- Vers figma-to-code : "On génère du code depuis un design Figma ?"
- Vers ui-designer : "On importe les tokens Figma dans le design system ?"