@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,615 +1,615 @@
1
- /**
2
- * Google Modern (Material 3 Expressive) Design System
3
- *
4
- * Material Design 3 (2021-present) represents Google's evolution toward more
5
- * expressive, personalized, and accessible design. Key characteristics include
6
- * dynamic color theming, rounded corners, springy motion, and enhanced accessibility.
7
- *
8
- * References:
9
- * - Material Design 3 Documentation (2025-2026)
10
- * - https://m3.material.io/
11
- */
12
-
13
- import {
14
- VendorStyle,
15
- ColorPalette,
16
- TypographyRules,
17
- LayoutSystem,
18
- MotionSystem,
19
- ElevationSystem,
20
- ComponentLibrary
21
- } from '../../types';
22
-
23
- // ============================================================================
24
- // Color System - Dynamic Color Theming
25
- // ============================================================================
26
-
27
- const GOOGLE_MODERN_COLORS: ColorPalette = {
28
- primary: {
29
- name: 'Primary',
30
- hex: '#6750A4',
31
- rgb: 'rgb(103, 80, 164)',
32
- usage: 'Primary brand color, key actions, important UI elements',
33
- accessibility: 'WCAG AA compliant with white text',
34
- tones: {
35
- 0: '#000000',
36
- 10: '#21005D',
37
- 20: '#381E72',
38
- 30: '#4F378B',
39
- 40: '#6750A4',
40
- 50: '#7F67BE',
41
- 60: '#9A82DB',
42
- 70: '#B69DF8',
43
- 80: '#D0BCFF',
44
- 90: '#EADDFF',
45
- 95: '#F6EDFF',
46
- 99: '#FFFBFE',
47
- 100: '#FFFFFF'
48
- }
49
- },
50
- secondary: {
51
- name: 'Secondary',
52
- hex: '#625B71',
53
- rgb: 'rgb(98, 91, 113)',
54
- usage: 'Secondary actions, less prominent UI elements',
55
- accessibility: 'WCAG AA compliant',
56
- tones: {
57
- 0: '#000000',
58
- 10: '#1D192B',
59
- 20: '#332D41',
60
- 30: '#4A4458',
61
- 40: '#625B71',
62
- 50: '#7A7289',
63
- 60: '#958DA5',
64
- 70: '#B0A7C0',
65
- 80: '#CCC2DC',
66
- 90: '#E8DEF8',
67
- 95: '#F6EDFF',
68
- 99: '#FFFBFE',
69
- 100: '#FFFFFF'
70
- }
71
- },
72
- tertiary: {
73
- name: 'Tertiary',
74
- hex: '#7D5260',
75
- rgb: 'rgb(125, 82, 96)',
76
- usage: 'Accent color, highlights, contrasting elements',
77
- accessibility: 'WCAG AA compliant',
78
- tones: {
79
- 0: '#000000',
80
- 10: '#31111D',
81
- 20: '#492532',
82
- 30: '#633B48',
83
- 40: '#7D5260',
84
- 50: '#986977',
85
- 60: '#B58392',
86
- 70: '#D29DAC',
87
- 80: '#EFB8C8',
88
- 90: '#FFD8E4',
89
- 95: '#FFECF1',
90
- 99: '#FFFBFA',
91
- 100: '#FFFFFF'
92
- }
93
- },
94
- error: {
95
- name: 'Error',
96
- hex: '#B3261E',
97
- rgb: 'rgb(179, 38, 30)',
98
- usage: 'Error states, destructive actions, warnings',
99
- accessibility: 'WCAG AA compliant with white text'
100
- },
101
- neutral: {
102
- name: 'Neutral',
103
- hex: '#79747E',
104
- rgb: 'rgb(121, 116, 126)',
105
- usage: 'Backgrounds, surfaces, outlines',
106
- accessibility: 'WCAG AA compliant'
107
- },
108
- neutralVariant: {
109
- name: 'Neutral Variant',
110
- hex: '#79747E',
111
- rgb: 'rgb(121, 116, 126)',
112
- usage: 'Medium emphasis backgrounds, subtle outlines',
113
- accessibility: 'WCAG AA compliant'
114
- }
115
- };
116
-
117
- // ============================================================================
118
- // Typography - Google Sans & Roboto
119
- // ============================================================================
120
-
121
- const GOOGLE_MODERN_TYPOGRAPHY: TypographyRules = {
122
- fontFamilies: {
123
- primary: "'Google Sans', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
124
- secondary: "'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
125
- monospace: "'Roboto Mono', 'Courier New', monospace"
126
- },
127
- typeScale: {
128
- displayLarge: {
129
- fontSize: '57px',
130
- lineHeight: '64px',
131
- fontWeight: 400,
132
- letterSpacing: '-0.25px',
133
- usage: 'Largest display text, hero sections'
134
- },
135
- displayMedium: {
136
- fontSize: '45px',
137
- lineHeight: '52px',
138
- fontWeight: 400,
139
- letterSpacing: '0px',
140
- usage: 'Large display text'
141
- },
142
- displaySmall: {
143
- fontSize: '36px',
144
- lineHeight: '44px',
145
- fontWeight: 400,
146
- letterSpacing: '0px',
147
- usage: 'Small display text'
148
- },
149
- headlineLarge: {
150
- fontSize: '32px',
151
- lineHeight: '40px',
152
- fontWeight: 400,
153
- letterSpacing: '0px',
154
- usage: 'Large headlines'
155
- },
156
- headlineMedium: {
157
- fontSize: '28px',
158
- lineHeight: '36px',
159
- fontWeight: 400,
160
- letterSpacing: '0px',
161
- usage: 'Medium headlines'
162
- },
163
- headlineSmall: {
164
- fontSize: '24px',
165
- lineHeight: '32px',
166
- fontWeight: 400,
167
- letterSpacing: '0px',
168
- usage: 'Small headlines'
169
- },
170
- titleLarge: {
171
- fontSize: '22px',
172
- lineHeight: '28px',
173
- fontWeight: 400,
174
- letterSpacing: '0px',
175
- usage: 'Large titles'
176
- },
177
- titleMedium: {
178
- fontSize: '16px',
179
- lineHeight: '24px',
180
- fontWeight: 500,
181
- letterSpacing: '0.15px',
182
- usage: 'Medium titles, card headers'
183
- },
184
- titleSmall: {
185
- fontSize: '14px',
186
- lineHeight: '20px',
187
- fontWeight: 500,
188
- letterSpacing: '0.1px',
189
- usage: 'Small titles'
190
- },
191
- bodyLarge: {
192
- fontSize: '16px',
193
- lineHeight: '24px',
194
- fontWeight: 400,
195
- letterSpacing: '0.5px',
196
- usage: 'Large body text'
197
- },
198
- bodyMedium: {
199
- fontSize: '14px',
200
- lineHeight: '20px',
201
- fontWeight: 400,
202
- letterSpacing: '0.25px',
203
- usage: 'Default body text'
204
- },
205
- bodySmall: {
206
- fontSize: '12px',
207
- lineHeight: '16px',
208
- fontWeight: 400,
209
- letterSpacing: '0.4px',
210
- usage: 'Small body text, captions'
211
- },
212
- labelLarge: {
213
- fontSize: '14px',
214
- lineHeight: '20px',
215
- fontWeight: 500,
216
- letterSpacing: '0.1px',
217
- usage: 'Large labels, buttons'
218
- },
219
- labelMedium: {
220
- fontSize: '12px',
221
- lineHeight: '16px',
222
- fontWeight: 500,
223
- letterSpacing: '0.5px',
224
- usage: 'Medium labels'
225
- },
226
- labelSmall: {
227
- fontSize: '11px',
228
- lineHeight: '16px',
229
- fontWeight: 500,
230
- letterSpacing: '0.5px',
231
- usage: 'Small labels'
232
- }
233
- },
234
- guidelines: [
235
- 'Use Google Sans for display and headlines',
236
- 'Use Roboto for body text and UI elements',
237
- 'Maintain consistent type scale across application',
238
- 'Ensure minimum 16px font size for body text',
239
- 'Use font weights: 400 (regular), 500 (medium), 700 (bold)',
240
- 'Apply appropriate letter spacing for readability'
241
- ]
242
- };
243
-
244
-
245
- // ============================================================================
246
- // Layout System - Responsive Grid
247
- // ============================================================================
248
-
249
- const GOOGLE_MODERN_LAYOUT: LayoutSystem = {
250
- grid: {
251
- columns: 12,
252
- gutter: '16px',
253
- margin: '16px',
254
- breakpoints: {
255
- compact: '0-599px',
256
- medium: '600-839px',
257
- expanded: '840-1199px',
258
- large: '1200-1599px',
259
- extraLarge: '1600px+'
260
- }
261
- },
262
- spacing: {
263
- unit: 4,
264
- scale: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96, 128],
265
- guidelines: [
266
- 'Use 4px base unit for all spacing',
267
- 'Apply consistent spacing scale',
268
- 'Use larger spacing for visual hierarchy',
269
- 'Maintain breathing room around interactive elements'
270
- ]
271
- },
272
- containerWidths: {
273
- compact: '100%',
274
- medium: '840px',
275
- expanded: '1200px',
276
- large: '1600px'
277
- },
278
- guidelines: [
279
- 'Use 12-column grid for flexible layouts',
280
- 'Apply responsive breakpoints for different screen sizes',
281
- 'Maintain consistent spacing using 4px base unit',
282
- 'Use container widths for content readability',
283
- 'Apply adaptive layouts for different form factors'
284
- ]
285
- };
286
-
287
- // ============================================================================
288
- // Motion System - Springy, Expressive Animations
289
- // ============================================================================
290
-
291
- const GOOGLE_MODERN_MOTION: MotionSystem = {
292
- durations: {
293
- short1: '50ms',
294
- short2: '100ms',
295
- short3: '150ms',
296
- short4: '200ms',
297
- medium1: '250ms',
298
- medium2: '300ms',
299
- medium3: '350ms',
300
- medium4: '400ms',
301
- long1: '450ms',
302
- long2: '500ms',
303
- long3: '550ms',
304
- long4: '600ms',
305
- extraLong1: '700ms',
306
- extraLong2: '800ms',
307
- extraLong3: '900ms',
308
- extraLong4: '1000ms'
309
- },
310
- easings: {
311
- standard: 'cubic-bezier(0.2, 0.0, 0, 1.0)',
312
- standardAccelerate: 'cubic-bezier(0.3, 0.0, 1, 1)',
313
- standardDecelerate: 'cubic-bezier(0, 0.0, 0, 1)',
314
- emphasized: 'cubic-bezier(0.2, 0.0, 0, 1.0)',
315
- emphasizedAccelerate: 'cubic-bezier(0.3, 0.0, 0.8, 0.15)',
316
- emphasizedDecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1.0)',
317
- legacy: 'cubic-bezier(0.4, 0.0, 0.2, 1)',
318
- legacyAccelerate: 'cubic-bezier(0.4, 0.0, 1, 1)',
319
- legacyDecelerate: 'cubic-bezier(0.0, 0.0, 0.2, 1)'
320
- },
321
- patterns: {
322
- fadeIn: {
323
- duration: '300ms',
324
- easing: 'emphasizedDecelerate',
325
- properties: ['opacity']
326
- },
327
- fadeOut: {
328
- duration: '200ms',
329
- easing: 'emphasizedAccelerate',
330
- properties: ['opacity']
331
- },
332
- scaleUp: {
333
- duration: '300ms',
334
- easing: 'emphasizedDecelerate',
335
- properties: ['transform', 'opacity']
336
- },
337
- scaleDown: {
338
- duration: '200ms',
339
- easing: 'emphasizedAccelerate',
340
- properties: ['transform', 'opacity']
341
- },
342
- slideIn: {
343
- duration: '400ms',
344
- easing: 'emphasizedDecelerate',
345
- properties: ['transform']
346
- },
347
- slideOut: {
348
- duration: '300ms',
349
- easing: 'emphasizedAccelerate',
350
- properties: ['transform']
351
- }
352
- },
353
- guidelines: [
354
- 'Use emphasized easing for important transitions',
355
- 'Apply standard easing for common UI interactions',
356
- 'Keep durations short for micro-interactions (50-200ms)',
357
- 'Use medium durations for component transitions (250-400ms)',
358
- 'Apply long durations for page transitions (450-600ms)',
359
- 'Ensure animations are smooth and natural',
360
- 'Provide reduced motion alternatives for accessibility'
361
- ]
362
- };
363
-
364
- // ============================================================================
365
- // Elevation System - Subtle Shadows
366
- // ============================================================================
367
-
368
- const GOOGLE_MODERN_ELEVATION: ElevationSystem = {
369
- levels: {
370
- level0: {
371
- shadow: 'none',
372
- usage: 'No elevation, flat surface'
373
- },
374
- level1: {
375
- shadow: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)',
376
- usage: 'Minimal elevation, cards at rest'
377
- },
378
- level2: {
379
- shadow: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)',
380
- usage: 'Low elevation, raised cards'
381
- },
382
- level3: {
383
- shadow: '0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)',
384
- usage: 'Medium elevation, dialogs, menus'
385
- },
386
- level4: {
387
- shadow: '0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)',
388
- usage: 'High elevation, navigation drawer'
389
- },
390
- level5: {
391
- shadow: '0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)',
392
- usage: 'Highest elevation, modal dialogs'
393
- }
394
- },
395
- guidelines: [
396
- 'Use elevation to establish visual hierarchy',
397
- 'Apply consistent elevation levels across similar components',
398
- 'Increase elevation for interactive states (hover, focus)',
399
- 'Use level 0-1 for most surfaces',
400
- 'Reserve level 3-5 for overlays and modals',
401
- 'Ensure shadows are subtle and natural'
402
- ]
403
- };
404
-
405
- // ============================================================================
406
- // Component Library - Material 3 Components
407
- // ============================================================================
408
-
409
- const GOOGLE_MODERN_COMPONENTS: ComponentLibrary = {
410
- buttons: {
411
- variants: [
412
- 'filled',
413
- 'outlined',
414
- 'text',
415
- 'elevated',
416
- 'tonal'
417
- ],
418
- states: [
419
- 'enabled',
420
- 'disabled',
421
- 'hovered',
422
- 'focused',
423
- 'pressed'
424
- ],
425
- sizes: [
426
- 'small',
427
- 'medium',
428
- 'large'
429
- ],
430
- examples: [
431
- 'Filled button: Primary actions with solid background',
432
- 'Outlined button: Secondary actions with border',
433
- 'Text button: Low-emphasis actions without background',
434
- 'Elevated button: Raised appearance with shadow',
435
- 'Tonal button: Medium-emphasis with tinted background'
436
- ]
437
- },
438
- inputs: {
439
- variants: [
440
- 'filled',
441
- 'outlined'
442
- ],
443
- states: [
444
- 'enabled',
445
- 'disabled',
446
- 'error',
447
- 'focused',
448
- 'populated'
449
- ],
450
- sizes: [
451
- 'small',
452
- 'medium',
453
- 'large'
454
- ],
455
- examples: [
456
- 'Filled text field: Default input with filled background',
457
- 'Outlined text field: Input with border outline',
458
- 'Text area: Multi-line input field',
459
- 'Select dropdown: Single or multi-select options',
460
- 'Checkbox: Binary selection control',
461
- 'Radio button: Single selection from group',
462
- 'Switch: Toggle between two states'
463
- ]
464
- },
465
- cards: {
466
- variants: [
467
- 'elevated',
468
- 'filled',
469
- 'outlined'
470
- ],
471
- states: [
472
- 'enabled',
473
- 'disabled',
474
- 'hovered',
475
- 'pressed',
476
- 'dragged'
477
- ],
478
- sizes: [
479
- 'compact',
480
- 'medium',
481
- 'expanded'
482
- ],
483
- examples: [
484
- 'Elevated card: Card with shadow elevation',
485
- 'Filled card: Card with tinted background',
486
- 'Outlined card: Card with border outline',
487
- 'Interactive card: Clickable card with hover state',
488
- 'Media card: Card with image or video content'
489
- ]
490
- },
491
- navigation: {
492
- variants: [
493
- 'navigation-bar',
494
- 'navigation-drawer',
495
- 'navigation-rail',
496
- 'top-app-bar',
497
- 'bottom-app-bar',
498
- 'tabs'
499
- ],
500
- states: [
501
- 'active',
502
- 'inactive',
503
- 'selected',
504
- 'hovered',
505
- 'focused'
506
- ],
507
- sizes: [
508
- 'compact',
509
- 'medium',
510
- 'expanded'
511
- ],
512
- examples: [
513
- 'Navigation bar: Bottom navigation for mobile',
514
- 'Navigation drawer: Side navigation panel',
515
- 'Navigation rail: Compact side navigation',
516
- 'Top app bar: Header with title and actions',
517
- 'Bottom app bar: Footer with actions',
518
- 'Tabs: Horizontal navigation between views'
519
- ]
520
- }
521
- };
522
-
523
- // ============================================================================
524
- // Google Modern Style Export
525
- // ============================================================================
526
-
527
- export const GOOGLE_MODERN: VendorStyle = {
528
- vendor: 'google',
529
- name: 'Material 3 Expressive',
530
- version: '3.0',
531
- characteristics: [
532
- 'Dynamic color theming with tonal palettes',
533
- 'Rounded corners (8px-24px radius)',
534
- 'Springy, expressive motion with emphasized easing',
535
- 'High accessibility standards (WCAG 2.1 AA+)',
536
- 'Personalized and adaptive design',
537
- 'Subtle elevation with layered shadows',
538
- 'Google Sans and Roboto typography',
539
- 'Responsive 12-column grid system',
540
- 'Component-based architecture',
541
- 'Support for light and dark themes',
542
- 'Emphasis on user expression and customization'
543
- ],
544
- colorPalette: GOOGLE_MODERN_COLORS,
545
- typography: GOOGLE_MODERN_TYPOGRAPHY,
546
- layout: GOOGLE_MODERN_LAYOUT,
547
- motion: GOOGLE_MODERN_MOTION,
548
- elevation: GOOGLE_MODERN_ELEVATION,
549
- components: GOOGLE_MODERN_COMPONENTS
550
- };
551
-
552
- // ============================================================================
553
- // Usage Guidelines
554
- // ============================================================================
555
-
556
- /**
557
- * USAGE GUIDELINES FOR AI AGENTS
558
- *
559
- * When applying Google Modern (Material 3 Expressive) design:
560
- *
561
- * 1. COLOR THEMING
562
- * - Use dynamic color system with tonal palettes
563
- * - Apply primary color for key actions and branding
564
- * - Use secondary and tertiary for supporting elements
565
- * - Ensure WCAG AA compliance for all color combinations
566
- * - Support both light and dark themes
567
- *
568
- * 2. TYPOGRAPHY
569
- * - Use Google Sans for display and headlines
570
- * - Use Roboto for body text and UI elements
571
- * - Follow type scale for consistent hierarchy
572
- * - Maintain minimum 16px for body text
573
- * - Apply appropriate letter spacing
574
- *
575
- * 3. LAYOUT
576
- * - Use 12-column responsive grid
577
- * - Apply 4px base spacing unit
578
- * - Use breakpoints for responsive design
579
- * - Maintain consistent spacing scale
580
- *
581
- * 4. MOTION
582
- * - Use emphasized easing for important transitions
583
- * - Keep micro-interactions short (50-200ms)
584
- * - Apply medium durations for components (250-400ms)
585
- * - Provide reduced motion alternatives
586
- *
587
- * 5. ELEVATION
588
- * - Use subtle shadows for depth
589
- * - Apply consistent elevation levels
590
- * - Increase elevation for interactive states
591
- * - Reserve high elevation for modals
592
- *
593
- * 6. COMPONENTS
594
- * - Use Material 3 component variants
595
- * - Apply appropriate states (hover, focus, pressed)
596
- * - Maintain consistent sizing
597
- * - Follow accessibility guidelines
598
- *
599
- * 7. ACCESSIBILITY
600
- * - Ensure WCAG 2.1 AA compliance minimum
601
- * - Provide sufficient color contrast
602
- * - Support keyboard navigation
603
- * - Include ARIA labels and roles
604
- * - Provide reduced motion alternatives
605
- * - Ensure touch targets are at least 48x48px
606
- *
607
- * REFERENCES:
608
- * - Material Design 3: https://m3.material.io/
609
- * - Color System: https://m3.material.io/styles/color/overview
610
- * - Typography: https://m3.material.io/styles/typography/overview
611
- * - Motion: https://m3.material.io/styles/motion/overview
612
- * - Components: https://m3.material.io/components
613
- */
614
-
615
-
1
+ /**
2
+ * Google Modern (Material 3 Expressive) Design System
3
+ *
4
+ * Material Design 3 (2021-present) represents Google's evolution toward more
5
+ * expressive, personalized, and accessible design. Key characteristics include
6
+ * dynamic color theming, rounded corners, springy motion, and enhanced accessibility.
7
+ *
8
+ * References:
9
+ * - Material Design 3 Documentation (2025-2026)
10
+ * - https://m3.material.io/
11
+ */
12
+
13
+ import {
14
+ VendorStyle,
15
+ ColorPalette,
16
+ TypographyRules,
17
+ LayoutSystem,
18
+ MotionSystem,
19
+ ElevationSystem,
20
+ ComponentLibrary
21
+ } from '../../types';
22
+
23
+ // ============================================================================
24
+ // Color System - Dynamic Color Theming
25
+ // ============================================================================
26
+
27
+ const GOOGLE_MODERN_COLORS: ColorPalette = {
28
+ primary: {
29
+ name: 'Primary',
30
+ hex: '#6750A4',
31
+ rgb: 'rgb(103, 80, 164)',
32
+ usage: 'Primary brand color, key actions, important UI elements',
33
+ accessibility: 'WCAG AA compliant with white text',
34
+ tones: {
35
+ 0: '#000000',
36
+ 10: '#21005D',
37
+ 20: '#381E72',
38
+ 30: '#4F378B',
39
+ 40: '#6750A4',
40
+ 50: '#7F67BE',
41
+ 60: '#9A82DB',
42
+ 70: '#B69DF8',
43
+ 80: '#D0BCFF',
44
+ 90: '#EADDFF',
45
+ 95: '#F6EDFF',
46
+ 99: '#FFFBFE',
47
+ 100: '#FFFFFF'
48
+ }
49
+ },
50
+ secondary: {
51
+ name: 'Secondary',
52
+ hex: '#625B71',
53
+ rgb: 'rgb(98, 91, 113)',
54
+ usage: 'Secondary actions, less prominent UI elements',
55
+ accessibility: 'WCAG AA compliant',
56
+ tones: {
57
+ 0: '#000000',
58
+ 10: '#1D192B',
59
+ 20: '#332D41',
60
+ 30: '#4A4458',
61
+ 40: '#625B71',
62
+ 50: '#7A7289',
63
+ 60: '#958DA5',
64
+ 70: '#B0A7C0',
65
+ 80: '#CCC2DC',
66
+ 90: '#E8DEF8',
67
+ 95: '#F6EDFF',
68
+ 99: '#FFFBFE',
69
+ 100: '#FFFFFF'
70
+ }
71
+ },
72
+ tertiary: {
73
+ name: 'Tertiary',
74
+ hex: '#7D5260',
75
+ rgb: 'rgb(125, 82, 96)',
76
+ usage: 'Accent color, highlights, contrasting elements',
77
+ accessibility: 'WCAG AA compliant',
78
+ tones: {
79
+ 0: '#000000',
80
+ 10: '#31111D',
81
+ 20: '#492532',
82
+ 30: '#633B48',
83
+ 40: '#7D5260',
84
+ 50: '#986977',
85
+ 60: '#B58392',
86
+ 70: '#D29DAC',
87
+ 80: '#EFB8C8',
88
+ 90: '#FFD8E4',
89
+ 95: '#FFECF1',
90
+ 99: '#FFFBFA',
91
+ 100: '#FFFFFF'
92
+ }
93
+ },
94
+ error: {
95
+ name: 'Error',
96
+ hex: '#B3261E',
97
+ rgb: 'rgb(179, 38, 30)',
98
+ usage: 'Error states, destructive actions, warnings',
99
+ accessibility: 'WCAG AA compliant with white text'
100
+ },
101
+ neutral: {
102
+ name: 'Neutral',
103
+ hex: '#79747E',
104
+ rgb: 'rgb(121, 116, 126)',
105
+ usage: 'Backgrounds, surfaces, outlines',
106
+ accessibility: 'WCAG AA compliant'
107
+ },
108
+ neutralVariant: {
109
+ name: 'Neutral Variant',
110
+ hex: '#79747E',
111
+ rgb: 'rgb(121, 116, 126)',
112
+ usage: 'Medium emphasis backgrounds, subtle outlines',
113
+ accessibility: 'WCAG AA compliant'
114
+ }
115
+ };
116
+
117
+ // ============================================================================
118
+ // Typography - Google Sans & Roboto
119
+ // ============================================================================
120
+
121
+ const GOOGLE_MODERN_TYPOGRAPHY: TypographyRules = {
122
+ fontFamilies: {
123
+ primary: "'Google Sans', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
124
+ secondary: "'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
125
+ monospace: "'Roboto Mono', 'Courier New', monospace"
126
+ },
127
+ typeScale: {
128
+ displayLarge: {
129
+ fontSize: '57px',
130
+ lineHeight: '64px',
131
+ fontWeight: 400,
132
+ letterSpacing: '-0.25px',
133
+ usage: 'Largest display text, hero sections'
134
+ },
135
+ displayMedium: {
136
+ fontSize: '45px',
137
+ lineHeight: '52px',
138
+ fontWeight: 400,
139
+ letterSpacing: '0px',
140
+ usage: 'Large display text'
141
+ },
142
+ displaySmall: {
143
+ fontSize: '36px',
144
+ lineHeight: '44px',
145
+ fontWeight: 400,
146
+ letterSpacing: '0px',
147
+ usage: 'Small display text'
148
+ },
149
+ headlineLarge: {
150
+ fontSize: '32px',
151
+ lineHeight: '40px',
152
+ fontWeight: 400,
153
+ letterSpacing: '0px',
154
+ usage: 'Large headlines'
155
+ },
156
+ headlineMedium: {
157
+ fontSize: '28px',
158
+ lineHeight: '36px',
159
+ fontWeight: 400,
160
+ letterSpacing: '0px',
161
+ usage: 'Medium headlines'
162
+ },
163
+ headlineSmall: {
164
+ fontSize: '24px',
165
+ lineHeight: '32px',
166
+ fontWeight: 400,
167
+ letterSpacing: '0px',
168
+ usage: 'Small headlines'
169
+ },
170
+ titleLarge: {
171
+ fontSize: '22px',
172
+ lineHeight: '28px',
173
+ fontWeight: 400,
174
+ letterSpacing: '0px',
175
+ usage: 'Large titles'
176
+ },
177
+ titleMedium: {
178
+ fontSize: '16px',
179
+ lineHeight: '24px',
180
+ fontWeight: 500,
181
+ letterSpacing: '0.15px',
182
+ usage: 'Medium titles, card headers'
183
+ },
184
+ titleSmall: {
185
+ fontSize: '14px',
186
+ lineHeight: '20px',
187
+ fontWeight: 500,
188
+ letterSpacing: '0.1px',
189
+ usage: 'Small titles'
190
+ },
191
+ bodyLarge: {
192
+ fontSize: '16px',
193
+ lineHeight: '24px',
194
+ fontWeight: 400,
195
+ letterSpacing: '0.5px',
196
+ usage: 'Large body text'
197
+ },
198
+ bodyMedium: {
199
+ fontSize: '14px',
200
+ lineHeight: '20px',
201
+ fontWeight: 400,
202
+ letterSpacing: '0.25px',
203
+ usage: 'Default body text'
204
+ },
205
+ bodySmall: {
206
+ fontSize: '12px',
207
+ lineHeight: '16px',
208
+ fontWeight: 400,
209
+ letterSpacing: '0.4px',
210
+ usage: 'Small body text, captions'
211
+ },
212
+ labelLarge: {
213
+ fontSize: '14px',
214
+ lineHeight: '20px',
215
+ fontWeight: 500,
216
+ letterSpacing: '0.1px',
217
+ usage: 'Large labels, buttons'
218
+ },
219
+ labelMedium: {
220
+ fontSize: '12px',
221
+ lineHeight: '16px',
222
+ fontWeight: 500,
223
+ letterSpacing: '0.5px',
224
+ usage: 'Medium labels'
225
+ },
226
+ labelSmall: {
227
+ fontSize: '11px',
228
+ lineHeight: '16px',
229
+ fontWeight: 500,
230
+ letterSpacing: '0.5px',
231
+ usage: 'Small labels'
232
+ }
233
+ },
234
+ guidelines: [
235
+ 'Use Google Sans for display and headlines',
236
+ 'Use Roboto for body text and UI elements',
237
+ 'Maintain consistent type scale across application',
238
+ 'Ensure minimum 16px font size for body text',
239
+ 'Use font weights: 400 (regular), 500 (medium), 700 (bold)',
240
+ 'Apply appropriate letter spacing for readability'
241
+ ]
242
+ };
243
+
244
+
245
+ // ============================================================================
246
+ // Layout System - Responsive Grid
247
+ // ============================================================================
248
+
249
+ const GOOGLE_MODERN_LAYOUT: LayoutSystem = {
250
+ grid: {
251
+ columns: 12,
252
+ gutter: '16px',
253
+ margin: '16px',
254
+ breakpoints: {
255
+ compact: '0-599px',
256
+ medium: '600-839px',
257
+ expanded: '840-1199px',
258
+ large: '1200-1599px',
259
+ extraLarge: '1600px+'
260
+ }
261
+ },
262
+ spacing: {
263
+ unit: 4,
264
+ scale: [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96, 128],
265
+ guidelines: [
266
+ 'Use 4px base unit for all spacing',
267
+ 'Apply consistent spacing scale',
268
+ 'Use larger spacing for visual hierarchy',
269
+ 'Maintain breathing room around interactive elements'
270
+ ]
271
+ },
272
+ containerWidths: {
273
+ compact: '100%',
274
+ medium: '840px',
275
+ expanded: '1200px',
276
+ large: '1600px'
277
+ },
278
+ guidelines: [
279
+ 'Use 12-column grid for flexible layouts',
280
+ 'Apply responsive breakpoints for different screen sizes',
281
+ 'Maintain consistent spacing using 4px base unit',
282
+ 'Use container widths for content readability',
283
+ 'Apply adaptive layouts for different form factors'
284
+ ]
285
+ };
286
+
287
+ // ============================================================================
288
+ // Motion System - Springy, Expressive Animations
289
+ // ============================================================================
290
+
291
+ const GOOGLE_MODERN_MOTION: MotionSystem = {
292
+ durations: {
293
+ short1: '50ms',
294
+ short2: '100ms',
295
+ short3: '150ms',
296
+ short4: '200ms',
297
+ medium1: '250ms',
298
+ medium2: '300ms',
299
+ medium3: '350ms',
300
+ medium4: '400ms',
301
+ long1: '450ms',
302
+ long2: '500ms',
303
+ long3: '550ms',
304
+ long4: '600ms',
305
+ extraLong1: '700ms',
306
+ extraLong2: '800ms',
307
+ extraLong3: '900ms',
308
+ extraLong4: '1000ms'
309
+ },
310
+ easings: {
311
+ standard: 'cubic-bezier(0.2, 0.0, 0, 1.0)',
312
+ standardAccelerate: 'cubic-bezier(0.3, 0.0, 1, 1)',
313
+ standardDecelerate: 'cubic-bezier(0, 0.0, 0, 1)',
314
+ emphasized: 'cubic-bezier(0.2, 0.0, 0, 1.0)',
315
+ emphasizedAccelerate: 'cubic-bezier(0.3, 0.0, 0.8, 0.15)',
316
+ emphasizedDecelerate: 'cubic-bezier(0.05, 0.7, 0.1, 1.0)',
317
+ legacy: 'cubic-bezier(0.4, 0.0, 0.2, 1)',
318
+ legacyAccelerate: 'cubic-bezier(0.4, 0.0, 1, 1)',
319
+ legacyDecelerate: 'cubic-bezier(0.0, 0.0, 0.2, 1)'
320
+ },
321
+ patterns: {
322
+ fadeIn: {
323
+ duration: '300ms',
324
+ easing: 'emphasizedDecelerate',
325
+ properties: ['opacity']
326
+ },
327
+ fadeOut: {
328
+ duration: '200ms',
329
+ easing: 'emphasizedAccelerate',
330
+ properties: ['opacity']
331
+ },
332
+ scaleUp: {
333
+ duration: '300ms',
334
+ easing: 'emphasizedDecelerate',
335
+ properties: ['transform', 'opacity']
336
+ },
337
+ scaleDown: {
338
+ duration: '200ms',
339
+ easing: 'emphasizedAccelerate',
340
+ properties: ['transform', 'opacity']
341
+ },
342
+ slideIn: {
343
+ duration: '400ms',
344
+ easing: 'emphasizedDecelerate',
345
+ properties: ['transform']
346
+ },
347
+ slideOut: {
348
+ duration: '300ms',
349
+ easing: 'emphasizedAccelerate',
350
+ properties: ['transform']
351
+ }
352
+ },
353
+ guidelines: [
354
+ 'Use emphasized easing for important transitions',
355
+ 'Apply standard easing for common UI interactions',
356
+ 'Keep durations short for micro-interactions (50-200ms)',
357
+ 'Use medium durations for component transitions (250-400ms)',
358
+ 'Apply long durations for page transitions (450-600ms)',
359
+ 'Ensure animations are smooth and natural',
360
+ 'Provide reduced motion alternatives for accessibility'
361
+ ]
362
+ };
363
+
364
+ // ============================================================================
365
+ // Elevation System - Subtle Shadows
366
+ // ============================================================================
367
+
368
+ const GOOGLE_MODERN_ELEVATION: ElevationSystem = {
369
+ levels: {
370
+ level0: {
371
+ shadow: 'none',
372
+ usage: 'No elevation, flat surface'
373
+ },
374
+ level1: {
375
+ shadow: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)',
376
+ usage: 'Minimal elevation, cards at rest'
377
+ },
378
+ level2: {
379
+ shadow: '0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)',
380
+ usage: 'Low elevation, raised cards'
381
+ },
382
+ level3: {
383
+ shadow: '0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)',
384
+ usage: 'Medium elevation, dialogs, menus'
385
+ },
386
+ level4: {
387
+ shadow: '0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)',
388
+ usage: 'High elevation, navigation drawer'
389
+ },
390
+ level5: {
391
+ shadow: '0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)',
392
+ usage: 'Highest elevation, modal dialogs'
393
+ }
394
+ },
395
+ guidelines: [
396
+ 'Use elevation to establish visual hierarchy',
397
+ 'Apply consistent elevation levels across similar components',
398
+ 'Increase elevation for interactive states (hover, focus)',
399
+ 'Use level 0-1 for most surfaces',
400
+ 'Reserve level 3-5 for overlays and modals',
401
+ 'Ensure shadows are subtle and natural'
402
+ ]
403
+ };
404
+
405
+ // ============================================================================
406
+ // Component Library - Material 3 Components
407
+ // ============================================================================
408
+
409
+ const GOOGLE_MODERN_COMPONENTS: ComponentLibrary = {
410
+ buttons: {
411
+ variants: [
412
+ 'filled',
413
+ 'outlined',
414
+ 'text',
415
+ 'elevated',
416
+ 'tonal'
417
+ ],
418
+ states: [
419
+ 'enabled',
420
+ 'disabled',
421
+ 'hovered',
422
+ 'focused',
423
+ 'pressed'
424
+ ],
425
+ sizes: [
426
+ 'small',
427
+ 'medium',
428
+ 'large'
429
+ ],
430
+ examples: [
431
+ 'Filled button: Primary actions with solid background',
432
+ 'Outlined button: Secondary actions with border',
433
+ 'Text button: Low-emphasis actions without background',
434
+ 'Elevated button: Raised appearance with shadow',
435
+ 'Tonal button: Medium-emphasis with tinted background'
436
+ ]
437
+ },
438
+ inputs: {
439
+ variants: [
440
+ 'filled',
441
+ 'outlined'
442
+ ],
443
+ states: [
444
+ 'enabled',
445
+ 'disabled',
446
+ 'error',
447
+ 'focused',
448
+ 'populated'
449
+ ],
450
+ sizes: [
451
+ 'small',
452
+ 'medium',
453
+ 'large'
454
+ ],
455
+ examples: [
456
+ 'Filled text field: Default input with filled background',
457
+ 'Outlined text field: Input with border outline',
458
+ 'Text area: Multi-line input field',
459
+ 'Select dropdown: Single or multi-select options',
460
+ 'Checkbox: Binary selection control',
461
+ 'Radio button: Single selection from group',
462
+ 'Switch: Toggle between two states'
463
+ ]
464
+ },
465
+ cards: {
466
+ variants: [
467
+ 'elevated',
468
+ 'filled',
469
+ 'outlined'
470
+ ],
471
+ states: [
472
+ 'enabled',
473
+ 'disabled',
474
+ 'hovered',
475
+ 'pressed',
476
+ 'dragged'
477
+ ],
478
+ sizes: [
479
+ 'compact',
480
+ 'medium',
481
+ 'expanded'
482
+ ],
483
+ examples: [
484
+ 'Elevated card: Card with shadow elevation',
485
+ 'Filled card: Card with tinted background',
486
+ 'Outlined card: Card with border outline',
487
+ 'Interactive card: Clickable card with hover state',
488
+ 'Media card: Card with image or video content'
489
+ ]
490
+ },
491
+ navigation: {
492
+ variants: [
493
+ 'navigation-bar',
494
+ 'navigation-drawer',
495
+ 'navigation-rail',
496
+ 'top-app-bar',
497
+ 'bottom-app-bar',
498
+ 'tabs'
499
+ ],
500
+ states: [
501
+ 'active',
502
+ 'inactive',
503
+ 'selected',
504
+ 'hovered',
505
+ 'focused'
506
+ ],
507
+ sizes: [
508
+ 'compact',
509
+ 'medium',
510
+ 'expanded'
511
+ ],
512
+ examples: [
513
+ 'Navigation bar: Bottom navigation for mobile',
514
+ 'Navigation drawer: Side navigation panel',
515
+ 'Navigation rail: Compact side navigation',
516
+ 'Top app bar: Header with title and actions',
517
+ 'Bottom app bar: Footer with actions',
518
+ 'Tabs: Horizontal navigation between views'
519
+ ]
520
+ }
521
+ };
522
+
523
+ // ============================================================================
524
+ // Google Modern Style Export
525
+ // ============================================================================
526
+
527
+ export const GOOGLE_MODERN: VendorStyle = {
528
+ vendor: 'google',
529
+ name: 'Material 3 Expressive',
530
+ version: '3.0',
531
+ characteristics: [
532
+ 'Dynamic color theming with tonal palettes',
533
+ 'Rounded corners (8px-24px radius)',
534
+ 'Springy, expressive motion with emphasized easing',
535
+ 'High accessibility standards (WCAG 2.1 AA+)',
536
+ 'Personalized and adaptive design',
537
+ 'Subtle elevation with layered shadows',
538
+ 'Google Sans and Roboto typography',
539
+ 'Responsive 12-column grid system',
540
+ 'Component-based architecture',
541
+ 'Support for light and dark themes',
542
+ 'Emphasis on user expression and customization'
543
+ ],
544
+ colorPalette: GOOGLE_MODERN_COLORS,
545
+ typography: GOOGLE_MODERN_TYPOGRAPHY,
546
+ layout: GOOGLE_MODERN_LAYOUT,
547
+ motion: GOOGLE_MODERN_MOTION,
548
+ elevation: GOOGLE_MODERN_ELEVATION,
549
+ components: GOOGLE_MODERN_COMPONENTS
550
+ };
551
+
552
+ // ============================================================================
553
+ // Usage Guidelines
554
+ // ============================================================================
555
+
556
+ /**
557
+ * USAGE GUIDELINES FOR AI AGENTS
558
+ *
559
+ * When applying Google Modern (Material 3 Expressive) design:
560
+ *
561
+ * 1. COLOR THEMING
562
+ * - Use dynamic color system with tonal palettes
563
+ * - Apply primary color for key actions and branding
564
+ * - Use secondary and tertiary for supporting elements
565
+ * - Ensure WCAG AA compliance for all color combinations
566
+ * - Support both light and dark themes
567
+ *
568
+ * 2. TYPOGRAPHY
569
+ * - Use Google Sans for display and headlines
570
+ * - Use Roboto for body text and UI elements
571
+ * - Follow type scale for consistent hierarchy
572
+ * - Maintain minimum 16px for body text
573
+ * - Apply appropriate letter spacing
574
+ *
575
+ * 3. LAYOUT
576
+ * - Use 12-column responsive grid
577
+ * - Apply 4px base spacing unit
578
+ * - Use breakpoints for responsive design
579
+ * - Maintain consistent spacing scale
580
+ *
581
+ * 4. MOTION
582
+ * - Use emphasized easing for important transitions
583
+ * - Keep micro-interactions short (50-200ms)
584
+ * - Apply medium durations for components (250-400ms)
585
+ * - Provide reduced motion alternatives
586
+ *
587
+ * 5. ELEVATION
588
+ * - Use subtle shadows for depth
589
+ * - Apply consistent elevation levels
590
+ * - Increase elevation for interactive states
591
+ * - Reserve high elevation for modals
592
+ *
593
+ * 6. COMPONENTS
594
+ * - Use Material 3 component variants
595
+ * - Apply appropriate states (hover, focus, pressed)
596
+ * - Maintain consistent sizing
597
+ * - Follow accessibility guidelines
598
+ *
599
+ * 7. ACCESSIBILITY
600
+ * - Ensure WCAG 2.1 AA compliance minimum
601
+ * - Provide sufficient color contrast
602
+ * - Support keyboard navigation
603
+ * - Include ARIA labels and roles
604
+ * - Provide reduced motion alternatives
605
+ * - Ensure touch targets are at least 48x48px
606
+ *
607
+ * REFERENCES:
608
+ * - Material Design 3: https://m3.material.io/
609
+ * - Color System: https://m3.material.io/styles/color/overview
610
+ * - Typography: https://m3.material.io/styles/typography/overview
611
+ * - Motion: https://m3.material.io/styles/motion/overview
612
+ * - Components: https://m3.material.io/components
613
+ */
614
+
615
+