@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.
- package/.claude-plugin/plugin.json +37 -0
- package/.cursor-plugin/plugin.json +21 -0
- package/CHANGELOG.md +30 -0
- package/README.md +4 -3
- package/agents/ds-auditor.md +29 -0
- package/agents/screen-builder.md +29 -0
- package/agents/token-syncer.md +26 -0
- package/assets/logo.png +0 -0
- package/commands/add-library.md +122 -0
- package/commands/ds-add.md +255 -0
- package/commands/ds-sync.md +314 -0
- package/commands/implement.md +43 -0
- package/commands/install-library.md +73 -0
- package/commands/setup.md +26 -0
- package/commands/test.md +39 -0
- package/commands/update.md +25 -0
- package/dist/core/config.d.ts +1 -5
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -111
- package/dist/core/config.js.map +1 -1
- package/dist/core/plugin-bridge-server.d.ts.map +1 -1
- package/dist/core/plugin-bridge-server.js +1 -2
- package/dist/core/plugin-bridge-server.js.map +1 -1
- package/dist/core/response-guard.d.ts +1 -1
- package/dist/core/response-guard.js +1 -1
- package/dist/core/types/index.d.ts +2 -98
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/local-plugin-only.d.ts.map +1 -1
- package/dist/local-plugin-only.js +14 -13
- package/dist/local-plugin-only.js.map +1 -1
- package/f-mcp-plugin/README.md +8 -15
- package/f-mcp-plugin/manifest.json +1 -3
- package/hooks/hooks.json +26 -0
- package/package.json +15 -31
- package/skills/BRAND_PROFILE_SCHEMA.md +113 -0
- package/skills/SKILL_INDEX.md +194 -0
- package/skills/TOOL_MAPPING.md +111 -0
- package/skills/ai-handoff-export/SKILL.md +254 -0
- package/skills/apply-figma-design-system/SKILL.md +104 -0
- package/skills/audit-figma-design-system/SKILL.md +278 -0
- package/skills/code-design-mapper/SKILL.md +370 -0
- package/skills/component-documentation/SKILL.md +190 -0
- package/skills/design-drift-detector/SKILL.md +407 -0
- package/skills/design-system-rules/SKILL.md +407 -0
- package/skills/design-token-pipeline/SKILL.md +619 -0
- package/skills/ds-impact-analysis/SKILL.md +266 -0
- package/skills/figjam-diagram-builder/SKILL.md +172 -0
- package/skills/figma-a11y-audit/SKILL.md +587 -0
- package/skills/figma-canvas-ops/SKILL.md +325 -0
- package/skills/figma-screen-analyzer/SKILL.md +235 -0
- package/skills/fix-figma-design-system-finding/SKILL.md +117 -0
- package/skills/fmcp-project-rules/SKILL.md +93 -0
- package/skills/generate-figma-library/SKILL.md +598 -0
- package/skills/generate-figma-screen/SKILL.md +689 -0
- package/skills/implement-design/SKILL.md +473 -0
- package/skills/ux-copy-guidance/SKILL.md +373 -0
- package/skills/visual-qa-compare/SKILL.md +166 -0
- package/dist/browser/base.d.ts +0 -50
- package/dist/browser/base.d.ts.map +0 -1
- package/dist/browser/base.js +0 -6
- package/dist/browser/base.js.map +0 -1
- package/dist/browser/local.d.ts +0 -81
- package/dist/browser/local.d.ts.map +0 -1
- package/dist/browser/local.js +0 -283
- package/dist/browser/local.js.map +0 -1
- package/dist/core/console-monitor.d.ts +0 -82
- package/dist/core/console-monitor.d.ts.map +0 -1
- package/dist/core/console-monitor.js +0 -428
- package/dist/core/console-monitor.js.map +0 -1
- package/dist/core/design-system-manifest.d.ts +0 -272
- package/dist/core/design-system-manifest.d.ts.map +0 -1
- package/dist/core/design-system-manifest.js +0 -261
- package/dist/core/design-system-manifest.js.map +0 -1
- package/dist/core/enrichment/enrichment-service.d.ts +0 -52
- package/dist/core/enrichment/enrichment-service.d.ts.map +0 -1
- package/dist/core/enrichment/enrichment-service.js +0 -272
- package/dist/core/enrichment/enrichment-service.js.map +0 -1
- package/dist/core/enrichment/index.d.ts +0 -8
- package/dist/core/enrichment/index.d.ts.map +0 -1
- package/dist/core/enrichment/index.js +0 -8
- package/dist/core/enrichment/index.js.map +0 -1
- package/dist/core/enrichment/relationship-mapper.d.ts +0 -106
- package/dist/core/enrichment/relationship-mapper.d.ts.map +0 -1
- package/dist/core/enrichment/relationship-mapper.js +0 -352
- package/dist/core/enrichment/relationship-mapper.js.map +0 -1
- package/dist/core/enrichment/style-resolver.d.ts +0 -80
- package/dist/core/enrichment/style-resolver.d.ts.map +0 -1
- package/dist/core/enrichment/style-resolver.js +0 -327
- package/dist/core/enrichment/style-resolver.js.map +0 -1
- package/dist/core/figma-api.d.ts +0 -137
- package/dist/core/figma-api.d.ts.map +0 -1
- package/dist/core/figma-api.js +0 -274
- package/dist/core/figma-api.js.map +0 -1
- package/dist/core/figma-desktop-connector.d.ts +0 -242
- package/dist/core/figma-desktop-connector.d.ts.map +0 -1
- package/dist/core/figma-desktop-connector.js +0 -1042
- package/dist/core/figma-desktop-connector.js.map +0 -1
- package/dist/core/figma-reconstruction-spec.d.ts +0 -162
- package/dist/core/figma-reconstruction-spec.d.ts.map +0 -1
- package/dist/core/figma-reconstruction-spec.js +0 -387
- package/dist/core/figma-reconstruction-spec.js.map +0 -1
- package/dist/core/figma-tools.d.ts +0 -21
- package/dist/core/figma-tools.d.ts.map +0 -1
- package/dist/core/figma-tools.js +0 -2920
- package/dist/core/figma-tools.js.map +0 -1
- package/dist/core/snippet-injector.d.ts +0 -24
- package/dist/core/snippet-injector.d.ts.map +0 -1
- package/dist/core/snippet-injector.js +0 -97
- package/dist/core/snippet-injector.js.map +0 -1
- package/dist/core/types/enriched.d.ts +0 -213
- package/dist/core/types/enriched.d.ts.map +0 -1
- package/dist/core/types/enriched.js +0 -6
- package/dist/core/types/enriched.js.map +0 -1
- package/dist/local.d.ts +0 -73
- package/dist/local.d.ts.map +0 -1
- package/dist/local.js +0 -2605
- 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ı
|