Figma Setup
📥 Contexte à charger
Au démarrage, vérifier les prérequis pour Code Connect.
| Contexte | Pattern/Action | Priorité |
|----------|----------------|----------|
| Package.json | Read: package.json (30 lignes) | Requis |
| Framework | Grep: package.json pour react/vue/angular/next | Requis |
| Code Connect existant | Read: figma.config.json | Optionnel |
| Composants UI | Glob: src/components/ui/*.{tsx,jsx,vue} | 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 ?"
微信扫一扫