Figma ↔ SwiftUI
Traduction bidirectionnelle entre les designs Figma et le code SwiftUI. Ce fichier est un routeur — les consignes réelles se trouvent dans les références ci-dessous.
Choisir la direction
| Direction | Déclencheur | Référence |
|---|---|---|
| Design → code | L'utilisateur veut du SwiftUI dans son projet iOS à partir d'un fichier/frame Figma | references/design-to-code.md |
| Code → design | L'utilisateur veut pousser des views / écrans / tokens SwiftUI dans un fichier Figma | references/code-to-design.md |
Si la demande est ambiguë — une URL Figma et des fichiers .swift présents, aucun verbe qui clarifie — demande à l'utilisateur la direction avant de charger une référence.
Contexte partagé (s'applique aux deux directions)
Ces points valent indépendamment de la direction ; les références spécifiques à une direction les supposent.
get_design_contextest l'outil de lecture pour Figma. PasseclientLanguages: "swift"etclientFrameworks: "swiftui"pour que la réponse soit structurée pour Swift. URL → arguments de l'outil :figma.com/design/:fileKey/:fileName?node-id=:nodeId→ utilisefileKey, remplace-par:dansnodeId. Pourfigma.com/design/:fileKey/branch/:branchKey/:fileName, utilisebranchKeycommefileKey.- Le React+Tailwind dans la sortie de
get_design_contextest une référence structurelle, pas une source littérale. Il approxime le visuel. Ne translittère jamaisposition: absolute/ frames en pixels / piles demix-blend-modedans SwiftUI ou dans Figma — la capture d'écran est la source de vérité dans les deux directions. - Les couleurs sémantiques iOS HIG sont des tokens, pas du hex.
var(--backgrounds/primary, …),var(--labels/secondary, …),var(--separators/non-opaque, …)etc. correspondent àColor(.systemBackground),Color.secondary,Color(.separator)en SwiftUI, et à des variables dans une collection sémantique dans Figma. Conserve le mappage ; supprime le RGBA littéral. - Les SF Symbols font l'aller-retour par nom dans les deux directions — jamais par codepoint. Design → code :
get_design_contextremplace les glyphes SF Symbol de Figma par des wrappers<SFSymbol>{Image(systemName: "...")}</SFSymbol>dans la réponse. Utilise ces noms verbatim. Code → design : appellefigma.util.getSfSymbolCharacter(name)dansuse_figmapour convertir un nom de symbol en le caractère correspondant — ne cherche jamais les codepoints à la main. - Reconnais le pattern iOS sous-jacent, pas le nom littéral du nœud / de la view. Les mêmes patterns se répètent dans les deux directions : grand titre + chevron retour + action trailing = chrome de
NavigationStack; rangée basse de paires icône+label =TabView; rangées répétées de même hauteur avec chrome leading/trailing =List. Fais correspondre ces patterns système plutôt que de les reconstruire à partir de primitives. - Pour code → design,
use_figmaest l'API. Charge toujoursfigma-useavant tout appeluse_figma. Si la tâche implique de construire un écran complet, charge aussifigma-generate-design; si elle implique de construire des composants ou un système de design, charge aussifigma-generate-library.
Références
| Doc | Quand charger |
|---|---|
| references/design-to-code.md | Traduire un design / frame Figma en SwiftUI |
| references/code-to-design.md | Pousser des views / écrans / tokens SwiftUI dans Figma |