tribunal-kit 3.0.0 → 4.0.0

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 (233) hide show
  1. package/.agent/ARCHITECTURE.md +99 -99
  2. package/.agent/GEMINI.md +52 -52
  3. package/.agent/agents/accessibility-reviewer.md +187 -220
  4. package/.agent/agents/ai-code-reviewer.md +199 -233
  5. package/.agent/agents/backend-specialist.md +215 -238
  6. package/.agent/agents/code-archaeologist.md +161 -181
  7. package/.agent/agents/database-architect.md +184 -207
  8. package/.agent/agents/debugger.md +191 -218
  9. package/.agent/agents/dependency-reviewer.md +103 -136
  10. package/.agent/agents/devops-engineer.md +218 -238
  11. package/.agent/agents/documentation-writer.md +201 -221
  12. package/.agent/agents/explorer-agent.md +160 -180
  13. package/.agent/agents/frontend-reviewer.md +160 -194
  14. package/.agent/agents/frontend-specialist.md +248 -237
  15. package/.agent/agents/game-developer.md +48 -52
  16. package/.agent/agents/logic-reviewer.md +116 -149
  17. package/.agent/agents/mobile-developer.md +200 -223
  18. package/.agent/agents/mobile-reviewer.md +162 -195
  19. package/.agent/agents/orchestrator.md +181 -211
  20. package/.agent/agents/penetration-tester.md +157 -174
  21. package/.agent/agents/performance-optimizer.md +183 -203
  22. package/.agent/agents/performance-reviewer.md +178 -211
  23. package/.agent/agents/precedence-reviewer.md +213 -0
  24. package/.agent/agents/product-manager.md +142 -162
  25. package/.agent/agents/product-owner.md +6 -25
  26. package/.agent/agents/project-planner.md +142 -162
  27. package/.agent/agents/qa-automation-engineer.md +225 -242
  28. package/.agent/agents/security-auditor.md +174 -194
  29. package/.agent/agents/seo-specialist.md +193 -213
  30. package/.agent/agents/sql-reviewer.md +161 -194
  31. package/.agent/agents/supervisor-agent.md +184 -203
  32. package/.agent/agents/swarm-worker-contracts.md +17 -17
  33. package/.agent/agents/swarm-worker-registry.md +46 -46
  34. package/.agent/agents/test-coverage-reviewer.md +160 -193
  35. package/.agent/agents/test-engineer.md +0 -21
  36. package/.agent/agents/type-safety-reviewer.md +175 -208
  37. package/.agent/patterns/generator.md +9 -9
  38. package/.agent/patterns/inversion.md +12 -12
  39. package/.agent/patterns/pipeline.md +9 -9
  40. package/.agent/patterns/reviewer.md +13 -13
  41. package/.agent/patterns/tool-wrapper.md +9 -9
  42. package/.agent/rules/GEMINI.md +63 -63
  43. package/.agent/scripts/append_flow.js +72 -0
  44. package/.agent/scripts/case_law_manager.py +525 -0
  45. package/.agent/scripts/compress_skills.py +167 -0
  46. package/.agent/scripts/consolidate_skills.py +173 -0
  47. package/.agent/scripts/deep_compress.py +202 -0
  48. package/.agent/scripts/minify_context.py +80 -0
  49. package/.agent/scripts/security_scan.py +1 -1
  50. package/.agent/scripts/skill_evolution.py +563 -0
  51. package/.agent/scripts/strip_tribunal.py +41 -0
  52. package/.agent/skills/agent-organizer/SKILL.md +100 -126
  53. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  54. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +134 -160
  55. package/.agent/skills/api-patterns/SKILL.md +123 -215
  56. package/.agent/skills/api-security-auditor/SKILL.md +143 -177
  57. package/.agent/skills/app-builder/SKILL.md +334 -50
  58. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  59. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  60. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  61. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  62. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  63. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  64. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  65. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  66. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  67. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  68. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  69. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  70. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  71. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  72. package/.agent/skills/appflow-wireframe/SKILL.md +95 -121
  73. package/.agent/skills/architecture/SKILL.md +169 -331
  74. package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
  75. package/.agent/skills/bash-linux/SKILL.md +129 -154
  76. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  77. package/.agent/skills/brainstorming/SKILL.md +436 -104
  78. package/.agent/skills/building-native-ui/SKILL.md +152 -174
  79. package/.agent/skills/clean-code/SKILL.md +331 -360
  80. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  81. package/.agent/skills/config-validator/SKILL.md +115 -141
  82. package/.agent/skills/csharp-developer/SKILL.md +468 -528
  83. package/.agent/skills/database-design/SKILL.md +104 -369
  84. package/.agent/skills/deployment-procedures/SKILL.md +119 -145
  85. package/.agent/skills/devops-engineer/SKILL.md +295 -332
  86. package/.agent/skills/devops-incident-responder/SKILL.md +87 -113
  87. package/.agent/skills/doc.md +5 -5
  88. package/.agent/skills/documentation-templates/SKILL.md +27 -63
  89. package/.agent/skills/edge-computing/SKILL.md +131 -157
  90. package/.agent/skills/extract-design-system/SKILL.md +108 -134
  91. package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
  92. package/.agent/skills/frontend-design/SKILL.md +151 -499
  93. package/.agent/skills/game-design-expert/SKILL.md +79 -105
  94. package/.agent/skills/game-engineering-expert/SKILL.md +96 -122
  95. package/.agent/skills/geo-fundamentals/SKILL.md +97 -124
  96. package/.agent/skills/github-operations/SKILL.md +279 -314
  97. package/.agent/skills/gsap-expert/SKILL.md +119 -826
  98. package/.agent/skills/i18n-localization/SKILL.md +113 -138
  99. package/.agent/skills/intelligent-routing/SKILL.md +167 -127
  100. package/.agent/skills/lint-and-validate/SKILL.md +16 -52
  101. package/.agent/skills/llm-engineering/SKILL.md +344 -357
  102. package/.agent/skills/local-first/SKILL.md +128 -154
  103. package/.agent/skills/mcp-builder/SKILL.md +92 -118
  104. package/.agent/skills/mobile-design/SKILL.md +213 -219
  105. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  106. package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
  107. package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
  108. package/.agent/skills/observability/SKILL.md +293 -330
  109. package/.agent/skills/parallel-agents/SKILL.md +96 -122
  110. package/.agent/skills/performance-profiling/SKILL.md +217 -254
  111. package/.agent/skills/plan-writing/SKILL.md +92 -118
  112. package/.agent/skills/platform-engineer/SKILL.md +97 -123
  113. package/.agent/skills/playwright-best-practices/SKILL.md +137 -162
  114. package/.agent/skills/powershell-windows/SKILL.md +112 -146
  115. package/.agent/skills/project-idioms/SKILL.md +87 -0
  116. package/.agent/skills/python-patterns/SKILL.md +15 -35
  117. package/.agent/skills/python-pro/SKILL.md +148 -754
  118. package/.agent/skills/react-specialist/SKILL.md +123 -827
  119. package/.agent/skills/readme-builder/SKILL.md +23 -85
  120. package/.agent/skills/realtime-patterns/SKILL.md +269 -304
  121. package/.agent/skills/red-team-tactics/SKILL.md +18 -51
  122. package/.agent/skills/rust-pro/SKILL.md +623 -701
  123. package/.agent/skills/seo-fundamentals/SKILL.md +129 -154
  124. package/.agent/skills/server-management/SKILL.md +164 -190
  125. package/.agent/skills/shadcn-ui-expert/SKILL.md +181 -206
  126. package/.agent/skills/skill-creator/SKILL.md +24 -56
  127. package/.agent/skills/sql-pro/SKILL.md +579 -633
  128. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +35 -66
  129. package/.agent/skills/swiftui-expert/SKILL.md +151 -176
  130. package/.agent/skills/systematic-debugging/SKILL.md +92 -118
  131. package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
  132. package/.agent/skills/tdd-workflow/SKILL.md +111 -137
  133. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  134. package/.agent/skills/testing-patterns/SKILL.md +512 -573
  135. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  136. package/.agent/skills/ui-ux-pro-max/SKILL.md +8 -41
  137. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  138. package/.agent/skills/vue-expert/SKILL.md +127 -866
  139. package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
  140. package/.agent/skills/web-accessibility-auditor/SKILL.md +168 -193
  141. package/.agent/skills/web-design-guidelines/SKILL.md +25 -61
  142. package/.agent/skills/webapp-testing/SKILL.md +119 -145
  143. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  144. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  145. package/.agent/workflows/api-tester.md +151 -151
  146. package/.agent/workflows/audit.md +127 -138
  147. package/.agent/workflows/brainstorm.md +110 -110
  148. package/.agent/workflows/changelog.md +112 -112
  149. package/.agent/workflows/create.md +124 -124
  150. package/.agent/workflows/debug.md +165 -189
  151. package/.agent/workflows/deploy.md +180 -189
  152. package/.agent/workflows/enhance.md +128 -151
  153. package/.agent/workflows/fix.md +114 -135
  154. package/.agent/workflows/generate.md +13 -4
  155. package/.agent/workflows/migrate.md +160 -160
  156. package/.agent/workflows/orchestrate.md +168 -168
  157. package/.agent/workflows/performance-benchmarker.md +114 -123
  158. package/.agent/workflows/plan.md +173 -173
  159. package/.agent/workflows/preview.md +80 -80
  160. package/.agent/workflows/refactor.md +161 -183
  161. package/.agent/workflows/review-ai.md +101 -129
  162. package/.agent/workflows/review.md +116 -116
  163. package/.agent/workflows/session.md +94 -94
  164. package/.agent/workflows/status.md +79 -79
  165. package/.agent/workflows/strengthen-skills.md +138 -139
  166. package/.agent/workflows/swarm.md +179 -179
  167. package/.agent/workflows/test.md +189 -211
  168. package/.agent/workflows/tribunal-backend.md +94 -113
  169. package/.agent/workflows/tribunal-database.md +95 -115
  170. package/.agent/workflows/tribunal-frontend.md +96 -118
  171. package/.agent/workflows/tribunal-full.md +93 -133
  172. package/.agent/workflows/tribunal-mobile.md +95 -119
  173. package/.agent/workflows/tribunal-performance.md +110 -133
  174. package/.agent/workflows/ui-ux-pro-max.md +122 -143
  175. package/README.md +30 -1
  176. package/bin/tribunal-kit.js +175 -12
  177. package/package.json +25 -4
  178. package/.agent/skills/api-patterns/api-style.md +0 -42
  179. package/.agent/skills/api-patterns/auth.md +0 -24
  180. package/.agent/skills/api-patterns/documentation.md +0 -26
  181. package/.agent/skills/api-patterns/graphql.md +0 -41
  182. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  183. package/.agent/skills/api-patterns/response.md +0 -37
  184. package/.agent/skills/api-patterns/rest.md +0 -40
  185. package/.agent/skills/api-patterns/security-testing.md +0 -122
  186. package/.agent/skills/api-patterns/trpc.md +0 -41
  187. package/.agent/skills/api-patterns/versioning.md +0 -22
  188. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  189. package/.agent/skills/app-builder/feature-building.md +0 -53
  190. package/.agent/skills/app-builder/project-detection.md +0 -34
  191. package/.agent/skills/app-builder/scaffolding.md +0 -118
  192. package/.agent/skills/app-builder/tech-stack.md +0 -40
  193. package/.agent/skills/architecture/context-discovery.md +0 -43
  194. package/.agent/skills/architecture/examples.md +0 -94
  195. package/.agent/skills/architecture/pattern-selection.md +0 -68
  196. package/.agent/skills/architecture/patterns-reference.md +0 -50
  197. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  198. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  199. package/.agent/skills/database-design/database-selection.md +0 -43
  200. package/.agent/skills/database-design/indexing.md +0 -39
  201. package/.agent/skills/database-design/migrations.md +0 -48
  202. package/.agent/skills/database-design/optimization.md +0 -36
  203. package/.agent/skills/database-design/orm-selection.md +0 -30
  204. package/.agent/skills/database-design/schema-design.md +0 -56
  205. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  206. package/.agent/skills/frontend-design/color-system.md +0 -329
  207. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  208. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  209. package/.agent/skills/frontend-design/typography-system.md +0 -363
  210. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  211. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  212. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  213. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  214. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  215. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  216. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  217. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  218. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  219. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  220. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  221. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  222. package/.agent/skills/mobile-design/platform-android.md +0 -666
  223. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  224. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  225. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  226. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  227. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  228. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  229. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  230. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  231. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  232. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  233. package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
