@atezer/figma-mcp-bridge 1.7.23 → 1.7.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.claude-plugin/plugin.json +37 -0
  2. package/.cursor-plugin/plugin.json +21 -0
  3. package/CHANGELOG.md +30 -0
  4. package/README.md +4 -3
  5. package/agents/ds-auditor.md +29 -0
  6. package/agents/screen-builder.md +29 -0
  7. package/agents/token-syncer.md +26 -0
  8. package/assets/logo.png +0 -0
  9. package/commands/add-library.md +122 -0
  10. package/commands/ds-add.md +255 -0
  11. package/commands/ds-sync.md +314 -0
  12. package/commands/implement.md +43 -0
  13. package/commands/install-library.md +73 -0
  14. package/commands/setup.md +26 -0
  15. package/commands/test.md +39 -0
  16. package/commands/update.md +25 -0
  17. package/dist/core/config.d.ts +1 -5
  18. package/dist/core/config.d.ts.map +1 -1
  19. package/dist/core/config.js +11 -111
  20. package/dist/core/config.js.map +1 -1
  21. package/dist/core/plugin-bridge-server.d.ts.map +1 -1
  22. package/dist/core/plugin-bridge-server.js +1 -2
  23. package/dist/core/plugin-bridge-server.js.map +1 -1
  24. package/dist/core/response-guard.d.ts +1 -1
  25. package/dist/core/response-guard.js +1 -1
  26. package/dist/core/types/index.d.ts +2 -98
  27. package/dist/core/types/index.d.ts.map +1 -1
  28. package/dist/core/version.d.ts +1 -1
  29. package/dist/core/version.js +1 -1
  30. package/dist/local-plugin-only.d.ts.map +1 -1
  31. package/dist/local-plugin-only.js +14 -13
  32. package/dist/local-plugin-only.js.map +1 -1
  33. package/f-mcp-plugin/README.md +8 -15
  34. package/f-mcp-plugin/manifest.json +1 -3
  35. package/hooks/hooks.json +26 -0
  36. package/package.json +15 -31
  37. package/skills/BRAND_PROFILE_SCHEMA.md +113 -0
  38. package/skills/SKILL_INDEX.md +194 -0
  39. package/skills/TOOL_MAPPING.md +111 -0
  40. package/skills/ai-handoff-export/SKILL.md +254 -0
  41. package/skills/apply-figma-design-system/SKILL.md +104 -0
  42. package/skills/audit-figma-design-system/SKILL.md +278 -0
  43. package/skills/code-design-mapper/SKILL.md +370 -0
  44. package/skills/component-documentation/SKILL.md +190 -0
  45. package/skills/design-drift-detector/SKILL.md +407 -0
  46. package/skills/design-system-rules/SKILL.md +407 -0
  47. package/skills/design-token-pipeline/SKILL.md +619 -0
  48. package/skills/ds-impact-analysis/SKILL.md +266 -0
  49. package/skills/figjam-diagram-builder/SKILL.md +172 -0
  50. package/skills/figma-a11y-audit/SKILL.md +587 -0
  51. package/skills/figma-canvas-ops/SKILL.md +325 -0
  52. package/skills/figma-screen-analyzer/SKILL.md +235 -0
  53. package/skills/fix-figma-design-system-finding/SKILL.md +117 -0
  54. package/skills/fmcp-project-rules/SKILL.md +93 -0
  55. package/skills/generate-figma-library/SKILL.md +598 -0
  56. package/skills/generate-figma-screen/SKILL.md +689 -0
  57. package/skills/implement-design/SKILL.md +473 -0
  58. package/skills/ux-copy-guidance/SKILL.md +373 -0
  59. package/skills/visual-qa-compare/SKILL.md +166 -0
  60. package/dist/browser/base.d.ts +0 -50
  61. package/dist/browser/base.d.ts.map +0 -1
  62. package/dist/browser/base.js +0 -6
  63. package/dist/browser/base.js.map +0 -1
  64. package/dist/browser/local.d.ts +0 -81
  65. package/dist/browser/local.d.ts.map +0 -1
  66. package/dist/browser/local.js +0 -283
  67. package/dist/browser/local.js.map +0 -1
  68. package/dist/core/console-monitor.d.ts +0 -82
  69. package/dist/core/console-monitor.d.ts.map +0 -1
  70. package/dist/core/console-monitor.js +0 -428
  71. package/dist/core/console-monitor.js.map +0 -1
  72. package/dist/core/design-system-manifest.d.ts +0 -272
  73. package/dist/core/design-system-manifest.d.ts.map +0 -1
  74. package/dist/core/design-system-manifest.js +0 -261
  75. package/dist/core/design-system-manifest.js.map +0 -1
  76. package/dist/core/enrichment/enrichment-service.d.ts +0 -52
  77. package/dist/core/enrichment/enrichment-service.d.ts.map +0 -1
  78. package/dist/core/enrichment/enrichment-service.js +0 -272
  79. package/dist/core/enrichment/enrichment-service.js.map +0 -1
  80. package/dist/core/enrichment/index.d.ts +0 -8
  81. package/dist/core/enrichment/index.d.ts.map +0 -1
  82. package/dist/core/enrichment/index.js +0 -8
  83. package/dist/core/enrichment/index.js.map +0 -1
  84. package/dist/core/enrichment/relationship-mapper.d.ts +0 -106
  85. package/dist/core/enrichment/relationship-mapper.d.ts.map +0 -1
  86. package/dist/core/enrichment/relationship-mapper.js +0 -352
  87. package/dist/core/enrichment/relationship-mapper.js.map +0 -1
  88. package/dist/core/enrichment/style-resolver.d.ts +0 -80
  89. package/dist/core/enrichment/style-resolver.d.ts.map +0 -1
  90. package/dist/core/enrichment/style-resolver.js +0 -327
  91. package/dist/core/enrichment/style-resolver.js.map +0 -1
  92. package/dist/core/figma-api.d.ts +0 -137
  93. package/dist/core/figma-api.d.ts.map +0 -1
  94. package/dist/core/figma-api.js +0 -274
  95. package/dist/core/figma-api.js.map +0 -1
  96. package/dist/core/figma-desktop-connector.d.ts +0 -242
  97. package/dist/core/figma-desktop-connector.d.ts.map +0 -1
  98. package/dist/core/figma-desktop-connector.js +0 -1042
  99. package/dist/core/figma-desktop-connector.js.map +0 -1
  100. package/dist/core/figma-reconstruction-spec.d.ts +0 -162
  101. package/dist/core/figma-reconstruction-spec.d.ts.map +0 -1
  102. package/dist/core/figma-reconstruction-spec.js +0 -387
  103. package/dist/core/figma-reconstruction-spec.js.map +0 -1
  104. package/dist/core/figma-tools.d.ts +0 -21
  105. package/dist/core/figma-tools.d.ts.map +0 -1
  106. package/dist/core/figma-tools.js +0 -2920
  107. package/dist/core/figma-tools.js.map +0 -1
  108. package/dist/core/snippet-injector.d.ts +0 -24
  109. package/dist/core/snippet-injector.d.ts.map +0 -1
  110. package/dist/core/snippet-injector.js +0 -97
  111. package/dist/core/snippet-injector.js.map +0 -1
  112. package/dist/core/types/enriched.d.ts +0 -213
  113. package/dist/core/types/enriched.d.ts.map +0 -1
  114. package/dist/core/types/enriched.js +0 -6
  115. package/dist/core/types/enriched.js.map +0 -1
  116. package/dist/local.d.ts +0 -73
  117. package/dist/local.d.ts.map +0 -1
  118. package/dist/local.js +0 -2605
  119. package/dist/local.js.map +0 -1
