@mytechtoday/augment-extensions 1.3.0 → 1.3.1

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 (95) hide show
  1. package/LICENSE +22 -22
  2. package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
  3. package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
  4. package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
  5. package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
  6. package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
  7. package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
  8. package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
  9. package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
  10. package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
  11. package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
  12. package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
  13. package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
  14. package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
  15. package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
  16. package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
  17. package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
  18. package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
  19. package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
  20. package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
  21. package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
  22. package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
  23. package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
  24. package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
  25. package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
  26. package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
  27. package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
  28. package/augment-extensions/visual-design/CHANGELOG.md +132 -132
  29. package/augment-extensions/visual-design/README.md +255 -255
  30. package/augment-extensions/visual-design/__tests__/README.md +119 -119
  31. package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -172
  32. package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -214
  33. package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -157
  34. package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -156
  35. package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -156
  36. package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -157
  37. package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -156
  38. package/augment-extensions/visual-design/domains/other/os-application.ts +156 -156
  39. package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -158
  40. package/augment-extensions/visual-design/domains/other/web-app.ts +157 -157
  41. package/augment-extensions/visual-design/domains/other/website.ts +161 -161
  42. package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -156
  43. package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -506
  44. package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -615
  45. package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -531
  46. package/augment-extensions/visual-design/examples/README.md +97 -97
  47. package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -233
  48. package/augment-extensions/visual-design/examples/basic-usage.md +216 -216
  49. package/augment-extensions/visual-design/examples/domain-workflows.md +257 -257
  50. package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -247
  51. package/augment-extensions/visual-design/module.json +78 -78
  52. package/augment-extensions/visual-design/style-selector.ts +177 -177
  53. package/augment-extensions/visual-design/types.ts +302 -302
  54. package/augment-extensions/visual-design/visual-design-core.ts +469 -469
  55. package/augment-extensions/workflows/adr-support/README.md +227 -227
  56. package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -203
  57. package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -162
  58. package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -449
  59. package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -580
  60. package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -436
  61. package/augment-extensions/workflows/adr-support/module.json +112 -112
  62. package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -372
  63. package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -443
  64. package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -486
  65. package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -362
  66. package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -427
  67. package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -465
  68. package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -405
  69. package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -543
  70. package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -191
  71. package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -172
  72. package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -235
  73. package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -197
  74. package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -68
  75. package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -84
  76. package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
  77. package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
  78. package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
  79. package/cli/dist/utils/auto-sync.js +19 -19
  80. package/package.json +5 -3
  81. package/augment-extensions/workflows/openspec/README.md +0 -96
  82. package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
  83. package/augment-extensions/workflows/openspec/module.json +0 -54
  84. package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
  85. package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
  86. package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
  87. package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
  88. package/cli/dist/utils/__tests__/adr-validator.example.d.ts +0 -6
  89. package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +0 -1
  90. package/cli/dist/utils/__tests__/adr-validator.example.js +0 -148
  91. package/cli/dist/utils/__tests__/adr-validator.example.js.map +0 -1
  92. package/cli/dist/utils/adr-validator.d.ts +0 -65
  93. package/cli/dist/utils/adr-validator.d.ts.map +0 -1
  94. package/cli/dist/utils/adr-validator.js +0 -203
  95. 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
+