@mytechtoday/augment-extensions 1.3.0 → 1.4.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 (232) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +105 -6
  3. package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
  4. package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
  5. package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
  6. package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
  7. package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
  8. package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
  9. package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
  10. package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
  11. package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
  12. package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
  13. package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
  14. package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
  15. package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
  16. package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
  17. package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
  18. package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
  19. package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
  20. package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
  21. package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
  22. package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
  23. package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
  24. package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
  25. package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
  26. package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
  27. package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
  28. package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
  29. package/augment-extensions/visual-design/CHANGELOG.md +132 -132
  30. package/augment-extensions/visual-design/README.md +255 -255
  31. package/augment-extensions/visual-design/__tests__/README.md +119 -119
  32. package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -172
  33. package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -214
  34. package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -157
  35. package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -156
  36. package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -156
  37. package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -157
  38. package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -156
  39. package/augment-extensions/visual-design/domains/other/os-application.ts +156 -156
  40. package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -158
  41. package/augment-extensions/visual-design/domains/other/web-app.ts +157 -157
  42. package/augment-extensions/visual-design/domains/other/website.ts +161 -161
  43. package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -156
  44. package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -506
  45. package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -615
  46. package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -531
  47. package/augment-extensions/visual-design/examples/README.md +97 -97
  48. package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -233
  49. package/augment-extensions/visual-design/examples/basic-usage.md +216 -216
  50. package/augment-extensions/visual-design/examples/domain-workflows.md +257 -257
  51. package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -247
  52. package/augment-extensions/visual-design/module.json +78 -78
  53. package/augment-extensions/visual-design/style-selector.ts +177 -177
  54. package/augment-extensions/visual-design/types.ts +302 -302
  55. package/augment-extensions/visual-design/visual-design-core.ts +469 -469
  56. package/augment-extensions/workflows/adr-support/README.md +227 -227
  57. package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -203
  58. package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -162
  59. package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -449
  60. package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -580
  61. package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -436
  62. package/augment-extensions/workflows/adr-support/module.json +112 -112
  63. package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -372
  64. package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -443
  65. package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -486
  66. package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -362
  67. package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -427
  68. package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -465
  69. package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -405
  70. package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -543
  71. package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -191
  72. package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -172
  73. package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -235
  74. package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -197
  75. package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -68
  76. package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -84
  77. package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
  78. package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
  79. package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
  80. package/cli/dist/commands/agent.d.ts +37 -0
  81. package/cli/dist/commands/agent.d.ts.map +1 -0
  82. package/cli/dist/commands/agent.js +222 -0
  83. package/cli/dist/commands/agent.js.map +1 -0
  84. package/cli/dist/commands/beads.d.ts +64 -0
  85. package/cli/dist/commands/beads.d.ts.map +1 -0
  86. package/cli/dist/commands/beads.js +377 -0
  87. package/cli/dist/commands/beads.js.map +1 -0
  88. package/cli/dist/commands/change.d.ts +54 -0
  89. package/cli/dist/commands/change.d.ts.map +1 -0
  90. package/cli/dist/commands/change.js +243 -0
  91. package/cli/dist/commands/change.js.map +1 -0
  92. package/cli/dist/commands/clean.d.ts +15 -0
  93. package/cli/dist/commands/clean.d.ts.map +1 -0
  94. package/cli/dist/commands/clean.js +63 -0
  95. package/cli/dist/commands/clean.js.map +1 -0
  96. package/cli/dist/commands/clone.d.ts +15 -0
  97. package/cli/dist/commands/clone.d.ts.map +1 -0
  98. package/cli/dist/commands/clone.js +49 -0
  99. package/cli/dist/commands/clone.js.map +1 -0
  100. package/cli/dist/commands/config.d.ts +33 -0
  101. package/cli/dist/commands/config.d.ts.map +1 -0
  102. package/cli/dist/commands/config.js +166 -0
  103. package/cli/dist/commands/config.js.map +1 -0
  104. package/cli/dist/commands/context.d.ts +38 -0
  105. package/cli/dist/commands/context.d.ts.map +1 -0
  106. package/cli/dist/commands/context.js +205 -0
  107. package/cli/dist/commands/context.js.map +1 -0
  108. package/cli/dist/commands/create.d.ts +18 -0
  109. package/cli/dist/commands/create.d.ts.map +1 -0
  110. package/cli/dist/commands/create.js +178 -0
  111. package/cli/dist/commands/create.js.map +1 -0
  112. package/cli/dist/commands/diff.d.ts +19 -0
  113. package/cli/dist/commands/diff.d.ts.map +1 -0
  114. package/cli/dist/commands/diff.js +104 -0
  115. package/cli/dist/commands/diff.js.map +1 -0
  116. package/cli/dist/commands/doctor.d.ts +14 -0
  117. package/cli/dist/commands/doctor.d.ts.map +1 -0
  118. package/cli/dist/commands/doctor.js +62 -0
  119. package/cli/dist/commands/doctor.js.map +1 -0
  120. package/cli/dist/commands/export.d.ts +28 -0
  121. package/cli/dist/commands/export.d.ts.map +1 -0
  122. package/cli/dist/commands/export.js +135 -0
  123. package/cli/dist/commands/export.js.map +1 -0
  124. package/cli/dist/commands/import.d.ts +23 -0
  125. package/cli/dist/commands/import.d.ts.map +1 -0
  126. package/cli/dist/commands/import.js +118 -0
  127. package/cli/dist/commands/import.js.map +1 -0
  128. package/cli/dist/commands/prompt.d.ts +45 -0
  129. package/cli/dist/commands/prompt.d.ts.map +1 -0
  130. package/cli/dist/commands/prompt.js +223 -0
  131. package/cli/dist/commands/prompt.js.map +1 -0
  132. package/cli/dist/commands/spec.d.ts +57 -0
  133. package/cli/dist/commands/spec.d.ts.map +1 -0
  134. package/cli/dist/commands/spec.js +279 -0
  135. package/cli/dist/commands/spec.js.map +1 -0
  136. package/cli/dist/commands/stats.d.ts +18 -0
  137. package/cli/dist/commands/stats.d.ts.map +1 -0
  138. package/cli/dist/commands/stats.js +85 -0
  139. package/cli/dist/commands/stats.js.map +1 -0
  140. package/cli/dist/commands/task.d.ts +65 -0
  141. package/cli/dist/commands/task.d.ts.map +1 -0
  142. package/cli/dist/commands/task.js +282 -0
  143. package/cli/dist/commands/task.js.map +1 -0
  144. package/cli/dist/commands/template.d.ts +17 -0
  145. package/cli/dist/commands/template.d.ts.map +1 -0
  146. package/cli/dist/commands/template.js +55 -0
  147. package/cli/dist/commands/template.js.map +1 -0
  148. package/cli/dist/utils/agent-config.d.ts +129 -0
  149. package/cli/dist/utils/agent-config.d.ts.map +1 -0
  150. package/cli/dist/utils/agent-config.js +297 -0
  151. package/cli/dist/utils/agent-config.js.map +1 -0
  152. package/cli/dist/utils/auto-sync.js +19 -19
  153. package/cli/dist/utils/beads-graph.d.ts +17 -0
  154. package/cli/dist/utils/beads-graph.d.ts.map +1 -0
  155. package/cli/dist/utils/beads-graph.js +150 -0
  156. package/cli/dist/utils/beads-graph.js.map +1 -0
  157. package/cli/dist/utils/beads-integration.d.ts +112 -0
  158. package/cli/dist/utils/beads-integration.d.ts.map +1 -0
  159. package/cli/dist/utils/beads-integration.js +312 -0
  160. package/cli/dist/utils/beads-integration.js.map +1 -0
  161. package/cli/dist/utils/beads-reporter.d.ts +17 -0
  162. package/cli/dist/utils/beads-reporter.d.ts.map +1 -0
  163. package/cli/dist/utils/beads-reporter.js +160 -0
  164. package/cli/dist/utils/beads-reporter.js.map +1 -0
  165. package/cli/dist/utils/cache-manager.d.ts +55 -0
  166. package/cli/dist/utils/cache-manager.d.ts.map +1 -0
  167. package/cli/dist/utils/cache-manager.js +150 -0
  168. package/cli/dist/utils/cache-manager.js.map +1 -0
  169. package/cli/dist/utils/change-manager.d.ts +70 -0
  170. package/cli/dist/utils/change-manager.d.ts.map +1 -0
  171. package/cli/dist/utils/change-manager.js +412 -0
  172. package/cli/dist/utils/change-manager.js.map +1 -0
  173. package/cli/dist/utils/config-manager-enhanced.d.ts +66 -0
  174. package/cli/dist/utils/config-manager-enhanced.d.ts.map +1 -0
  175. package/cli/dist/utils/config-manager-enhanced.js +77 -0
  176. package/cli/dist/utils/config-manager-enhanced.js.map +1 -0
  177. package/cli/dist/utils/context-manager.d.ts +96 -0
  178. package/cli/dist/utils/context-manager.d.ts.map +1 -0
  179. package/cli/dist/utils/context-manager.js +258 -0
  180. package/cli/dist/utils/context-manager.js.map +1 -0
  181. package/cli/dist/utils/diff-engine.d.ts +78 -0
  182. package/cli/dist/utils/diff-engine.d.ts.map +1 -0
  183. package/cli/dist/utils/diff-engine.js +233 -0
  184. package/cli/dist/utils/diff-engine.js.map +1 -0
  185. package/cli/dist/utils/export-system.d.ts +101 -0
  186. package/cli/dist/utils/export-system.d.ts.map +1 -0
  187. package/cli/dist/utils/export-system.js +289 -0
  188. package/cli/dist/utils/export-system.js.map +1 -0
  189. package/cli/dist/utils/health-checker.d.ts +66 -0
  190. package/cli/dist/utils/health-checker.d.ts.map +1 -0
  191. package/cli/dist/utils/health-checker.js +285 -0
  192. package/cli/dist/utils/health-checker.js.map +1 -0
  193. package/cli/dist/utils/import-system.d.ts +74 -0
  194. package/cli/dist/utils/import-system.d.ts.map +1 -0
  195. package/cli/dist/utils/import-system.js +317 -0
  196. package/cli/dist/utils/import-system.js.map +1 -0
  197. package/cli/dist/utils/module-cloner.d.ts +40 -0
  198. package/cli/dist/utils/module-cloner.d.ts.map +1 -0
  199. package/cli/dist/utils/module-cloner.js +136 -0
  200. package/cli/dist/utils/module-cloner.js.map +1 -0
  201. package/cli/dist/utils/prompt-manager.d.ts +90 -0
  202. package/cli/dist/utils/prompt-manager.d.ts.map +1 -0
  203. package/cli/dist/utils/prompt-manager.js +302 -0
  204. package/cli/dist/utils/prompt-manager.js.map +1 -0
  205. package/cli/dist/utils/spec-manager.d.ts +65 -0
  206. package/cli/dist/utils/spec-manager.d.ts.map +1 -0
  207. package/cli/dist/utils/spec-manager.js +329 -0
  208. package/cli/dist/utils/spec-manager.js.map +1 -0
  209. package/cli/dist/utils/stats-collector.d.ts +74 -0
  210. package/cli/dist/utils/stats-collector.d.ts.map +1 -0
  211. package/cli/dist/utils/stats-collector.js +164 -0
  212. package/cli/dist/utils/stats-collector.js.map +1 -0
  213. package/cli/dist/utils/template-engine.d.ts +47 -0
  214. package/cli/dist/utils/template-engine.d.ts.map +1 -0
  215. package/cli/dist/utils/template-engine.js +204 -0
  216. package/cli/dist/utils/template-engine.js.map +1 -0
  217. package/package.json +12 -3
  218. package/augment-extensions/workflows/openspec/README.md +0 -96
  219. package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
  220. package/augment-extensions/workflows/openspec/module.json +0 -54
  221. package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
  222. package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
  223. package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
  224. package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
  225. package/cli/dist/utils/__tests__/adr-validator.example.d.ts +0 -6
  226. package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +0 -1
  227. package/cli/dist/utils/__tests__/adr-validator.example.js +0 -148
  228. package/cli/dist/utils/__tests__/adr-validator.example.js.map +0 -1
  229. package/cli/dist/utils/adr-validator.d.ts +0 -65
  230. package/cli/dist/utils/adr-validator.d.ts.map +0 -1
  231. package/cli/dist/utils/adr-validator.js +0 -203
  232. package/cli/dist/utils/adr-validator.js.map +0 -1