@@ -0,0 +1,407 @@
1
+ ---
2
+ name: design-system-rules
3
+ description: iOS, Android ve Web platformlarına özel design system kuralları oluşturur. Figma variable ve style verilerini analiz ederek akıllı kural üretimi yapar. "create design system rules", "design system kuralları oluştur", "platform kuralları ayarla", "DS standartlarını belirle", "token kullanım kuralları" ifadeleriyle tetiklenir. F-MCP Bridge plugin bağlantısı gerektirir.
4
+ metadata:
5
+ mcp-server: user-figma-mcp-bridge
6
+ personas:
7
+ - designops
8
+ - uidev
9
+ ---
10
+
11
+ # Design System Rules Generator (Multi-Platform)
12
+
13
+ > **Design Token Kuralı:** Bu skill'deki kod örneklerinde geçen font adları, renk kodları, piksel boyutları yalnızca FORMAT gösterimidir. Çalışma anında tüm design token değerleri (font, renk, boyut, spacing, radius, gölge) kayıtlı kütüphaneden (`figma_get_variables`, `figma_get_styles`) veya kullanıcıdan okunmalıdır. Hardcoded token değeri kullanma. Detay: `project-context.md` → "Design Token Kuralı".
14
+
15
+ ## Overview
16
+
17
+ Bu skill, **iOS, Android ve Web** platformlarına özel design system kuralları oluşturur. Her platformun kendi framework'ü, naming convention'ı ve dosya yapısı olduğu için, kurallar platform-spesifik olarak üretilir.
18
+
19
+ Figma'daki variable ve style verilerini analiz ederek projenin mevcut yapısına uygun kurallar üretir.
20
+
21
+ REST API veya Figma access token gerekmez.
22
+
23
+ ## Prerequisites
24
+
25
+ - F-MCP Bridge plugin Figma'da çalışıyor ve bağlı olmalı
26
+ - Hangi platformlara hizmet verildiği bilinmeli
27
+ - Platform proje dizinleri erişilebilir olmalı
28
+
29
+ ## F-MCP skill koordinasyonu
30
+
31
+ - **Önce:** Figma isimlendirme ve bağlılık için isteğe bağlı **audit-figma-design-system** veya **design-token-pipeline** çıktılarıyla hizala.
32
+ - **Sonra:** Üretilen kuralları **design-drift-detector** ve **implement-design** doğrulamalarında referans al; tuval ihlali için **apply-figma-design-system** / **fix-figma-design-system-finding**.
33
+
34
+ ## Required Workflow
35
+
36
+ ### Step 1: Plugin Bağlantısını Doğrula
37
+
38
+ ```
39
+ figma_get_status()
40
+ ```
41
+
42
+ ### Step 2: Figma Design System Verilerini Çek
43
+
44
+ ```
45
+ figma_get_design_system_summary(currentPageOnly=false)
46
+ ```
47
+
48
+ ```
49
+ figma_get_token_browser(verbosity="full")
50
+ ```
51
+
52
+ ```
53
+ figma_get_variables(verbosity="full")
54
+ ```
55
+
56
+ ```
57
+ figma_get_styles(verbosity="full")
58
+ ```
59
+
60
+ Bu verilerden çıkar:
61
+ - Token kategorileri ve isimlendirme yapısı
62
+ - Mode'lar (Light/Dark, brand varyantları vb.)
63
+ - Variable'ların `resolvedType`, `valuesByMode`, `scopes` bilgileri
64
+ - Hangi variable'ların alias olduğu (referans zincirleri)
65
+
66
+ **Not:** Plugin-only modda enrichment (health score, unused variables, circular references) otomatik olarak hesaplanmaz. Bu analizleri kendin yapmalısın: aynı isimdeki variable'ları, referans edilmeyen variable'ları ve döngüsel alias'ları raw veriden tespit et.
67
+
68
+ ### Step 3: Her Platform İçin Codebase Analizi
69
+
70
+ Her platform projesini ayrı analiz et:
71
+
72
+ **iOS Projesi:**
73
+ - Proje yapısı (SPM / CocoaPods / tuist)
74
+ - SwiftUI mi UIKit mi?
75
+ - Mevcut Color extension'ları / Asset Catalog yapısı
76
+ - Typography tanımları (Font extension veya custom modifier)
77
+ - Spacing/sizing constant'ları
78
+ - Component dizin yapısı
79
+
80
+ **Android Projesi:**
81
+ - Compose mi XML mi?
82
+ - Theme yapısı (MaterialTheme / custom theme)
83
+ - `res/values/` altındaki resource dosyaları (colors.xml, dimens.xml, styles.xml)
84
+ - Compose token tanımları (Color object, Typography object)
85
+ - Component paket yapısı
86
+
87
+ **Web Projesi:**
88
+ - Framework (React/Vue/Svelte/Angular/vanilla)
89
+ - CSS yaklaşımı (Tailwind/CSS Modules/Sass/styled-components/legacy CSS)
90
+ - Token dosya konumları
91
+ - Component dizin yapısı
92
+ - Legacy altyapı gereksinimleri
93
+
94
+ ### Step 3.5: DS Prensipleri (Her Kural Dosyasının Başına)
95
+
96
+ Her platform kural dosyasının `## Genel` bölümünden önce bu prensipler eklenir:
97
+
98
+ ```markdown
99
+ ## Design System Prensipleri
100
+
101
+ 1. **Tutarlılık > Yaratıcılık** — DS, ekiplerin tekerleği yeniden icat etmemesi için var. Custom çözüm yaratmadan önce DS'de karşılığı olup olmadığını kontrol et.
102
+ 2. **Kısıtlamalar içinde esneklik** — Bileşenler composable olmalı, rigid değil. Prop'lar ve slot'lar ile özelleştirme sun, fork'lama yerine.
103
+ 3. **Belgelenmemiş = yok** — Dökümante edilmeyen bileşen/token başkaları tarafından kullanılmayacaktır. Her yeni bileşen → component-documentation skill'i ile belgele.
104
+ 4. **Versiyonla ve migrate et** — Breaking change'lerde migration path sun. Eski API'ı hemen kaldırma, deprecation süreci uygula.
105
+ ```
106
+
107
+ ### Step 3.6: Pattern Katmanı Kuralları (Cross-Platform Dosyasına)
108
+
109
+ Cross-platform kural dosyasına pattern tutarlılığı bölümü eklenir:
110
+
111
+ ```markdown
112
+ ## Pattern Tutarlılığı
113
+
114
+ Tüm platformlarda aynı pattern aynı mantıkla çalışmalı:
115
+
116
+ | Pattern | Tutarlılık Kuralı |
117
+ |---------|------------------|
118
+ | **Forms** | Validation mantığı aynı (required, format, min/max), hata gösterimi platform-native |
119
+ | **Navigation** | Hiyerarşi aynı (tab sırası, breadcrumb seviyeleri), geçiş animasyonları platform-native |
120
+ | **Data Display** | Sıralama/filtreleme mantığı aynı, pagination/infinite scroll davranışı platform-native |
121
+ | **Feedback** | Mesaj içeriği aynı (copy), gösterim biçimi platform-native (iOS: alert, Android: snackbar, Web: toast) |
122
+ ```
123
+
124
+ ### Step 4: Platform-Spesifik Kurallar Oluştur
125
+
126
+ Her platform için ayrı kural dosyası oluştur:
127
+
128
+ #### iOS Kuralları
129
+
130
+ ```markdown
131
+ ---
132
+ description: F-MCP Bridge ile Figma tasarımlarını iOS'a implement etmek için kurallar.
133
+ globs: ["**/*.swift"]
134
+ alwaysApply: false
135
+ ---
136
+
137
+ # iOS Design System Kuralları (F-MCP Bridge)
138
+
139
+ ## Genel
140
+ - IMPORTANT: Tüm UI component'leri `[IOS_COMPONENT_DIR]` dizininde olmalı
141
+ - SwiftUI kullan (minimum iOS [VERSION])
142
+ - Component isimleri PascalCase, dosya adı = struct adı
143
+
144
+ ## Renkler
145
+ - IMPORTANT: Renkleri asla hardcode etme
146
+ - Asset Catalog color set'lerini kullan: `Color("primaryColor")`
147
+ - Veya extension kullan: `Color.DS.primary`
148
+ - Token kaynak dosyası: `[COLOR_EXTENSION_PATH]`
149
+ - Dark Mode desteği zorunlu — `@Environment(\.colorScheme)` veya Asset Catalog'da "Any, Dark" appearance
150
+
151
+ ## Typography
152
+ - Custom font'lar `[FONT_DIR]`'de kayıtlı
153
+ - Typography scale: `Font.DS.bodyMedium`, `Font.DS.headingLarge` vb.
154
+ - IMPORTANT: Dynamic Type desteği zorunlu — `@ScaledMetric` veya `.dynamicTypeSize` kullan
155
+ - Token kaynak dosyası: `[TYPOGRAPHY_EXTENSION_PATH]`
156
+
157
+ ## Spacing
158
+ - Spacing constant'ları: `Spacing.xs` (4), `Spacing.sm` (8), `Spacing.md` (16), `Spacing.lg` (24), `Spacing.xl` (32)
159
+ - IMPORTANT: Magic number kullanma, her zaman Spacing enum'dan referans al
160
+ - Token kaynak dosyası: `[SPACING_FILE_PATH]`
161
+
162
+ ## Layout
163
+ - Figma Auto Layout → SwiftUI VStack/HStack/ZStack
164
+ - Figma padding → .padding() modifier
165
+ - Figma constraints → .frame() modifier
166
+ - Safe area: .safeAreaInset() veya .ignoresSafeArea() (tasarıma göre)
167
+
168
+ ## F-MCP İş Akışı
169
+ 1. `figma_get_design_context` ile veri çek (outputHint kullanma, ham veriyi Swift'e çevir)
170
+ 2. `figma_capture_screenshot` ile görsel referans al
171
+ 3. `figma_get_variables(verbosity="full")` ile token ilişkilerini çöz
172
+ 4. SwiftUI View oluştur, token referansları kullan
173
+ 5. `figma_check_design_parity` ile doğrula
174
+
175
+ ## Erişilebilirlik
176
+ - VoiceOver label'ları zorunlu: `.accessibilityLabel()`
177
+ - Semantic renkleri kullan
178
+ - Minimum touch target: 44x44pt
179
+ ```
180
+
181
+ #### Android Kuralları
182
+
183
+ ```markdown
184
+ ---
185
+ description: F-MCP Bridge ile Figma tasarımlarını Android'e implement etmek için kurallar.
186
+ globs: ["**/*.kt", "**/res/**/*.xml"]
187
+ alwaysApply: false
188
+ ---
189
+
190
+ # Android Design System Kuralları (F-MCP Bridge)
191
+
192
+ ## Genel
193
+ - IMPORTANT: Tüm UI component'leri `[ANDROID_COMPONENT_PKG]` paketinde olmalı
194
+ - Jetpack Compose kullan (minimum API [LEVEL])
195
+ - @Composable function isimleri PascalCase
196
+
197
+ ## Renkler
198
+ - IMPORTANT: Renkleri asla hardcode etme
199
+ - Compose: `AppTheme.colors.primary` veya `MaterialTheme.colorScheme.primary`
200
+ - XML: `@color/primary` (res/values/colors.xml'den)
201
+ - Token kaynak dosyası: `[COLOR_OBJECT_PATH]`
202
+ - Dark Theme desteği zorunlu — `isSystemInDarkTheme()` veya night resource qualifier
203
+
204
+ ## Typography
205
+ - Compose: `AppTheme.typography.bodyMedium` veya `MaterialTheme.typography.bodyMedium`
206
+ - XML: `@style/TextAppearance.App.BodyMedium`
207
+ - Custom font'lar `res/font/` dizininde
208
+ - Token kaynak dosyası: `[TYPOGRAPHY_OBJECT_PATH]`
209
+
210
+ ## Spacing
211
+ - Spacing constant'ları: `AppTheme.spacing.xs` (4.dp), `AppTheme.spacing.md` (16.dp) vb.
212
+ - IMPORTANT: Hardcoded dp değeri kullanma, spacing object'ten referans al
213
+ - Token kaynak dosyası: `[SPACING_OBJECT_PATH]`
214
+
215
+ ## Layout
216
+ - Figma Auto Layout (vertical) → Column
217
+ - Figma Auto Layout (horizontal) → Row
218
+ - Figma padding → Modifier.padding()
219
+ - Figma constraints → Modifier.fillMaxWidth(), .wrapContentHeight()
220
+
221
+ ## F-MCP İş Akışı
222
+ 1. `figma_get_design_context` ile veri çek (outputHint kullanma, ham veriyi Compose'a çevir)
223
+ 2. `figma_capture_screenshot` ile görsel referans al
224
+ 3. `figma_get_variables(verbosity="full")` ile token ilişkilerini çöz
225
+ 4. @Composable function oluştur, theme token'ları kullan
226
+ 5. `figma_check_design_parity` ile doğrula
227
+
228
+ ## Erişilebilirlik
229
+ - Content description zorunlu: `Modifier.semantics { contentDescription = "..." }`
230
+ - Minimum touch target: 48x48dp
231
+ - TalkBack uyumu
232
+ ```
233
+
234
+ #### Web Kuralları
235
+
236
+ ```markdown
237
+ ---
238
+ description: F-MCP Bridge ile Figma tasarımlarını Web'e implement etmek için kurallar.
239
+ globs: ["src/components/**", "src/pages/**"]
240
+ alwaysApply: false
241
+ ---
242
+
243
+ # Web Design System Kuralları (F-MCP Bridge)
244
+
245
+ ## Genel
246
+ - IMPORTANT: UI component'leri `[WEB_COMPONENT_DIR]` dizininde olmalı
247
+ - [FRAMEWORK] kullan ([LANGUAGE])
248
+ - Component isimleri PascalCase
249
+
250
+ ## Renkler
251
+ - IMPORTANT: Renkleri asla hardcode etme
252
+ - [STYLING_APPROACH] kullan: [ÖRNEKLER]
253
+ - Token kaynak dosyası: `[TOKEN_FILE_PATH]`
254
+ - Dark Mode desteği: `[DARK_MODE_APPROACH]`
255
+
256
+ ## Typography
257
+ - Typography scale: `[TYPOGRAPHY_TOKENS]`
258
+ - Custom font'lar: `[FONT_LOADING_APPROACH]`
259
+
260
+ ## Spacing
261
+ - Spacing scale: `[SPACING_TOKENS]`
262
+ - IMPORTANT: Magic number kullanma
263
+
264
+ ## Layout
265
+ - Figma Auto Layout → Flexbox
266
+ - Figma Auto Layout (wrap) → CSS Grid veya flex-wrap
267
+ - Responsive breakpoint'ler: `[BREAKPOINTS]`
268
+
269
+ ## Legacy Desteği (varsa)
270
+ - Minimum browser desteği: `[BROWSER_SUPPORT]`
271
+ - IE11 / eski browser fallback'leri: `[FALLBACK_APPROACH]`
272
+ - jQuery / vanilla JS pattern'ları: `[LEGACY_PATTERNS]`
273
+
274
+ ## F-MCP İş Akışı
275
+ 1. `figma_get_design_context` ile veri çek (outputHint="react" veya "tailwind")
276
+ 2. `figma_capture_screenshot` ile görsel referans al
277
+ 3. `figma_get_variables(verbosity="full")` ile token ilişkilerini çöz
278
+ 4. Projenin framework ve styling yaklaşımına çevir
279
+ 5. `figma_check_design_parity` ile doğrula
280
+
281
+ ## Erişilebilirlik
282
+ - WCAG AA uyumu zorunlu
283
+ - Semantic HTML kullan
284
+ - aria-label'lar zorunlu
285
+ - Keyboard navigation desteği
286
+ ```
287
+
288
+ ### Step 5: Variable Verilerini Analiz Et ve Uyarılar Çıkar
289
+
290
+ `figma_get_variables(verbosity="full")` çıktısını analiz ederek:
291
+
292
+ 1. **Naming tutarsızlıkları:** Token isimlerinde karışık ayırıcı kullanımı var mı? (bazıları `color/primary/500`, bazıları `primary-500`)
293
+ 2. **Alias zincirleri:** `valuesByMode` içinde `type: "VARIABLE_ALIAS"` olan variable'ları takip et. Döngüsel referans var mı kontrol et.
294
+ 3. **Mode tutarlılığı:** Tüm variable'lar tüm mode'larda değer tanımlamış mı?
295
+
296
+ Bu analizlerden çıkan uyarıları kural dosyasına ekle:
297
+
298
+ ```markdown
299
+ ## Design System Uyarıları
300
+
301
+ ### Naming Tutarsızlıkları
302
+ - Color token'larda karışık: bazıları `color/primary/500`, bazıları `primary-500`
303
+ - Spacing'de: `space-md` ve `spacing/md` birlikte var
304
+
305
+ ### Alias İlişkileri
306
+ - `semantic/primary` → `primitives/blue-500` (bir seviye alias)
307
+ - Döngüsel referans tespit edilmediyse kaldır
308
+ ```
309
+
310
+ ### Step 6: Kuralları Kaydet
311
+
312
+ Her platform için ayrı kural dosyası kaydet:
313
+
314
+ ```
315
+ .cursor/rules/figma-ios.mdc — iOS kuralları
316
+ .cursor/rules/figma-android.mdc — Android kuralları
317
+ .cursor/rules/figma-web.mdc — Web kuralları
318
+ ```
319
+
320
+ `globs` pattern'ları platform dosya uzantılarına göre ayarla.
321
+
322
+ ### Step 7: Cross-Platform Tutarlılık Kuralı Ekle
323
+
324
+ Tüm platformlara uygulanan ortak bir kural dosyası da oluştur:
325
+
326
+ ```markdown
327
+ ---
328
+ description: Tüm platformlarda Figma design system tutarlılığı için ortak kurallar.
329
+ globs: ["**/*.swift", "**/*.kt", "**/*.tsx", "**/*.jsx", "**/*.vue"]
330
+ alwaysApply: false
331
+ ---
332
+
333
+ # Cross-Platform Design System Kuralları
334
+
335
+ ## Token Değer Tutarlılığı
336
+ - IMPORTANT: Tüm platformlarda aynı token aynı değeri kullanmalı
337
+ - primary = #2563eb (iOS Color, Android Color, CSS var hepsi aynı hex)
338
+ - spacing-md = 16 (pt, dp, px hepsi 16)
339
+ - radius-md = 8 (pt, dp, px hepsi 8)
340
+
341
+ ## Naming Convention Eşleme
342
+ | Figma Token | iOS | Android | Web |
343
+ |-------------|-----|---------|-----|
344
+ | color/primary/500 | Color.DS.primary500 | AppColors.Primary500 | --color-primary-500 |
345
+ | spacing/md | Spacing.md | AppSpacing.md | --space-md |
346
+ | radius/md | CornerRadius.md | AppShape.md | --radius-md |
347
+
348
+ ## Component Mapping
349
+ - Aynı Figma component'in tüm platformlardaki karşılığı aynı davranışı sergilemeli
350
+ - Platform-native interaction pattern'ları kullanılabilir (iOS haptic, Android ripple, Web hover)
351
+ - Görsel output her platformda aynı olmalı
352
+
353
+ ## Kaynak Dosya
354
+ - Token değerleri `.figma-mappings.json`'da kayıtlı
355
+ - Drift tespiti için `figma_check_design_parity` kullan
356
+ ```
357
+
358
+ ## Examples
359
+
360
+ ### Örnek 1: iOS + Android + React Proje
361
+
362
+ Kullanıcı: "3 platform için design system kurallarını oluştur"
363
+
364
+ **Akış:**
365
+
366
+ 1. Figma verilerini çek (design system summary, variables, styles, token browser)
367
+ 2. Her platform projesini analiz et:
368
+ - iOS: SwiftUI, SPM, `Sources/DesignSystem/`
369
+ - Android: Compose, `ui/theme/` paketinde theme tanımları
370
+ - Web: React + Tailwind, `src/components/ui/`
371
+ 3. 4 kural dosyası oluştur:
372
+ - `.cursor/rules/figma-ios.mdc`
373
+ - `.cursor/rules/figma-android.mdc`
374
+ - `.cursor/rules/figma-web.mdc`
375
+ - `.cursor/rules/figma-cross-platform.mdc`
376
+ 4. Variable analiz uyarılarını her dosyaya ekle
377
+
378
+ ### Örnek 2: Sadece Android Kuralları
379
+
380
+ Kullanıcı: "Android için Figma kurallarını oluştur, Compose kullanıyoruz"
381
+
382
+ **Akış:**
383
+
384
+ 1. Figma verilerini çek
385
+ 2. Android projesini analiz et: Compose, Material 3, custom theme
386
+ 3. `.cursor/rules/figma-android.mdc` oluştur
387
+ 4. Compose-specific kuralları ekle (theme, typography, color scheme)
388
+
389
+ ## Common Issues and Solutions
390
+
391
+ ### Sorun: Platform projeleri farklı repo'larda
392
+
393
+ **Çözüm:** Her platformun `rootDir`'ini absolute path olarak ayarla. Kural dosyaları `.cursor/rules/` altında kalır, globs pattern'ları uyarlanır.
394
+
395
+ ### Sorun: Aynı platformda hem modern hem legacy var
396
+
397
+ **Çözüm:** İki ayrı kural dosyası oluştur: `figma-web-modern.mdc` ve `figma-web-legacy.mdc`. Globs ile hangi dizinlerde hangi kuralların geçerli olduğunu ayır.
398
+
399
+ ### Sorun: Platform-spesifik token isimleri Figma'yla eşleşmiyor
400
+
401
+ **Çözüm:** Cross-platform kuralında token eşleme tablosu oluştur. Her geliştirici kendi platformundaki karşılığı tabloda bulabilir.
402
+
403
+ ## Evolution Triggers
404
+
405
+ - Bridge'e `create_design_system_rules` benzeri araç eklenirse şablon tabanlı üretim entegre edilmeli
406
+ - Yeni platform veya framework desteği eklenirse kural şablonları genişletilmeli
407
+ - Cursor/IDE kural formatı değişirse çıktı dosya yapısı uyarlanmalı