@@ -1,219 +1,213 @@
1
- ---
2
- name: mobile-design
3
- description: Mobile-first and Spatial computing design thinking for iOS, Android, Foldables, and WebXR. Touch interaction, advanced haptics, on-device AI patterns, performance extremis. Teaches principles, not fixed values.
4
- allowed-tools: Read, Glob, Grep, Bash
5
- version: 1.0.0
6
- last-updated: 2026-03-12
7
- applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
- ---
9
-
10
- # Mobile & Spatial Design System (Pro-Max Level)
11
-
12
- > **Philosophy:** Touch-first. Battery-conscious. Platform-respectful. Contextually aware.
13
- > **Core Principle:** Mobile is NOT a small desktop. It is a sensor-rich, context-aware extension of the user. THINK constraints, EXPECT hardware diversity.
14
-
15
- ---
16
-
17
- ## 🔧 Runtime Scripts
18
-
19
- **Execute these for validation (don't read, just run):**
20
-
21
- | Script | Purpose | Usage |
22
- |--------|---------|-------|
23
- | `scripts/mobile_audit.py` | Mobile UX & Touch Audit | `python scripts/mobile_audit.py <project_path>` |
24
-
25
- ---
26
-
27
- ## 🔴 MANDATORY: Read Reference Files Before Working!
28
-
29
- **⛔ DO NOT start development until you read the relevant files:**
30
-
31
- ### Universal (Always Read)
32
-
33
- | File | Content | Status |
34
- |------|---------|--------|
35
- | **[mobile-design-thinking.md](mobile-design-thinking.md)** | **⚠️ ANTI-MEMORIZATION: Forces thinking, prevents AI defaults** | **⬜ CRITICAL FIRST** |
36
- | **[spatial-and-foldables.md](spatial-and-foldables.md)** | **Foldable screens, WebXR, dynamic viewports** | **⬜ CRITICAL** |
37
- | **[on-device-ai.md](on-device-ai.md)** | **Streaming UI, local models, zero-wait states** | **⬜ CRITICAL** |
38
- | **[touch-psychology.md](touch-psychology.md)** | **Advanced haptics, Fitts' Law, magnetic touch targets** | **⬜ CRITICAL** |
39
- | **[mobile-performance.md](mobile-performance.md)** | **React Native/Flutter rendering at 120Hz** | **⬜ CRITICAL** |
40
- | [mobile-navigation.md](mobile-navigation.md) | Tab/Stack/Drawer, deep linking, spatial z-axis nav | ⬜ Read |
41
- | [decision-trees.md](decision-trees.md) | Framework/state/storage selection | ⬜ Read |
42
-
43
- > 🧠 **mobile-design-thinking.md is PRIORITY!** This file ensures AI thinks instead of using memorized patterns.
44
-
45
- ---
46
-
47
- ## ⚠️ CRITICAL: ASK BEFORE ASSUMING (MANDATORY)
48
-
49
- > **STOP! If the user's request is open-ended, DO NOT default to your favorites.**
50
-
51
- ### You MUST Ask If Not Specified:
52
-
53
- | Aspect | Ask | Why |
54
- |--------|-----|-----|
55
- | **Form Factor** | "Standard mobile only, or support for Foldables/Tablets?" | Affects fluid layout geometry |
56
- | **Performance** | "Is this targeting 60Hz or 120Hz ProMotion displays?" | Determines animation physics |
57
- | **AI Integration**| "Are we streaming LLM responses to the UI?" | Defines loading vs streaming patterns |
58
- | **Platform** | "iOS, Android, Spatial (VisionOS/WebXR), or cross-platform?" | Affects EVERY design decision |
59
-
60
- ### ⛔ AI MOBILE ANTI-PATTERNS (YASAK LİSTESİ)
61
-
62
- > 🚫 **These are AI default tendencies that MUST be avoided!**
63
-
64
- #### Performance & Display Sins
65
- | ❌ NEVER DO | Why It's Wrong | ✅ ALWAYS DO |
66
- |-------------|----------------|--------------|
67
- | **Pure White Backgrounds** | Blinds users at night, drains battery | OLED True Black (`#000`) or off-white (`#FAFAFA`) |
68
- | **Linear Animations** | Feels robotic and cheap | Spring physics (`stiffness`, `damping`) |
69
- | **ScrollView for long lists** | Renders ALL items, memory explodes | Use `FlashList` / `ListView.builder` / Virtualization |
70
- | **console.log in production** | Blocks JS thread severely | Remove before release build |
71
-
72
- #### Touch & UX Sins
73
- | NEVER DO | Why It's Wrong | ✅ ALWAYS DO |
74
- |-------------|----------------|--------------|
75
- | **Touch target < 48px** | Frustrating, violates modern Fitts' Law | Min 48px (iOS/Android), mathematically enforced |
76
- | **Silent Interactions** | Breaks the illusion of tactility | Bind visual state changes to Advanced Haptic Feedback |
77
- | **Blocking Spinners for AI** | "Thinking..." spinners cause abandonment | Stream skeleton → partial text → layout |
78
- | **Gesture-only interactions** | Motor impaired users excluded | Always provide button alternative |
79
-
80
- ---
81
-
82
- ## 📱 Hardware & Context Adaptation
83
-
84
- ### 1. The Foldable & Dynamic Screen Era
85
- Phones fold. Tablets resize. UIs must be perfectly fluid, not reliant on fixed breakpoints.
86
- - **TwoPane Layouts:** List-Detail views that dynamically collapse into single stacks.
87
- - **Hinge Awareness:** Do not place critical interactive elements across the physical hinge of a foldable device.
88
-
89
- ### 2. Advanced Haptics (Tactile UI)
90
- Visuals are only half the UI. Mobile relies on touch.
91
- - Bind `Haptics.impactAsync('light')` to micro-interactions (e.g., toggling a switch).
92
- - Bind `Haptics.notificationAsync('success')` to state completions.
93
- - *Never* overuse haptics. They must mean something.
94
-
95
- ### 3. Spatial Z-Axis & Depth
96
- Modern OSs (iOS 18+, Android 15+) heavily utilize depth and blur.
97
- - Utilize native `BlurView` or `VisualEffectView` materials for absolutely positioned overlays (tab bars, headers).
98
- - Shadows must have multi-layered dispersion, not harsh CSS `box-shadow` single drops.
99
-
100
- ---
101
-
102
- ## 🧠 Mobile Extreme UX Psychology
103
-
104
- ### Fitts' Law for Touch & Magnetic Targets
105
- Touch screens are wildly imprecise.
106
- - Touch targets MUST be >48px minimum.
107
- - Important actions map to the THUMB ZONE (bottom arc).
108
- - **Magnetic Padding:** Visual size can be small (24px icon), but the *hitbox* padding must expand to 48px.
109
-
110
- ### On-Device AI UX Patterns
111
- - **Zero-Wait Illusion:** When a model is running, immediately populate the UI with contextual guesses or streaming tokens.
112
- - **Progressive Disclosure of Confidence:** If AI confidence is low, the UI should reflect uncertainty visually (softer colors, explicit confirmation required).
113
-
114
- ---
115
-
116
- ## 📏 UI Building Accuracy
117
-
118
- - **Mathematical Layouts:** Mobile layouts require mathematical precision to prevent layout shifts. You MUST use exact spacing multiples (e.g., 4px/8px grids).
119
- - **Strict Containers:** Explicitly define `flex-1`, `align-items`, and `justify-content` on every view layer. Never let RN guess the intrinsic size.
120
-
121
- ## Performance Extremis (Quick Reference)
122
-
123
- ### 120Hz Animation Mandate
124
- If your animation drops below 120fps on modern hardware, it's failed.
125
- - GPU-accelerated ONLY: `transform` (translate, scale, rotate) and `opacity`.
126
- - CPU-bound AVOID: `width`, `height`, `margin`, `top/left/bottom/right`.
127
- - React Native: MUST use Reanimated 3+ worklets for all motion; `Animated` API is legacy.
128
-
129
- ### React Native Critical Rules
130
- ```typescript
131
- // ✅ CORRECT: FlashList for extreme performance
132
- <FlashList
133
- data={items}
134
- renderItem={renderItem}
135
- estimatedItemSize={100} // CRITICAL for FlashList
136
- keyExtractor={(item) => item.id}
137
- />
138
- ```
139
-
140
- ---
141
-
142
- ## 📝 CHECKPOINT (MANDATORY Before Any Mobile Work)
143
-
144
- > **Before writing ANY mobile code, you MUST complete this checkpoint:**
145
-
146
- ```
147
- 🧠 CHECKPOINT:
148
-
149
- Platform target: [ iOS / Android / Foldable / Spatial ]
150
- Hardware expectation:[ 60Hz / 120Hz ]
151
- Haptic Strategy: [ Define trigger points ]
152
-
153
- 3 Extreme Principles I Will Apply:
154
- 1. _______________
155
- 2. _______________
156
- 3. _______________
157
- ```
158
-
159
- > **Remember:** You are designing for a piece of glass that people stare at for 6 hours a day. Battery life, touch precision, and 120Hz fluidity are not optional features; they are the medium itself.
160
-
161
- ---
162
-
163
- ## Output Format
164
-
165
- When this skill produces a recommendation or design decision, structure your output as:
166
-
167
- ```
168
- ━━━ Mobile Design Recommendation ━━━━━━━━━━━━━━━━
169
- Decision: [what was chosen / proposed]
170
- Rationale: [why one concise line]
171
- Trade-offs: [what is consciously accepted]
172
- Next action: [concrete next step for the user]
173
- ─────────────────────────────────────────────────
174
- Pre-Flight: ✅ All checks passed
175
- or [blocking item that must be resolved first]
176
- ```
177
-
178
-
179
-
180
- ---
181
-
182
- ## 🤖 LLM-Specific Traps
183
-
184
- AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
185
-
186
- 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
187
- 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
188
- 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
189
- 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
190
- 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
191
-
192
- ---
193
-
194
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
195
-
196
- **Slash command: `/review` or `/tribunal-full`**
197
- **Active reviewers: `logic-reviewer` · `security-auditor`**
198
-
199
- ### ❌ Forbidden AI Tropes
200
-
201
- 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
202
- 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
203
- 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
204
-
205
- ### Pre-Flight Self-Audit
206
-
207
- Review these questions before confirming output:
208
- ```
209
- Did I rely ONLY on real, verified tools and methods?
210
- Is this solution appropriately scoped to the user's constraints?
211
- Did I handle potential failure modes and edge cases?
212
- Have I avoided generic boilerplate that doesn't add value?
213
- ```
214
-
215
- ### 🛑 Verification-Before-Completion (VBC) Protocol
216
-
217
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
218
- - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
219
- - ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
1
+ ---
2
+ name: mobile-design
3
+ description: Mobile-first design for iOS, Android, Foldables, React Native, Flutter. Touch interaction, haptics, 120Hz performance, on-device AI, spatial UI, Reanimated 3. Use when building mobile UI, animations, or cross-platform apps.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 3.1.0
6
+ last-updated: 2026-04-06
7
+ ---
8
+
9
+ # Mobile Design — Dense Reference
10
+
11
+ ## Hallucination Traps (Read First)
12
+ - `Animated.View` for any animation → ✅ `Reanimated 3` worklets (Animated API is legacy, runs on JS thread)
13
+ - `ScrollView` for lists `FlashList` (Shopify) ScrollView renders ALL items at once
14
+ - ❌ `estimatedItemSize` optional in FlashList → ✅ **REQUIRED** or you get 0-height items
15
+ - ❌ White backgrounds (`#FFFFFF`) → ✅ OLED: `#000000` true black; off-white: `#FAFAFA`
16
+ - ❌ Linear animations (`easing: linear`) → ✅ Spring physics (`stiffness`, `damping`)
17
+ - Touch targets < 48px → ✅ Min 48px hitbox (visual size can be smaller via padding)
18
+ - ❌ `useAnimatedStyle` in worklet without `'worklet'` directive → crashes on native thread
19
+ - iOS: `useSafeAreaInsets()` optional ✅ Required — screen content goes under dynamic island/home indicator
20
+ - ❌ Android: hardcoded status bar height (24dp) → ✅ `StatusBar.currentHeight` (varies per device)
21
+ - Platform-specific code with `if (platform === 'ios')` scattered everywhere → ✅ centralize in platform/ files
22
+ - ❌ `console.log` in production → ✅ blocks JS thread — remove before release
23
+
24
+ ---
25
+
26
+ ## React Native Performance
27
+
28
+ ### FlashList (Required for Lists)
29
+ ```tsx
30
+ import { FlashList } from "@shopify/flash-list";
31
+ <FlashList
32
+ data={items}
33
+ renderItem={({ item }) => <ItemCard item={item} />}
34
+ estimatedItemSize={100} // REQUIRED — measure actual item height first
35
+ keyExtractor={(item) => item.id}
36
+ getItemType={(item) => item.type} // multi-type optimization
37
+ />
38
+ // ❌ NEVER: <ScrollView>{items.map(...)}</ScrollView> for lists
39
+ // NEVER: <FlatList> for perf-critical lists FlashList is 5-10x faster
40
+ ```
41
+
42
+ ### Reanimated 3 — Worklet Animations (Required for 120Hz)
43
+ ```tsx
44
+ import { useSharedValue, useAnimatedStyle, withSpring, withTiming, runOnJS } from 'react-native-reanimated';
45
+
46
+ // Shared values run on the UI thread — never on JS thread
47
+ const scale = useSharedValue(1);
48
+ const opacity = useSharedValue(0);
49
+
50
+ // Animated style — computed on UI thread (no bridge crossing)
51
+ const animatedStyle = useAnimatedStyle(() => ({
52
+ transform: [{ scale: scale.value }],
53
+ opacity: opacity.value,
54
+ }));
55
+
56
+ // Triggers
57
+ const onPress = () => {
58
+ scale.value = withSpring(0.95, { stiffness: 400, damping: 15 });
59
+ opacity.value = withTiming(1, { duration: 200 });
60
+ };
61
+
62
+ // Call JS function from worklet
63
+ const onComplete = () => runOnJS(setVisible)(true);
64
+ scale.value = withSpring(1, {}, onComplete);
65
+
66
+ // ❌ TRAP: Accessing shared value with .value inside useAnimatedStyle is fine — but inside a gesture handler callback, you need runOnJS to call React setState
67
+ ```
68
+
69
+ ### 120Hz Animation Rules
70
+ - Animate ONLY: `transform` (translateX/Y, scale, rotate), `opacity` all GPU composited
71
+ - ❌ Never animate: `width`, `height`, `margin`, `padding`, `top/left/bottom/right` — causes layout recalc at 60 times per second → janky, battery draining
72
+ - Use `withSpring` for all UI interactions (feel alive) — `withTiming` only for intentional timed animations
73
+ - `Gesture.Pan()` / `Gesture.Tap()` from `react-native-gesture-handler` v2 (not `PanResponder`)
74
+
75
+ ---
76
+
77
+ ## Haptics
78
+ ```tsx
79
+ import * as Haptics from 'expo-haptics';
80
+ // light → switch toggle, tap feedback
81
+ // medium → selection change, confirm
82
+ // heavy destructive action, strong confirm
83
+ // notificationAsync('success' | 'warning' | 'error') → operation outcomes
84
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light); // tap, toggle
85
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success); // save complete
86
+ // Never overuse haptics must mean something
87
+ // Haptics not supported on Android emulators test on device
88
+ ```
89
+
90
+ ---
91
+
92
+ ## Safe Areas & Platform Layout
93
+ ```tsx
94
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
95
+ import { Platform, StatusBar } from 'react-native';
96
+
97
+ function Screen() {
98
+ const insets = useSafeAreaInsets();
99
+ return (
100
+ <View style={{ paddingTop: insets.top, paddingBottom: insets.bottom }}>
101
+ {/* Content safe from Dynamic Island, home indicator, status bar */}
102
+ </View>
103
+ );
104
+ }
105
+ // Android status bar
106
+ const STATUS_BAR_HEIGHT = Platform.OS === 'android' ? StatusBar.currentHeight ?? 24 : 0;
107
+
108
+ // Foldable/tablet dual pane
109
+ import { useWindowDimensions } from 'react-native';
110
+ function AdaptiveLayout() {
111
+ const { width } = useWindowDimensions();
112
+ const isTablet = width >= 600;
113
+ return isTablet ? <TwoPaneView /> : <SinglePaneView />;
114
+ }
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Touch Psychology & Thumb Zones
120
+ - **Thumb zone**: Bottom 40% of screen = primary actions, FABs, CTAs
121
+ - **Dead zone**: Top 25% = destructive/rare actions only
122
+ - **48px minimum hitbox**: Visual icon can be 24px, padding expands hitbox to 48px
123
+ ```tsx
124
+ // Magnetic padding visually small, touch-friendly
125
+ <TouchableOpacity style={{ padding: 12, margin: -4 }}>
126
+ <Icon size={24} />
127
+ </TouchableOpacity>
128
+ ```
129
+ - **Coyote time**: Allow 100–150ms buffer after button intent registers before processing — prevents mis-taps
130
+
131
+ ---
132
+
133
+ ## Navigation (Expo Router / React Navigation)
134
+ ```tsx
135
+ // Expo Router v3+ (file-based, recommended)
136
+ // app/(tabs)/_layout.tsx tab navigator
137
+ // app/[id].tsx — dynamic segment
138
+ // app/(modal)/settings.tsx — modal group
139
+
140
+ // Stack navigation with gesture
141
+ import { Stack } from 'expo-router';
142
+ <Stack screenOptions={{ headerShown: false, animation: 'slide_from_right' }}>
143
+ <Stack.Screen name="(tabs)" />
144
+ <Stack.Screen name="[id]" options={{ presentation: 'modal' }} />
145
+ </Stack>
146
+
147
+ // Deep linking (Expo Router handles automatically via app.json scheme)
148
+ // ❌ TRAP: Don't use react-navigation Link for deep links in Expo Router — use expo-router Link
149
+ import { Link, useRouter } from 'expo-router';
150
+ const router = useRouter();
151
+ router.push('/user/42');
152
+ ```
153
+
154
+ ---
155
+
156
+ ## On-Device AI UX Patterns
157
+ - **Zero-wait illusion**: When model runs → immediately show contextual skeleton/partial tokens
158
+ - **Progressive disclosure**: Low confidence → softer UI, soft colors, require confirmation
159
+ - **Streaming UI**: `useEffect` + SSE or `StreamingText` component appending tokens
160
+ - **Local models** (MediaPipe, Core ML, ONNX): always wrap in try/catch — device capability varies
161
+
162
+ ---
163
+
164
+ ## Color & Typography
165
+ ```tsx
166
+ // OLED-safe dark mode
167
+ const colors = {
168
+ background: '#000000', // true black — OLED pixel off
169
+ surface: '#0A0A0A', // cards
170
+ surfaceAlt: '#121212', // elevated surfaces
171
+ border: '#1F1F1F',
172
+ text: '#FFFFFF',
173
+ textMuted: '#8E8E93', // iOS system gray
174
+ };
175
+ // Dynamic type (iOS) always use system font with scalesWithContentSizeCategory
176
+ import { Text } from 'react-native';
177
+ <Text style={{ fontSize: 16, fontFamily: Platform.OS === 'ios' ? 'System' : 'Roboto' }}>
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Performance Checklist
183
+ | Issue | Fix |
184
+ |-------|-----|
185
+ | JS thread jank | Move ALL animations to Reanimated worklets |
186
+ | Slow list | Replace ScrollView/FlatList with FlashList |
187
+ | Image flicker | `Image` from `expo-image` (faster cache, blurhash) |
188
+ | Re-render cascade | `React.memo` + stable callbacks + Zustand selectors |
189
+ | Large bundle | Dynamic imports + Metro tree shaking |
190
+ | Memory leak | `useEffect` cleanup + cancel animation on unmount |
191
+
192
+ ```tsx
193
+ // Cancel animation on unmount
194
+ useEffect(() => {
195
+ opacity.value = withTiming(1);
196
+ return () => cancelAnimation(opacity); // ← critical
197
+ }, []);
198
+ ```
199
+
200
+ ---
201
+
202
+ ## iOS-Specific
203
+ - **BlurView**: Use `@react-native-community/blur` for frosted glass nav bars/modals
204
+ - **SF Symbols**: Use `@expo/vector-icons/Ionicons` for system-native icons
205
+ - **Haptics**: `expo-haptics` — rich feedback on iOS, limited on Android
206
+ - **Dynamic Island**: Check `insets.top > 50` for Dynamic Island devices
207
+ - **Sheet presentations**: `presentation: 'formSheet'` in Expo Router for iOS bottom sheet native feel
208
+
209
+ ## Android-Specific
210
+ - **Material You**: Use `react-native-paper` for M3 dynamic color theming
211
+ - **Edge-to-edge**: Set `android:windowLayoutInDisplayCutoutMode="shortEdges"` in AndroidManifest
212
+ - **Back gesture prediction**: Wrap routes in `GestureHandlerRootView` at root
213
+ - **Splash**: Use `expo-splash-screen` — never hardcode a delay
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: motion-engineering
3
+ description: Motion Engineering mastery for 2026 web UI. Covers all 20 modern animation styles across 4 tiers (Core UX, Immersive, Advanced, Specialized). Use when designing motion strategy, choosing animation libraries (Framer, GSAP, WebGL, CSS), or implementing animated UI patterns.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 4.0.0
6
+ last-updated: 2026-04-07
7
+ applies-to-model: gemini-3-1-pro, claude-3-7-sonnet
8
+ ---
9
+
10
+ # Motion Engineering (2026) — Comprehensive Reference
11
+
12
+ You are the Motion Engineering Specialist. Your purpose is to bridge the gap between static UI and fluid, intuitive, and high-performance digital experiences. You understand that motion is not decoration; it is usability, narrative, and state communication.
13
+
14
+ ## Hallucination Traps & Motion Sins (Read First)
15
+ - ❌ Linear motion (`ease-linear`, CSS `transition: all`) → ✅ Spring physics (`stiffness/damping`) or custom cubic-beziers. Linear looks robotic.
16
+ - ❌ Animating layout properties (`width`, `margin`, `top`) → ✅ ONLY animate `transform` and `opacity` to maintain 120fps GPU compositing.
17
+ - ❌ Scrolljacking (hijacking native scroll wheel) → ✅ Smooth scrolling via Lenis, synchronized with native momentum.
18
+ - ❌ Heavy blocking entrance animations → ✅ Performance-first: let user interact immediately while ambient motion resolves.
19
+ - ❌ Forgetting `prefers-reduced-motion` → ✅ ALWAYS respect system accessibility. Fall back to instant opacity transitions.
20
+ - ❌ `view-transition-name` collision → ✅ Each name must be unique in the DOM at any given time.
21
+ - ❌ `element.animate()` (WAAPI) without `fill: "forwards"` → ✅ Animation resets on completion — add `fill: "forwards"` or commit state.
22
+
23
+ ---
24
+
25
+ ## Master Library Decision Matrix (20 Animation Categories)
26
+
27
+ | Category / Style | Recommended Technology | Why / Use Case |
28
+ |:---|:---|:---|
29
+ | **Tier 1: Core UX (High Frequency)** | | |
30
+ | 1. Micro-interactions | Framer Motion / CSS Springs | Fast feedback, hover states, buttons |
31
+ | 2. Scroll-based | GSAP ScrollTrigger + Lenis | Parallax, timelines, storytelling |
32
+ | 3. Page Transitions | View Transitions API + Framer | SPA route navigation, modal expands |
33
+ | 4. Loading & Skeleton | CSS @keyframes / SVGs / Lottie | Non-blocking waits, shimmer, spinners |
34
+ | **Tier 2: Narrative & Immersive (Medium Frequency)** | | |
35
+ | 5. 3D & Immersive | React Three Fiber / WebGL | Interactive scenes, models, depth |
36
+ | 7. Kinetic Typography | GSAP SplitText / Framer | Emphasize headlines, word-by-word reveal |
37
+ | 8. Background Animations | CSS Gradients / WebGL Shaders | Ambient noise, particles, mesh gradients |
38
+ | 9. Illustration/Characters | Lottie / Rive | Mascots, onboarding storytelling |
39
+ | **Tier 3: Advanced & Emerging (Situational)** | | |
40
+ | 6. State Transitions | Framer Motion `layout` | Expanding cards, drag-and-drop |
41
+ | 10. Physics-based | Matter.js / Framer Springs | Bouncy, elastic real-world mimics |
42
+ | 11. Morphing & Shape | GSAP MorphSVG | Liquid motion, blobs, SVG path morphs |
43
+ | 12. Glassmorphism UI | CSS backdrop-filter + motion | Soft shadows, refraction on hover |
44
+ | 13. Cursor-based | Custom JS + CSS variables | Magnetic buttons, cursor trails |
45
+ | 14. AI-driven Adaptive | Headless logic + Framer | Context-aware, usage-based animation |
46
+ | 15. Gamified/Interactive | Canvas / React Three Fiber | Reward animations, mini-games |
47
+ | **Tier 4: Specialized (Niche/Structural)** | | |
48
+ | 16. Video + Motion | Scroll-sync Video (GSAP) | Cinematic hero sections |
49
+ | 17. Experimental | Custom shaders / Brutalist CSS | Glitch effects, collage |
50
+ | 18. Navigation | Framer `AnimatePresence` | Mega menus, magnetic nav |
51
+ | 19. Data Visualization | D3.js + Framer Motion | Animated charts, live updates |
52
+ | 20. Performance-first | CSS only (`opacity`, `transform`) | Ultra-minimal subtle fade-ins |
53
+
54
+ ---
55
+
56
+ ## TIER 1: Core UX Motion (Dense Implementation)
57
+
58
+ *These are the foundational motions used in 80%+ of 2026 web applications.*
59
+
60
+ ### 1. Micro-interactions
61
+ Used for immediate feedback, clarifying actions, and improving perceived responsiveness.
62
+ ```tsx
63
+ // Framer Motion — button with spring micro-interaction
64
+ <motion.button
65
+ whileHover={{ scale: 1.02, filter: "brightness(1.08)" }}
66
+ whileTap={{ scale: 0.97 }}
67
+ transition={{ type: "spring", stiffness: 400, damping: 17 }}
68
+ >Submit</motion.button>
69
+ ```
70
+
71
+ ### 2. Scroll-based Animations (Most used in 2026)
72
+ Triggers narrative flow and depth based on user scrolling.
73
+ ```javascript
74
+ // GSAP ScrollTrigger — industry standard
75
+ gsap.from(".reveal-section", {
76
+ scrollTrigger: { trigger: ".reveal-section", start: "top 80%", scrub: 1 },
77
+ y: 60, opacity: 0, stagger: 0.1
78
+ });
79
+
80
+ // Lenis — smooth scroll compatible with GSAP
81
+ import Lenis from "lenis";
82
+ const lenis = new Lenis({ lerp: 0.1, wheelMultiplier: 0.8 });
83
+ lenis.on("scroll", ScrollTrigger.update);
84
+ gsap.ticker.add((time) => lenis.raf(time * 1000));
85
+ gsap.ticker.lagSmoothing(0);
86
+ ```
87
+
88
+ ### 3. Page Transitions (View Transitions API)
89
+ ```css
90
+ /* CSS — define shared elements */
91
+ .card-image { view-transition-name: active-image; } /* MUST BE UNIQUE */
92
+ ::view-transition-old(active-image) { animation: fade-out 0.3s ease; }
93
+ ::view-transition-new(active-image) { animation: scale-in 0.3s ease; }
94
+ ```
95
+
96
+ ### 4. Loading & Skeleton Animations
97
+ Never block the UI entirely. Use structural loading.
98
+ ```css
99
+ /* Shimmer structural animation */
100
+ .skeleton {
101
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
102
+ background-size: 200% 100%;
103
+ animation: shimmer 1.5s infinite linear;
104
+ }
105
+ @keyframes shimmer { 100% { background-position: -200% 0; } }
106
+ ```
107
+
108
+ ---
109
+
110
+ ## TIER 2: Narrative & Immersive (Medium Implementation)
111
+
112
+ *Used for brand storytelling, heroes, and engagement.*
113
+
114
+ ### 5. 3D & Immersive Animations
115
+ The leading trend of 2026. Use React Three Fiber.
116
+ ```tsx
117
+ // WebGL Scene basics
118
+ import { Canvas, useFrame } from '@react-three/fiber'
119
+ function RotatingCube() {
120
+ const meshRef = useRef();
121
+ useFrame((state, delta) => (meshRef.current.rotation.x += delta));
122
+ return <mesh ref={meshRef}><boxGeometry /><meshStandardMaterial color="hotpink" /></mesh>;
123
+ }
124
+ ```
125
+
126
+ ### 7. Kinetic Typography
127
+ ```tsx
128
+ // Word-by-word spring reveal (Framer Motion)
129
+ const words = "Immersive storytelling".split(" ");
130
+ const wordVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0 } };
131
+
132
+ <motion.h1 transition={{ staggerChildren: 0.05 }} initial="hidden" whileInView="visible" viewport={{ once: true }}>
133
+ {words.map((w, i) => <motion.span key={i} variants={wordVariants}>{w} </motion.span>)}
134
+ </motion.h1>
135
+ ```
136
+
137
+ ### 8. Background Animations & 9. Illustrations
138
+ - **Backgrounds:** Use CSS `@keyframes` on pseudo-elements with `filter: blur()` for ambient gradients, avoiding repaints.
139
+ - **Illustrations:** Use Rive for interactive state machines, or Lottie via `lottie-react` for simple timeline playback.
140
+
141
+ ---
142
+
143
+ ## TIER 3: Advanced & Emerging (Concepts & Tools)
144
+
145
+ *Highly interactive components elevating standard UI.*
146
+
147
+ - **6. Motion UI & State Transitions:** Use Framer Motion's `layout` prop. Morphing a list item into a modal requires `<motion.div layoutId="item-1">` on both states. Wrap the app in `<LayoutGroup>`.
148
+ - **10. Physics-based:** Animate like real-world objects. Instead of `duration`, define `mass`, `stiffness`, and `damping` in physics springs to simulate gravity and tension.
149
+ - **11. Morphing & Shape:** GSAP `MorphSVGPlugin`. Requires SVGs with comparable path points or GSAP will interpolate poorly. Alternatively, animate CSS `border-radius` for fluid blobs.
150
+ - **12. Glassmorphism:** Animate `backdrop-filter: blur(10px)` but beware of performance costs on mobile. Render shadows via `filter: drop-shadow()` combined with slight `translateY` on hover.
151
+ - **13. Cursor-based:** Modern standard is CSS variables bound to mouse position. Calculate `clientX` relative to the element bounding box and update `--mouse-x` to drive `radial-gradient` masks.
152
+ - **14. AI-driven Adaptive:** Motion that learns. If a user speeds through a form, UI transitions accelerate. If they linger, ambient motion plays. Controlled by tracking interaction deltas and mapping them to global spring configurations.
153
+ - **15. Gamified:** Progress bars that burst on completion, haptic-synchronized checkmarks. Combine SVGs with explicit, highly exaggerated elastic overshoot scales (`scale: [1, 1.2, 0.9, 1]`) on reward thresholds.
154
+
155
+ ---
156
+
157
+ ## TIER 4: Specialized (Rules & Fallbacks)
158
+
159
+ *Niche requirements where performance or specific constraints dominate.*
160
+
161
+ - **16. Video + Motion Hybrid:** Scrubbing `<video>` tags with scroll. Requires pre-encoding video rapidly with keyframes every 1 frame, drawing frames to a `<canvas>` element via `requestAnimationFrame` linked to scroll progress.
162
+ - **17. Experimental:** Glitch effects via overlapping CSS `clip-path` animations. High processing cost.
163
+ - **18. Navigation:** Mega-menus must use `<AnimatePresence>` to prevent DOM unmount before the exit animation resolves. Include exit delays so users don't trigger flickering by rapidly moving the mouse off the nav.
164
+ - **19. Data Visualization:** D3 handles math, React handles DOM, Framer/Spring handles interpolation between D3 datasets. Never let D3 mutate the DOM directly inside a React app.
165
+ - **20. Performance-first Subtle Motion:** Strictly `opacity`, `transform`, CSS-only. Use `@starting-style` for popovers and dialogs to avoid JS intervention.
166
+
167
+ ---
168
+
169
+ ## Accessibility & Performance Invariants (Global Rules)
170
+
171
+ 1. **The WCAG 2.2 AA Motion Rule:**
172
+ ```tsx
173
+ import { useReducedMotion } from "framer-motion";
174
+ const reduce = useReducedMotion();
175
+ // Safe: opacity, color
176
+ // Conditional: translate, scale, rotate
177
+ <motion.div animate={{ x: reduce ? 0 : 100, opacity: 1 }} transition={{ duration: reduce ? 0 : 0.5 }} />
178
+ ```
179
+
180
+ 2. **The 120fps GPU Rule:**
181
+ Never animate `width`, `height`, `left`, `top`, `margin`, or `padding`. This triggers layout recalculation algorithms. Use `transform: scale()` or `transform: translate()` instead.
182
+
183
+ 3. **The Cleanup Rule:**
184
+ Any GSAP ScrollTrigger timeline must use `ScrollTrigger.killAll()` or React's `useGSAP` cleanup functions to avoid memory leaks on SPA route changes.