@@ -1,531 +1,531 @@
1
- /**
2
- * Microsoft Fluent 2 Design System
3
- *
4
- * Fluent 2 (2021-present) represents Microsoft's evolution toward cross-platform
5
- * consistency, depth through materials (Acrylic/Mica), and adaptive design.
6
- * Key characteristics include layered materials, subtle depth, Segoe UI Variable
7
- * typography, and seamless integration across Windows, web, iOS, and Android.
8
- *
9
- * References:
10
- * - Fluent 2 Design System Documentation (2025-2026)
11
- * - https://fluent2.microsoft.design/
12
- */
13
-
14
- import {
15
- VendorStyle,
16
- ColorPalette,
17
- TypographyRules,
18
- LayoutSystem,
19
- MotionSystem,
20
- ElevationSystem,
21
- ComponentLibrary
22
- } from '../../types';
23
-
24
- // ============================================================================
25
- // Color System - Adaptive Color Tokens
26
- // ============================================================================
27
-
28
- const MICROSOFT_FLUENT_COLORS: ColorPalette = {
29
- primary: {
30
- name: 'Brand Primary',
31
- hex: '#0078D4',
32
- rgb: { r: 0, g: 120, b: 212 },
33
- hsl: { h: 206, s: 100, l: 42 },
34
- variants: [
35
- { name: 'Primary Shade 10', hex: '#004578', usage: 'Pressed state' },
36
- { name: 'Primary Shade 20', hex: '#005A9E', usage: 'Hover state' },
37
- { name: 'Primary Shade 30', hex: '#106EBE', usage: 'Active state' },
38
- { name: 'Primary Tint 10', hex: '#2B88D8', usage: 'Light backgrounds' },
39
- { name: 'Primary Tint 20', hex: '#C7E0F4', usage: 'Subtle highlights' },
40
- { name: 'Primary Tint 30', hex: '#DEECF9', usage: 'Very light backgrounds' }
41
- ]
42
- },
43
- secondary: {
44
- name: 'Secondary',
45
- hex: '#8764B8',
46
- rgb: { r: 135, g: 100, b: 184 },
47
- hsl: { h: 265, s: 38, l: 56 },
48
- variants: [
49
- { name: 'Secondary Shade 10', hex: '#5B3B8C', usage: 'Pressed state' },
50
- { name: 'Secondary Tint 10', hex: '#C4B5D6', usage: 'Light backgrounds' }
51
- ]
52
- },
53
- neutral: [
54
- { name: 'Grey 2', hex: '#050505', rgb: { r: 5, g: 5, b: 5 }, hsl: { h: 0, s: 0, l: 2 } },
55
- { name: 'Grey 4', hex: '#0A0A0A', rgb: { r: 10, g: 10, b: 10 }, hsl: { h: 0, s: 0, l: 4 } },
56
- { name: 'Grey 6', hex: '#0F0F0F', rgb: { r: 15, g: 15, b: 15 }, hsl: { h: 0, s: 0, l: 6 } },
57
- { name: 'Grey 8', hex: '#141414', rgb: { r: 20, g: 20, b: 20 }, hsl: { h: 0, s: 0, l: 8 } },
58
- { name: 'Grey 10', hex: '#1A1A1A', rgb: { r: 26, g: 26, b: 26 }, hsl: { h: 0, s: 0, l: 10 } },
59
- { name: 'Grey 12', hex: '#1F1F1F', rgb: { r: 31, g: 31, b: 31 }, hsl: { h: 0, s: 0, l: 12 } },
60
- { name: 'Grey 14', hex: '#242424', rgb: { r: 36, g: 36, b: 36 }, hsl: { h: 0, s: 0, l: 14 } },
61
- { name: 'Grey 16', hex: '#292929', rgb: { r: 41, g: 41, b: 41 }, hsl: { h: 0, s: 0, l: 16 } },
62
- { name: 'Grey 18', hex: '#2E2E2E', rgb: { r: 46, g: 46, b: 46 }, hsl: { h: 0, s: 0, l: 18 } },
63
- { name: 'Grey 20', hex: '#333333', rgb: { r: 51, g: 51, b: 51 }, hsl: { h: 0, s: 0, l: 20 } },
64
- { name: 'Grey 22', hex: '#383838', rgb: { r: 56, g: 56, b: 56 }, hsl: { h: 0, s: 0, l: 22 } },
65
- { name: 'Grey 24', hex: '#3D3D3D', rgb: { r: 61, g: 61, b: 61 }, hsl: { h: 0, s: 0, l: 24 } },
66
- { name: 'Grey 26', hex: '#424242', rgb: { r: 66, g: 66, b: 66 }, hsl: { h: 0, s: 0, l: 26 } },
67
- { name: 'Grey 28', hex: '#474747', rgb: { r: 71, g: 71, b: 71 }, hsl: { h: 0, s: 0, l: 28 } },
68
- { name: 'Grey 30', hex: '#4D4D4D', rgb: { r: 77, g: 77, b: 77 }, hsl: { h: 0, s: 0, l: 30 } },
69
- { name: 'Grey 90', hex: '#E6E6E6', rgb: { r: 230, g: 230, b: 230 }, hsl: { h: 0, s: 0, l: 90 } },
70
- { name: 'Grey 92', hex: '#EBEBEB', rgb: { r: 235, g: 235, b: 235 }, hsl: { h: 0, s: 0, l: 92 } },
71
- { name: 'Grey 94', hex: '#F0F0F0', rgb: { r: 240, g: 240, b: 240 }, hsl: { h: 0, s: 0, l: 94 } },
72
- { name: 'Grey 96', hex: '#F5F5F5', rgb: { r: 245, g: 245, b: 245 }, hsl: { h: 0, s: 0, l: 96 } },
73
- { name: 'Grey 98', hex: '#FAFAFA', rgb: { r: 250, g: 250, b: 250 }, hsl: { h: 0, s: 0, l: 98 } }
74
- ],
75
- semantic: {
76
- success: '#107C10',
77
- warning: '#F7630C',
78
- error: '#D13438',
79
- info: '#0078D4'
80
- },
81
- accessibility: {
82
- minContrastRatio: 4.5,
83
- wcagLevel: 'AA',
84
- colorBlindSafe: true
85
- }
86
- };
87
-
88
- // ============================================================================
89
- // Typography System - Segoe UI Variable
90
- // ============================================================================
91
-
92
- const MICROSOFT_FLUENT_TYPOGRAPHY: TypographyRules = {
93
- fontFamilies: [
94
- {
95
- name: 'Segoe UI Variable',
96
- fallbacks: ['Segoe UI', '-apple-system', 'BlinkMacSystemFont', 'Roboto', 'Helvetica Neue', 'sans-serif'],
97
- weights: [300, 400, 600, 700],
98
- styles: ['normal', 'italic'],
99
- usage: 'Primary font for all UI elements, supports variable font technology'
100
- },
101
- {
102
- name: 'Cascadia Code',
103
- fallbacks: ['Consolas', 'Monaco', 'Courier New', 'monospace'],
104
- weights: [400, 700],
105
- styles: ['normal'],
106
- usage: 'Monospace font for code and technical content'
107
- }
108
- ],
109
- typeScale: {
110
- base: 14,
111
- ratio: 1.125,
112
- sizes: {
113
- caption: 12,
114
- body: 14,
115
- subtitle: 16,
116
- title3: 20,
117
- title2: 24,
118
- title1: 28,
119
- display: 68
120
- }
121
- },
122
- hierarchy: {
123
- h1: { fontSize: '68px', fontWeight: 600, lineHeight: 1.2, letterSpacing: '-0.02em' },
124
- h2: { fontSize: '28px', fontWeight: 600, lineHeight: 1.3, letterSpacing: '-0.01em' },
125
- h3: { fontSize: '24px', fontWeight: 600, lineHeight: 1.3 },
126
- h4: { fontSize: '20px', fontWeight: 600, lineHeight: 1.4 },
127
- h5: { fontSize: '16px', fontWeight: 600, lineHeight: 1.4 },
128
- h6: { fontSize: '14px', fontWeight: 600, lineHeight: 1.4 },
129
- body: { fontSize: '14px', fontWeight: 400, lineHeight: 1.5 },
130
- caption: { fontSize: '12px', fontWeight: 400, lineHeight: 1.4 }
131
- },
132
- lineHeight: {
133
- tight: 1.2,
134
- normal: 1.5,
135
- relaxed: 1.75
136
- },
137
- letterSpacing: {
138
- tight: '-0.02em',
139
- normal: '0',
140
- wide: '0.02em'
141
- }
142
- };
143
-
144
- // ============================================================================
145
- // Layout System - Responsive Grid
146
- // ============================================================================
147
-
148
- const MICROSOFT_FLUENT_LAYOUT: LayoutSystem = {
149
- grid: {
150
- columns: 12,
151
- gutter: '16px',
152
- margin: '24px',
153
- maxWidth: '1920px'
154
- },
155
- spacing: {
156
- base: 4,
157
- scale: [0, 2, 4, 6, 8, 10, 12, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 96, 120],
158
- tokens: {
159
- 'spacing-none': '0',
160
- 'spacing-xxs': '2px',
161
- 'spacing-xs': '4px',
162
- 'spacing-s': '8px',
163
- 'spacing-m': '12px',
164
- 'spacing-l': '16px',
165
- 'spacing-xl': '20px',
166
- 'spacing-xxl': '24px',
167
- 'spacing-xxxl': '32px'
168
- }
169
- },
170
- breakpoints: {
171
- xs: '0px',
172
- sm: '640px',
173
- md: '1024px',
174
- lg: '1366px',
175
- xl: '1920px',
176
- xxl: '2560px'
177
- },
178
- containers: {
179
- maxWidth: {
180
- xs: '100%',
181
- sm: '640px',
182
- md: '1024px',
183
- lg: '1366px',
184
- xl: '1920px'
185
- },
186
- padding: {
187
- xs: '16px',
188
- sm: '24px',
189
- md: '32px',
190
- lg: '40px',
191
- xl: '48px'
192
- }
193
- }
194
- };
195
-
196
- // ============================================================================
197
- // Motion System - Subtle and Purposeful
198
- // ============================================================================
199
-
200
- const MICROSOFT_FLUENT_MOTION: MotionSystem = {
201
- durations: {
202
- instant: '50ms',
203
- fast: '100ms',
204
- normal: '200ms',
205
- slow: '400ms'
206
- },
207
- easings: {
208
- linear: 'linear',
209
- easeIn: 'cubic-bezier(0.8, 0, 1, 1)',
210
- easeOut: 'cubic-bezier(0, 0, 0.2, 1)',
211
- easeInOut: 'cubic-bezier(0.8, 0, 0.2, 1)',
212
- spring: 'cubic-bezier(0.33, 0, 0.67, 1)'
213
- },
214
- animations: [
215
- {
216
- name: 'fadeIn',
217
- duration: '200ms',
218
- easing: 'cubic-bezier(0, 0, 0.2, 1)',
219
- properties: ['opacity']
220
- },
221
- {
222
- name: 'slideIn',
223
- duration: '300ms',
224
- easing: 'cubic-bezier(0, 0, 0.2, 1)',
225
- properties: ['transform', 'opacity']
226
- },
227
- {
228
- name: 'scaleIn',
229
- duration: '200ms',
230
- easing: 'cubic-bezier(0.33, 0, 0.67, 1)',
231
- properties: ['transform', 'opacity']
232
- },
233
- {
234
- name: 'reveal',
235
- duration: '400ms',
236
- easing: 'cubic-bezier(0, 0, 0.2, 1)',
237
- properties: ['clip-path', 'opacity']
238
- }
239
- ]
240
- };
241
-
242
- // ============================================================================
243
- // Elevation System - Layered Depth
244
- // ============================================================================
245
-
246
- const MICROSOFT_FLUENT_ELEVATION: ElevationSystem = {
247
- levels: [
248
- {
249
- level: 0,
250
- shadow: 'none',
251
- usage: 'Base surface, no elevation'
252
- },
253
- {
254
- level: 2,
255
- shadow: '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)',
256
- usage: 'Cards, tiles at rest'
257
- },
258
- {
259
- level: 4,
260
- shadow: '0 0.6px 1.8px rgba(0, 0, 0, 0.108), 0 3.2px 7.2px rgba(0, 0, 0, 0.132)',
261
- usage: 'Raised cards, hover states'
262
- },
263
- {
264
- level: 8,
265
- shadow: '0 1.2px 3.6px rgba(0, 0, 0, 0.108), 0 6.4px 14.4px rgba(0, 0, 0, 0.132)',
266
- usage: 'Dropdowns, tooltips'
267
- },
268
- {
269
- level: 16,
270
- shadow: '0 2.4px 7.2px rgba(0, 0, 0, 0.108), 0 12.8px 28.8px rgba(0, 0, 0, 0.132)',
271
- usage: 'Dialogs, flyouts'
272
- },
273
- {
274
- level: 64,
275
- shadow: '0 9.6px 28.8px rgba(0, 0, 0, 0.108), 0 51.2px 115.2px rgba(0, 0, 0, 0.132)',
276
- usage: 'Modal overlays, highest elevation'
277
- }
278
- ],
279
- shadows: {
280
- none: 'none',
281
- sm: '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)',
282
- md: '0 0.6px 1.8px rgba(0, 0, 0, 0.108), 0 3.2px 7.2px rgba(0, 0, 0, 0.132)',
283
- lg: '0 1.2px 3.6px rgba(0, 0, 0, 0.108), 0 6.4px 14.4px rgba(0, 0, 0, 0.132)',
284
- xl: '0 2.4px 7.2px rgba(0, 0, 0, 0.108), 0 12.8px 28.8px rgba(0, 0, 0, 0.132)'
285
- }
286
- };
287
-
288
- // ============================================================================
289
- // Component Library - Fluent 2 Components
290
- // ============================================================================
291
-
292
- const MICROSOFT_FLUENT_COMPONENTS: ComponentLibrary = {
293
- buttons: {
294
- variants: [
295
- 'primary',
296
- 'subtle',
297
- 'outline',
298
- 'transparent'
299
- ],
300
- states: [
301
- 'rest',
302
- 'hover',
303
- 'pressed',
304
- 'disabled',
305
- 'focused'
306
- ],
307
- sizes: [
308
- 'small',
309
- 'medium',
310
- 'large'
311
- ],
312
- examples: [
313
- 'Primary button: High-emphasis actions with brand color background',
314
- 'Subtle button: Medium-emphasis with subtle background',
315
- 'Outline button: Secondary actions with border',
316
- 'Transparent button: Low-emphasis without background'
317
- ]
318
- },
319
- inputs: {
320
- variants: [
321
- 'filled',
322
- 'outline',
323
- 'underline'
324
- ],
325
- states: [
326
- 'rest',
327
- 'hover',
328
- 'focused',
329
- 'disabled',
330
- 'error'
331
- ],
332
- sizes: [
333
- 'small',
334
- 'medium',
335
- 'large'
336
- ],
337
- examples: [
338
- 'Text input with label and helper text',
339
- 'Search input with icon',
340
- 'Dropdown with multi-select',
341
- 'Date picker with calendar'
342
- ]
343
- },
344
- cards: {
345
- variants: [
346
- 'filled',
347
- 'outline',
348
- 'subtle'
349
- ],
350
- states: [
351
- 'rest',
352
- 'hover',
353
- 'pressed',
354
- 'selected'
355
- ],
356
- sizes: [
357
- 'compact',
358
- 'standard',
359
- 'large'
360
- ],
361
- examples: [
362
- 'Content card with image, title, and description',
363
- 'Interactive card with hover elevation',
364
- 'Selectable card with checkbox',
365
- 'Card with action buttons'
366
- ]
367
- },
368
- navigation: {
369
- variants: [
370
- 'horizontal',
371
- 'vertical',
372
- 'tabs',
373
- 'breadcrumb'
374
- ],
375
- states: [
376
- 'default',
377
- 'selected',
378
- 'hover',
379
- 'disabled'
380
- ],
381
- sizes: [
382
- 'compact',
383
- 'standard'
384
- ],
385
- examples: [
386
- 'Top navigation bar with logo and menu items',
387
- 'Side navigation panel with collapsible sections',
388
- 'Tab navigation for content switching',
389
- 'Breadcrumb trail for hierarchical navigation'
390
- ]
391
- }
392
- };
393
-
394
- // ============================================================================
395
- // Microsoft Fluent 2 Export
396
- // ============================================================================
397
-
398
- export const MICROSOFT_FLUENT: VendorStyle = {
399
- vendor: 'microsoft',
400
- name: 'Fluent 2',
401
- version: '2.0',
402
- characteristics: [
403
- 'Acrylic and Mica materials for depth and transparency',
404
- 'Subtle layered elevation with soft shadows',
405
- 'Segoe UI Variable typography with variable font support',
406
- 'Cross-platform consistency (Windows, Web, iOS, Android)',
407
- 'Adaptive color system with light and dark themes',
408
- 'Rounded corners (2px-8px radius)',
409
- 'Purposeful, subtle motion with ease-out curves',
410
- 'Accessible design (WCAG 2.1 AA compliant)',
411
- 'Responsive 12-column grid system',
412
- 'Component-based architecture',
413
- 'Focus on productivity and clarity',
414
- 'Seamless integration with Microsoft 365 ecosystem'
415
- ],
416
- colorPalette: MICROSOFT_FLUENT_COLORS,
417
- typography: MICROSOFT_FLUENT_TYPOGRAPHY,
418
- layout: MICROSOFT_FLUENT_LAYOUT,
419
- motion: MICROSOFT_FLUENT_MOTION,
420
- elevation: MICROSOFT_FLUENT_ELEVATION,
421
- components: MICROSOFT_FLUENT_COMPONENTS
422
- };
423
-
424
- /**
425
- * USAGE GUIDELINES FOR AI AGENTS
426
- *
427
- * When applying Microsoft Fluent 2 design:
428
- *
429
- * 1. COLOR SYSTEM
430
- * - Use adaptive color tokens that work in light and dark themes
431
- * - Apply brand primary (#0078D4) for key actions
432
- * - Use neutral grays (2-step increments) for backgrounds and surfaces
433
- * - Ensure WCAG AA compliance (4.5:1 contrast ratio minimum)
434
- * - Support automatic theme switching
435
- *
436
- * 2. TYPOGRAPHY
437
- * - Use Segoe UI Variable as primary font
438
- * - Apply variable font technology for smooth weight transitions
439
- * - Follow type scale (12px caption to 68px display)
440
- * - Maintain minimum 14px for body text
441
- * - Use appropriate font weights (300, 400, 600, 700)
442
- *
443
- * 3. LAYOUT
444
- * - Use 12-column responsive grid
445
- * - Apply 4px base spacing unit
446
- * - Use consistent spacing scale (2, 4, 6, 8, 10, 12, 16, 20, 24...)
447
- * - Implement responsive breakpoints (640px, 1024px, 1366px, 1920px)
448
- * - Maintain adequate padding and margins
449
- *
450
- * 4. MATERIALS & DEPTH
451
- * - Apply Acrylic material for navigation and panels (blur + transparency)
452
- * - Use Mica material for app backgrounds (subtle texture)
453
- * - Implement layered elevation (0, 2, 4, 8, 16, 64)
454
- * - Use soft, subtle shadows for depth
455
- * - Avoid excessive elevation changes
456
- *
457
- * 5. MOTION
458
- * - Use subtle, purposeful animations
459
- * - Apply ease-out curves for natural feel
460
- * - Keep durations short (50ms-400ms)
461
- * - Animate opacity, transform, and clip-path
462
- * - Respect user motion preferences (prefers-reduced-motion)
463
- *
464
- * 6. COMPONENTS
465
- * - Use Fluent 2 component library
466
- * - Apply consistent button styles (primary, subtle, outline, transparent)
467
- * - Implement proper focus indicators
468
- * - Support keyboard navigation
469
- * - Provide clear visual feedback for interactions
470
- *
471
- * 7. ACCESSIBILITY
472
- * - Ensure WCAG 2.1 AA compliance
473
- * - Provide sufficient color contrast
474
- * - Support keyboard navigation
475
- * - Include ARIA labels and roles
476
- * - Test with screen readers
477
- * - Support high contrast mode
478
- *
479
- * 8. CROSS-PLATFORM
480
- * - Design for Windows, Web, iOS, and Android
481
- * - Use platform-appropriate patterns
482
- * - Maintain consistent brand identity
483
- * - Adapt to platform conventions
484
- * - Test on multiple devices and screen sizes
485
- *
486
- * EXAMPLE USAGE:
487
- *
488
- * ```typescript
489
- * import { MICROSOFT_FLUENT } from './microsoft-fluent';
490
- *
491
- * // Apply Fluent 2 colors
492
- * const primaryColor = MICROSOFT_FLUENT.colorPalette.primary.hex; // #0078D4
493
- * const neutralBg = MICROSOFT_FLUENT.colorPalette.neutral[17].hex; // #F5F5F5
494
- *
495
- * // Use typography scale
496
- * const headingStyle = MICROSOFT_FLUENT.typography.hierarchy.h2;
497
- * // fontSize: '28px', fontWeight: 600, lineHeight: 1.3
498
- *
499
- * // Apply elevation
500
- * const cardShadow = MICROSOFT_FLUENT.elevation.levels[1].shadow;
501
- * // '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)'
502
- *
503
- * // Use motion
504
- * const fadeAnimation = MICROSOFT_FLUENT.motion.animations.find(a => a.name === 'fadeIn');
505
- * // duration: '200ms', easing: 'cubic-bezier(0, 0, 0.2, 1)'
506
- * ```
507
- *
508
- * MATERIALS IMPLEMENTATION:
509
- *
510
- * Acrylic Material (CSS):
511
- * ```css
512
- * .acrylic-surface {
513
- * background: rgba(243, 243, 243, 0.7);
514
- * backdrop-filter: blur(30px) saturate(125%);
515
- * border: 1px solid rgba(255, 255, 255, 0.18);
516
- * }
517
- * ```
518
- *
519
- * Mica Material (CSS):
520
- * ```css
521
- * .mica-surface {
522
- * background: linear-gradient(
523
- * 135deg,
524
- * rgba(243, 243, 243, 0.9) 0%,
525
- * rgba(250, 250, 250, 0.9) 100%
526
- * );
527
- * backdrop-filter: blur(50px);
528
- * }
529
- * ```
530
- */
531
-
1
+ /**
2
+ * Microsoft Fluent 2 Design System
3
+ *
4
+ * Fluent 2 (2021-present) represents Microsoft's evolution toward cross-platform
5
+ * consistency, depth through materials (Acrylic/Mica), and adaptive design.
6
+ * Key characteristics include layered materials, subtle depth, Segoe UI Variable
7
+ * typography, and seamless integration across Windows, web, iOS, and Android.
8
+ *
9
+ * References:
10
+ * - Fluent 2 Design System Documentation (2025-2026)
11
+ * - https://fluent2.microsoft.design/
12
+ */
13
+
14
+ import {
15
+ VendorStyle,
16
+ ColorPalette,
17
+ TypographyRules,
18
+ LayoutSystem,
19
+ MotionSystem,
20
+ ElevationSystem,
21
+ ComponentLibrary
22
+ } from '../../types';
23
+
24
+ // ============================================================================
25
+ // Color System - Adaptive Color Tokens
26
+ // ============================================================================
27
+
28
+ const MICROSOFT_FLUENT_COLORS: ColorPalette = {
29
+ primary: {
30
+ name: 'Brand Primary',
31
+ hex: '#0078D4',
32
+ rgb: { r: 0, g: 120, b: 212 },
33
+ hsl: { h: 206, s: 100, l: 42 },
34
+ variants: [
35
+ { name: 'Primary Shade 10', hex: '#004578', usage: 'Pressed state' },
36
+ { name: 'Primary Shade 20', hex: '#005A9E', usage: 'Hover state' },
37
+ { name: 'Primary Shade 30', hex: '#106EBE', usage: 'Active state' },
38
+ { name: 'Primary Tint 10', hex: '#2B88D8', usage: 'Light backgrounds' },
39
+ { name: 'Primary Tint 20', hex: '#C7E0F4', usage: 'Subtle highlights' },
40
+ { name: 'Primary Tint 30', hex: '#DEECF9', usage: 'Very light backgrounds' }
41
+ ]
42
+ },
43
+ secondary: {
44
+ name: 'Secondary',
45
+ hex: '#8764B8',
46
+ rgb: { r: 135, g: 100, b: 184 },
47
+ hsl: { h: 265, s: 38, l: 56 },
48
+ variants: [
49
+ { name: 'Secondary Shade 10', hex: '#5B3B8C', usage: 'Pressed state' },
50
+ { name: 'Secondary Tint 10', hex: '#C4B5D6', usage: 'Light backgrounds' }
51
+ ]
52
+ },
53
+ neutral: [
54
+ { name: 'Grey 2', hex: '#050505', rgb: { r: 5, g: 5, b: 5 }, hsl: { h: 0, s: 0, l: 2 } },
55
+ { name: 'Grey 4', hex: '#0A0A0A', rgb: { r: 10, g: 10, b: 10 }, hsl: { h: 0, s: 0, l: 4 } },
56
+ { name: 'Grey 6', hex: '#0F0F0F', rgb: { r: 15, g: 15, b: 15 }, hsl: { h: 0, s: 0, l: 6 } },
57
+ { name: 'Grey 8', hex: '#141414', rgb: { r: 20, g: 20, b: 20 }, hsl: { h: 0, s: 0, l: 8 } },
58
+ { name: 'Grey 10', hex: '#1A1A1A', rgb: { r: 26, g: 26, b: 26 }, hsl: { h: 0, s: 0, l: 10 } },
59
+ { name: 'Grey 12', hex: '#1F1F1F', rgb: { r: 31, g: 31, b: 31 }, hsl: { h: 0, s: 0, l: 12 } },
60
+ { name: 'Grey 14', hex: '#242424', rgb: { r: 36, g: 36, b: 36 }, hsl: { h: 0, s: 0, l: 14 } },
61
+ { name: 'Grey 16', hex: '#292929', rgb: { r: 41, g: 41, b: 41 }, hsl: { h: 0, s: 0, l: 16 } },
62
+ { name: 'Grey 18', hex: '#2E2E2E', rgb: { r: 46, g: 46, b: 46 }, hsl: { h: 0, s: 0, l: 18 } },
63
+ { name: 'Grey 20', hex: '#333333', rgb: { r: 51, g: 51, b: 51 }, hsl: { h: 0, s: 0, l: 20 } },
64
+ { name: 'Grey 22', hex: '#383838', rgb: { r: 56, g: 56, b: 56 }, hsl: { h: 0, s: 0, l: 22 } },
65
+ { name: 'Grey 24', hex: '#3D3D3D', rgb: { r: 61, g: 61, b: 61 }, hsl: { h: 0, s: 0, l: 24 } },
66
+ { name: 'Grey 26', hex: '#424242', rgb: { r: 66, g: 66, b: 66 }, hsl: { h: 0, s: 0, l: 26 } },
67
+ { name: 'Grey 28', hex: '#474747', rgb: { r: 71, g: 71, b: 71 }, hsl: { h: 0, s: 0, l: 28 } },
68
+ { name: 'Grey 30', hex: '#4D4D4D', rgb: { r: 77, g: 77, b: 77 }, hsl: { h: 0, s: 0, l: 30 } },
69
+ { name: 'Grey 90', hex: '#E6E6E6', rgb: { r: 230, g: 230, b: 230 }, hsl: { h: 0, s: 0, l: 90 } },
70
+ { name: 'Grey 92', hex: '#EBEBEB', rgb: { r: 235, g: 235, b: 235 }, hsl: { h: 0, s: 0, l: 92 } },
71
+ { name: 'Grey 94', hex: '#F0F0F0', rgb: { r: 240, g: 240, b: 240 }, hsl: { h: 0, s: 0, l: 94 } },
72
+ { name: 'Grey 96', hex: '#F5F5F5', rgb: { r: 245, g: 245, b: 245 }, hsl: { h: 0, s: 0, l: 96 } },
73
+ { name: 'Grey 98', hex: '#FAFAFA', rgb: { r: 250, g: 250, b: 250 }, hsl: { h: 0, s: 0, l: 98 } }
74
+ ],
75
+ semantic: {
76
+ success: '#107C10',
77
+ warning: '#F7630C',
78
+ error: '#D13438',
79
+ info: '#0078D4'
80
+ },
81
+ accessibility: {
82
+ minContrastRatio: 4.5,
83
+ wcagLevel: 'AA',
84
+ colorBlindSafe: true
85
+ }
86
+ };
87
+
88
+ // ============================================================================
89
+ // Typography System - Segoe UI Variable
90
+ // ============================================================================
91
+
92
+ const MICROSOFT_FLUENT_TYPOGRAPHY: TypographyRules = {
93
+ fontFamilies: [
94
+ {
95
+ name: 'Segoe UI Variable',
96
+ fallbacks: ['Segoe UI', '-apple-system', 'BlinkMacSystemFont', 'Roboto', 'Helvetica Neue', 'sans-serif'],
97
+ weights: [300, 400, 600, 700],
98
+ styles: ['normal', 'italic'],
99
+ usage: 'Primary font for all UI elements, supports variable font technology'
100
+ },
101
+ {
102
+ name: 'Cascadia Code',
103
+ fallbacks: ['Consolas', 'Monaco', 'Courier New', 'monospace'],
104
+ weights: [400, 700],
105
+ styles: ['normal'],
106
+ usage: 'Monospace font for code and technical content'
107
+ }
108
+ ],
109
+ typeScale: {
110
+ base: 14,
111
+ ratio: 1.125,
112
+ sizes: {
113
+ caption: 12,
114
+ body: 14,
115
+ subtitle: 16,
116
+ title3: 20,
117
+ title2: 24,
118
+ title1: 28,
119
+ display: 68
120
+ }
121
+ },
122
+ hierarchy: {
123
+ h1: { fontSize: '68px', fontWeight: 600, lineHeight: 1.2, letterSpacing: '-0.02em' },
124
+ h2: { fontSize: '28px', fontWeight: 600, lineHeight: 1.3, letterSpacing: '-0.01em' },
125
+ h3: { fontSize: '24px', fontWeight: 600, lineHeight: 1.3 },
126
+ h4: { fontSize: '20px', fontWeight: 600, lineHeight: 1.4 },
127
+ h5: { fontSize: '16px', fontWeight: 600, lineHeight: 1.4 },
128
+ h6: { fontSize: '14px', fontWeight: 600, lineHeight: 1.4 },
129
+ body: { fontSize: '14px', fontWeight: 400, lineHeight: 1.5 },
130
+ caption: { fontSize: '12px', fontWeight: 400, lineHeight: 1.4 }
131
+ },
132
+ lineHeight: {
133
+ tight: 1.2,
134
+ normal: 1.5,
135
+ relaxed: 1.75
136
+ },
137
+ letterSpacing: {
138
+ tight: '-0.02em',
139
+ normal: '0',
140
+ wide: '0.02em'
141
+ }
142
+ };
143
+
144
+ // ============================================================================
145
+ // Layout System - Responsive Grid
146
+ // ============================================================================
147
+
148
+ const MICROSOFT_FLUENT_LAYOUT: LayoutSystem = {
149
+ grid: {
150
+ columns: 12,
151
+ gutter: '16px',
152
+ margin: '24px',
153
+ maxWidth: '1920px'
154
+ },
155
+ spacing: {
156
+ base: 4,
157
+ scale: [0, 2, 4, 6, 8, 10, 12, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 96, 120],
158
+ tokens: {
159
+ 'spacing-none': '0',
160
+ 'spacing-xxs': '2px',
161
+ 'spacing-xs': '4px',
162
+ 'spacing-s': '8px',
163
+ 'spacing-m': '12px',
164
+ 'spacing-l': '16px',
165
+ 'spacing-xl': '20px',
166
+ 'spacing-xxl': '24px',
167
+ 'spacing-xxxl': '32px'
168
+ }
169
+ },
170
+ breakpoints: {
171
+ xs: '0px',
172
+ sm: '640px',
173
+ md: '1024px',
174
+ lg: '1366px',
175
+ xl: '1920px',
176
+ xxl: '2560px'
177
+ },
178
+ containers: {
179
+ maxWidth: {
180
+ xs: '100%',
181
+ sm: '640px',
182
+ md: '1024px',
183
+ lg: '1366px',
184
+ xl: '1920px'
185
+ },
186
+ padding: {
187
+ xs: '16px',
188
+ sm: '24px',
189
+ md: '32px',
190
+ lg: '40px',
191
+ xl: '48px'
192
+ }
193
+ }
194
+ };
195
+
196
+ // ============================================================================
197
+ // Motion System - Subtle and Purposeful
198
+ // ============================================================================
199
+
200
+ const MICROSOFT_FLUENT_MOTION: MotionSystem = {
201
+ durations: {
202
+ instant: '50ms',
203
+ fast: '100ms',
204
+ normal: '200ms',
205
+ slow: '400ms'
206
+ },
207
+ easings: {
208
+ linear: 'linear',
209
+ easeIn: 'cubic-bezier(0.8, 0, 1, 1)',
210
+ easeOut: 'cubic-bezier(0, 0, 0.2, 1)',
211
+ easeInOut: 'cubic-bezier(0.8, 0, 0.2, 1)',
212
+ spring: 'cubic-bezier(0.33, 0, 0.67, 1)'
213
+ },
214
+ animations: [
215
+ {
216
+ name: 'fadeIn',
217
+ duration: '200ms',
218
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
219
+ properties: ['opacity']
220
+ },
221
+ {
222
+ name: 'slideIn',
223
+ duration: '300ms',
224
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
225
+ properties: ['transform', 'opacity']
226
+ },
227
+ {
228
+ name: 'scaleIn',
229
+ duration: '200ms',
230
+ easing: 'cubic-bezier(0.33, 0, 0.67, 1)',
231
+ properties: ['transform', 'opacity']
232
+ },
233
+ {
234
+ name: 'reveal',
235
+ duration: '400ms',
236
+ easing: 'cubic-bezier(0, 0, 0.2, 1)',
237
+ properties: ['clip-path', 'opacity']
238
+ }
239
+ ]
240
+ };
241
+
242
+ // ============================================================================
243
+ // Elevation System - Layered Depth
244
+ // ============================================================================
245
+
246
+ const MICROSOFT_FLUENT_ELEVATION: ElevationSystem = {
247
+ levels: [
248
+ {
249
+ level: 0,
250
+ shadow: 'none',
251
+ usage: 'Base surface, no elevation'
252
+ },
253
+ {
254
+ level: 2,
255
+ shadow: '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)',
256
+ usage: 'Cards, tiles at rest'
257
+ },
258
+ {
259
+ level: 4,
260
+ shadow: '0 0.6px 1.8px rgba(0, 0, 0, 0.108), 0 3.2px 7.2px rgba(0, 0, 0, 0.132)',
261
+ usage: 'Raised cards, hover states'
262
+ },
263
+ {
264
+ level: 8,
265
+ shadow: '0 1.2px 3.6px rgba(0, 0, 0, 0.108), 0 6.4px 14.4px rgba(0, 0, 0, 0.132)',
266
+ usage: 'Dropdowns, tooltips'
267
+ },
268
+ {
269
+ level: 16,
270
+ shadow: '0 2.4px 7.2px rgba(0, 0, 0, 0.108), 0 12.8px 28.8px rgba(0, 0, 0, 0.132)',
271
+ usage: 'Dialogs, flyouts'
272
+ },
273
+ {
274
+ level: 64,
275
+ shadow: '0 9.6px 28.8px rgba(0, 0, 0, 0.108), 0 51.2px 115.2px rgba(0, 0, 0, 0.132)',
276
+ usage: 'Modal overlays, highest elevation'
277
+ }
278
+ ],
279
+ shadows: {
280
+ none: 'none',
281
+ sm: '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)',
282
+ md: '0 0.6px 1.8px rgba(0, 0, 0, 0.108), 0 3.2px 7.2px rgba(0, 0, 0, 0.132)',
283
+ lg: '0 1.2px 3.6px rgba(0, 0, 0, 0.108), 0 6.4px 14.4px rgba(0, 0, 0, 0.132)',
284
+ xl: '0 2.4px 7.2px rgba(0, 0, 0, 0.108), 0 12.8px 28.8px rgba(0, 0, 0, 0.132)'
285
+ }
286
+ };
287
+
288
+ // ============================================================================
289
+ // Component Library - Fluent 2 Components
290
+ // ============================================================================
291
+
292
+ const MICROSOFT_FLUENT_COMPONENTS: ComponentLibrary = {
293
+ buttons: {
294
+ variants: [
295
+ 'primary',
296
+ 'subtle',
297
+ 'outline',
298
+ 'transparent'
299
+ ],
300
+ states: [
301
+ 'rest',
302
+ 'hover',
303
+ 'pressed',
304
+ 'disabled',
305
+ 'focused'
306
+ ],
307
+ sizes: [
308
+ 'small',
309
+ 'medium',
310
+ 'large'
311
+ ],
312
+ examples: [
313
+ 'Primary button: High-emphasis actions with brand color background',
314
+ 'Subtle button: Medium-emphasis with subtle background',
315
+ 'Outline button: Secondary actions with border',
316
+ 'Transparent button: Low-emphasis without background'
317
+ ]
318
+ },
319
+ inputs: {
320
+ variants: [
321
+ 'filled',
322
+ 'outline',
323
+ 'underline'
324
+ ],
325
+ states: [
326
+ 'rest',
327
+ 'hover',
328
+ 'focused',
329
+ 'disabled',
330
+ 'error'
331
+ ],
332
+ sizes: [
333
+ 'small',
334
+ 'medium',
335
+ 'large'
336
+ ],
337
+ examples: [
338
+ 'Text input with label and helper text',
339
+ 'Search input with icon',
340
+ 'Dropdown with multi-select',
341
+ 'Date picker with calendar'
342
+ ]
343
+ },
344
+ cards: {
345
+ variants: [
346
+ 'filled',
347
+ 'outline',
348
+ 'subtle'
349
+ ],
350
+ states: [
351
+ 'rest',
352
+ 'hover',
353
+ 'pressed',
354
+ 'selected'
355
+ ],
356
+ sizes: [
357
+ 'compact',
358
+ 'standard',
359
+ 'large'
360
+ ],
361
+ examples: [
362
+ 'Content card with image, title, and description',
363
+ 'Interactive card with hover elevation',
364
+ 'Selectable card with checkbox',
365
+ 'Card with action buttons'
366
+ ]
367
+ },
368
+ navigation: {
369
+ variants: [
370
+ 'horizontal',
371
+ 'vertical',
372
+ 'tabs',
373
+ 'breadcrumb'
374
+ ],
375
+ states: [
376
+ 'default',
377
+ 'selected',
378
+ 'hover',
379
+ 'disabled'
380
+ ],
381
+ sizes: [
382
+ 'compact',
383
+ 'standard'
384
+ ],
385
+ examples: [
386
+ 'Top navigation bar with logo and menu items',
387
+ 'Side navigation panel with collapsible sections',
388
+ 'Tab navigation for content switching',
389
+ 'Breadcrumb trail for hierarchical navigation'
390
+ ]
391
+ }
392
+ };
393
+
394
+ // ============================================================================
395
+ // Microsoft Fluent 2 Export
396
+ // ============================================================================
397
+
398
+ export const MICROSOFT_FLUENT: VendorStyle = {
399
+ vendor: 'microsoft',
400
+ name: 'Fluent 2',
401
+ version: '2.0',
402
+ characteristics: [
403
+ 'Acrylic and Mica materials for depth and transparency',
404
+ 'Subtle layered elevation with soft shadows',
405
+ 'Segoe UI Variable typography with variable font support',
406
+ 'Cross-platform consistency (Windows, Web, iOS, Android)',
407
+ 'Adaptive color system with light and dark themes',
408
+ 'Rounded corners (2px-8px radius)',
409
+ 'Purposeful, subtle motion with ease-out curves',
410
+ 'Accessible design (WCAG 2.1 AA compliant)',
411
+ 'Responsive 12-column grid system',
412
+ 'Component-based architecture',
413
+ 'Focus on productivity and clarity',
414
+ 'Seamless integration with Microsoft 365 ecosystem'
415
+ ],
416
+ colorPalette: MICROSOFT_FLUENT_COLORS,
417
+ typography: MICROSOFT_FLUENT_TYPOGRAPHY,
418
+ layout: MICROSOFT_FLUENT_LAYOUT,
419
+ motion: MICROSOFT_FLUENT_MOTION,
420
+ elevation: MICROSOFT_FLUENT_ELEVATION,
421
+ components: MICROSOFT_FLUENT_COMPONENTS
422
+ };
423
+
424
+ /**
425
+ * USAGE GUIDELINES FOR AI AGENTS
426
+ *
427
+ * When applying Microsoft Fluent 2 design:
428
+ *
429
+ * 1. COLOR SYSTEM
430
+ * - Use adaptive color tokens that work in light and dark themes
431
+ * - Apply brand primary (#0078D4) for key actions
432
+ * - Use neutral grays (2-step increments) for backgrounds and surfaces
433
+ * - Ensure WCAG AA compliance (4.5:1 contrast ratio minimum)
434
+ * - Support automatic theme switching
435
+ *
436
+ * 2. TYPOGRAPHY
437
+ * - Use Segoe UI Variable as primary font
438
+ * - Apply variable font technology for smooth weight transitions
439
+ * - Follow type scale (12px caption to 68px display)
440
+ * - Maintain minimum 14px for body text
441
+ * - Use appropriate font weights (300, 400, 600, 700)
442
+ *
443
+ * 3. LAYOUT
444
+ * - Use 12-column responsive grid
445
+ * - Apply 4px base spacing unit
446
+ * - Use consistent spacing scale (2, 4, 6, 8, 10, 12, 16, 20, 24...)
447
+ * - Implement responsive breakpoints (640px, 1024px, 1366px, 1920px)
448
+ * - Maintain adequate padding and margins
449
+ *
450
+ * 4. MATERIALS & DEPTH
451
+ * - Apply Acrylic material for navigation and panels (blur + transparency)
452
+ * - Use Mica material for app backgrounds (subtle texture)
453
+ * - Implement layered elevation (0, 2, 4, 8, 16, 64)
454
+ * - Use soft, subtle shadows for depth
455
+ * - Avoid excessive elevation changes
456
+ *
457
+ * 5. MOTION
458
+ * - Use subtle, purposeful animations
459
+ * - Apply ease-out curves for natural feel
460
+ * - Keep durations short (50ms-400ms)
461
+ * - Animate opacity, transform, and clip-path
462
+ * - Respect user motion preferences (prefers-reduced-motion)
463
+ *
464
+ * 6. COMPONENTS
465
+ * - Use Fluent 2 component library
466
+ * - Apply consistent button styles (primary, subtle, outline, transparent)
467
+ * - Implement proper focus indicators
468
+ * - Support keyboard navigation
469
+ * - Provide clear visual feedback for interactions
470
+ *
471
+ * 7. ACCESSIBILITY
472
+ * - Ensure WCAG 2.1 AA compliance
473
+ * - Provide sufficient color contrast
474
+ * - Support keyboard navigation
475
+ * - Include ARIA labels and roles
476
+ * - Test with screen readers
477
+ * - Support high contrast mode
478
+ *
479
+ * 8. CROSS-PLATFORM
480
+ * - Design for Windows, Web, iOS, and Android
481
+ * - Use platform-appropriate patterns
482
+ * - Maintain consistent brand identity
483
+ * - Adapt to platform conventions
484
+ * - Test on multiple devices and screen sizes
485
+ *
486
+ * EXAMPLE USAGE:
487
+ *
488
+ * ```typescript
489
+ * import { MICROSOFT_FLUENT } from './microsoft-fluent';
490
+ *
491
+ * // Apply Fluent 2 colors
492
+ * const primaryColor = MICROSOFT_FLUENT.colorPalette.primary.hex; // #0078D4
493
+ * const neutralBg = MICROSOFT_FLUENT.colorPalette.neutral[17].hex; // #F5F5F5
494
+ *
495
+ * // Use typography scale
496
+ * const headingStyle = MICROSOFT_FLUENT.typography.hierarchy.h2;
497
+ * // fontSize: '28px', fontWeight: 600, lineHeight: 1.3
498
+ *
499
+ * // Apply elevation
500
+ * const cardShadow = MICROSOFT_FLUENT.elevation.levels[1].shadow;
501
+ * // '0 0.3px 0.9px rgba(0, 0, 0, 0.108), 0 1.6px 3.6px rgba(0, 0, 0, 0.132)'
502
+ *
503
+ * // Use motion
504
+ * const fadeAnimation = MICROSOFT_FLUENT.motion.animations.find(a => a.name === 'fadeIn');
505
+ * // duration: '200ms', easing: 'cubic-bezier(0, 0, 0.2, 1)'
506
+ * ```
507
+ *
508
+ * MATERIALS IMPLEMENTATION:
509
+ *
510
+ * Acrylic Material (CSS):
511
+ * ```css
512
+ * .acrylic-surface {
513
+ * background: rgba(243, 243, 243, 0.7);
514
+ * backdrop-filter: blur(30px) saturate(125%);
515
+ * border: 1px solid rgba(255, 255, 255, 0.18);
516
+ * }
517
+ * ```
518
+ *
519
+ * Mica Material (CSS):
520
+ * ```css
521
+ * .mica-surface {
522
+ * background: linear-gradient(
523
+ * 135deg,
524
+ * rgba(243, 243, 243, 0.9) 0%,
525
+ * rgba(250, 250, 250, 0.9) 100%
526
+ * );
527
+ * backdrop-filter: blur(50px);
528
+ * }
529
+ * ```
530
+ */
531
+