@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,469 +1,469 @@
1
- /**
2
- * Visual Design Core Module
3
- *
4
- * Defines the 8 core design elements, 11 design principles, and 5 skill categories
5
- * that form the foundation of visual design knowledge for AI agents.
6
- */
7
-
8
- import {
9
- DesignModule,
10
- DesignElement,
11
- DesignPrinciple,
12
- SkillCategory
13
- } from './types';
14
-
15
- // ============================================================================
16
- // 8 Core Design Elements
17
- // ============================================================================
18
-
19
- export const DESIGN_ELEMENTS: DesignElement[] = [
20
- {
21
- name: 'Color',
22
- description: 'Color palettes, contrast ratios, and accessibility considerations',
23
- properties: {
24
- aspects: [
25
- 'Color theory (primary, secondary, tertiary)',
26
- 'Color harmony (complementary, analogous, triadic)',
27
- 'Contrast ratios (WCAG AA: 4.5:1 for text, AAA: 7:1)',
28
- 'Color psychology and emotional impact',
29
- 'Accessibility (color blindness, high contrast modes)',
30
- 'Brand color consistency'
31
- ],
32
- tools: ['Color contrast checkers', 'Palette generators', 'Accessibility validators']
33
- }
34
- },
35
- {
36
- name: 'Typography',
37
- description: 'Font selection, hierarchy, readability, and text styling',
38
- properties: {
39
- aspects: [
40
- 'Font families (serif, sans-serif, monospace, display)',
41
- 'Type scale and hierarchy (h1-h6, body, caption)',
42
- 'Line height (1.5 for body text, 1.2 for headings)',
43
- 'Letter spacing and kerning',
44
- 'Font weights (100-900)',
45
- 'Responsive typography (fluid type scales)',
46
- 'Web font loading strategies'
47
- ],
48
- tools: ['Google Fonts', 'Adobe Fonts', 'Type scale calculators']
49
- }
50
- },
51
- {
52
- name: 'Layout',
53
- description: 'Grid systems, alignment, spacing, and visual flow',
54
- properties: {
55
- aspects: [
56
- 'Grid systems (12-column, 8-point grid)',
57
- 'Flexbox and CSS Grid',
58
- 'Alignment and distribution',
59
- 'Visual hierarchy and flow',
60
- 'Responsive layouts (mobile-first)',
61
- 'Container widths and breakpoints',
62
- 'Z-index and stacking contexts'
63
- ],
64
- tools: ['CSS Grid', 'Flexbox', 'Layout frameworks']
65
- }
66
- },
67
- {
68
- name: 'Imagery',
69
- description: 'Photos, illustrations, icons, and visual content',
70
- properties: {
71
- aspects: [
72
- 'Image formats (WebP, AVIF, PNG, JPEG, SVG)',
73
- 'Aspect ratios (16:9, 4:3, 1:1, golden ratio)',
74
- 'Image optimization and compression',
75
- 'Responsive images (srcset, picture element)',
76
- 'Lazy loading strategies',
77
- 'Alt text and accessibility',
78
- 'Image composition and cropping'
79
- ],
80
- tools: ['Image optimizers', 'CDNs', 'Responsive image generators']
81
- }
82
- },
83
- {
84
- name: 'Iconography',
85
- description: 'Icon systems, sizes, styles, and consistency',
86
- properties: {
87
- aspects: [
88
- 'Icon styles (outlined, filled, rounded, sharp)',
89
- 'Icon sizes (16px, 24px, 32px, 48px)',
90
- 'SVG vs icon fonts',
91
- 'Icon accessibility (aria-label, role)',
92
- 'Consistent visual language',
93
- 'Icon grid and alignment',
94
- 'Color and state variations'
95
- ],
96
- tools: ['Material Icons', 'Font Awesome', 'Heroicons', 'Lucide']
97
- }
98
- },
99
- {
100
- name: 'Spacing',
101
- description: 'Margins, padding, and rhythm systems',
102
- properties: {
103
- aspects: [
104
- '8-point grid system (multiples of 8px)',
105
- 'Spacing scale (4px, 8px, 16px, 24px, 32px, 48px, 64px)',
106
- 'Vertical rhythm and baseline grid',
107
- 'Component spacing consistency',
108
- 'Responsive spacing (clamp, calc)',
109
- 'Negative space and breathing room',
110
- 'Optical alignment adjustments'
111
- ],
112
- tools: ['Spacing tokens', 'Design systems', 'CSS custom properties']
113
- }
114
- },
115
- {
116
- name: 'Motion',
117
- description: 'Animations, transitions, and micro-interactions',
118
- properties: {
119
- aspects: [
120
- 'Animation durations (100ms instant, 200ms fast, 300ms normal, 500ms slow)',
121
- 'Easing functions (ease-in, ease-out, ease-in-out, spring)',
122
- 'Transition properties (opacity, transform, color)',
123
- 'Micro-interactions (hover, focus, active states)',
124
- 'Loading states and skeletons',
125
- 'Page transitions and route animations',
126
- 'Reduced motion preferences (prefers-reduced-motion)'
127
- ],
128
- tools: ['CSS animations', 'Framer Motion', 'GSAP', 'Lottie']
129
- }
130
- },
131
- {
132
- name: 'Elevation',
133
- description: 'Shadows, depth, and layering systems',
134
- properties: {
135
- aspects: [
136
- 'Shadow levels (0-24 in Material Design)',
137
- 'Box shadows vs drop shadows',
138
- 'Layering and z-index hierarchy',
139
- 'Depth perception and visual weight',
140
- 'Elevation tokens (none, sm, md, lg, xl)',
141
- 'Neumorphism and glassmorphism effects',
142
- 'Dark mode shadow adjustments'
143
- ],
144
- tools: ['Shadow generators', 'Elevation systems', 'CSS filters']
145
- }
146
- }
147
- ];
148
-
149
- // ============================================================================
150
- // 11 Design Principles
151
- // ============================================================================
152
-
153
- export const DESIGN_PRINCIPLES: DesignPrinciple[] = [
154
- {
155
- name: 'Balance',
156
- description: 'Visual equilibrium through symmetrical or asymmetrical distribution of elements',
157
- guidelines: [
158
- 'Symmetrical balance: Mirror elements across a central axis',
159
- 'Asymmetrical balance: Different elements with equal visual weight',
160
- 'Radial balance: Elements radiating from a central point',
161
- 'Use visual weight (size, color, position) to create balance',
162
- 'Balance negative and positive space'
163
- ]
164
- },
165
- {
166
- name: 'Contrast',
167
- description: 'Difference between elements to create visual interest and hierarchy',
168
- guidelines: [
169
- 'Color contrast: Light vs dark, complementary colors',
170
- 'Size contrast: Large vs small elements',
171
- 'Shape contrast: Geometric vs organic forms',
172
- 'Texture contrast: Smooth vs rough surfaces',
173
- 'Ensure sufficient contrast for accessibility (WCAG AA: 4.5:1)',
174
- 'Use contrast to guide attention and create focal points'
175
- ]
176
- },
177
- {
178
- name: 'Hierarchy',
179
- description: 'Organization of elements to show importance and guide user attention',
180
- guidelines: [
181
- 'Size hierarchy: Larger elements appear more important',
182
- 'Color hierarchy: Bright/saturated colors draw attention',
183
- 'Position hierarchy: Top-left to bottom-right reading pattern',
184
- 'Typography hierarchy: h1 > h2 > h3 > body > caption',
185
- 'Use F-pattern or Z-pattern for content layout',
186
- 'Limit hierarchy levels to 3-4 for clarity'
187
- ]
188
- },
189
- {
190
- name: 'Unity',
191
- description: 'Cohesion and consistency across all design elements',
192
- guidelines: [
193
- 'Consistent color palette throughout design',
194
- 'Unified typography system (2-3 font families max)',
195
- 'Repeated visual patterns and motifs',
196
- 'Consistent spacing and alignment',
197
- 'Shared design language across components',
198
- 'Brand consistency in all touchpoints'
199
- ]
200
- },
201
- {
202
- name: 'Emphasis',
203
- description: 'Creating focal points to draw attention to key elements',
204
- guidelines: [
205
- 'Use size, color, or position to create emphasis',
206
- 'Limit focal points to 1-2 per screen/section',
207
- 'Contrast emphasized elements with surroundings',
208
- 'Use whitespace to isolate important elements',
209
- 'Apply visual weight through color saturation or boldness',
210
- 'Guide user journey with strategic emphasis'
211
- ]
212
- },
213
- {
214
- name: 'Rhythm',
215
- description: 'Repetition and pattern to create visual flow and movement',
216
- guidelines: [
217
- 'Regular rhythm: Consistent spacing and repetition',
218
- 'Progressive rhythm: Gradual changes in size or spacing',
219
- 'Flowing rhythm: Organic, curved patterns',
220
- 'Use rhythm to guide eye movement',
221
- 'Create visual interest through varied repetition',
222
- 'Maintain rhythm in grid systems and layouts'
223
- ]
224
- },
225
- {
226
- name: 'Proportion',
227
- description: 'Relationship between element sizes and the overall composition',
228
- guidelines: [
229
- 'Golden ratio (1.618) for harmonious proportions',
230
- 'Rule of thirds for composition',
231
- 'Scale elements relative to their importance',
232
- 'Maintain aspect ratios for images and containers',
233
- 'Use proportional spacing systems (8-point grid)',
234
- 'Consider viewport proportions for responsive design'
235
- ]
236
- },
237
- {
238
- name: 'White Space',
239
- description: 'Negative space that provides breathing room and improves readability',
240
- guidelines: [
241
- 'Micro white space: Between letters, lines, and small elements',
242
- 'Macro white space: Between major sections and components',
243
- 'Use white space to create visual hierarchy',
244
- 'Increase white space for premium/luxury feel',
245
- 'Reduce clutter by embracing emptiness',
246
- 'White space is not wasted space—it enhances comprehension'
247
- ]
248
- },
249
- {
250
- name: 'Consistency',
251
- description: 'Uniformity in design patterns, behaviors, and visual language',
252
- guidelines: [
253
- 'Consistent component styling across the application',
254
- 'Predictable interaction patterns (buttons, links, forms)',
255
- 'Unified color usage (primary for actions, red for errors)',
256
- 'Consistent spacing and alignment rules',
257
- 'Standardized iconography and imagery style',
258
- 'Follow platform conventions (iOS, Android, Web)'
259
- ]
260
- },
261
- {
262
- name: 'Accessibility',
263
- description: 'Designing for all users, including those with disabilities',
264
- guidelines: [
265
- 'WCAG 2.1 Level AA compliance minimum',
266
- 'Color contrast ratios: 4.5:1 for text, 3:1 for UI components',
267
- 'Keyboard navigation support (tab order, focus states)',
268
- 'Screen reader compatibility (semantic HTML, ARIA labels)',
269
- 'Responsive text sizing (rem units, no fixed px)',
270
- 'Support for reduced motion preferences',
271
- 'Touch targets minimum 44x44px (iOS) or 48x48px (Android)'
272
- ]
273
- },
274
- {
275
- name: 'Responsiveness',
276
- description: 'Adapting design to different screen sizes and devices',
277
- guidelines: [
278
- 'Mobile-first approach (design for smallest screen first)',
279
- 'Breakpoints: 320px (mobile), 768px (tablet), 1024px (desktop), 1440px (large)',
280
- 'Fluid typography (clamp, vw units)',
281
- 'Flexible layouts (CSS Grid, Flexbox)',
282
- 'Responsive images (srcset, picture element)',
283
- 'Touch-friendly interactions on mobile',
284
- 'Test on real devices, not just browser DevTools'
285
- ]
286
- }
287
- ];
288
-
289
- // ============================================================================
290
- // 5 Skill Categories
291
- // ============================================================================
292
-
293
- export const SKILL_CATEGORIES: SkillCategory[] = [
294
- {
295
- name: 'Visual Design Fundamentals',
296
- description: 'Core visual design skills and principles',
297
- skills: [
298
- 'Color theory and application',
299
- 'Typography and type hierarchy',
300
- 'Layout and composition',
301
- 'Grid systems and alignment',
302
- 'Visual hierarchy creation',
303
- 'Balance and proportion',
304
- 'Contrast and emphasis',
305
- 'White space utilization',
306
- 'Design system creation',
307
- 'Style guide development'
308
- ]
309
- },
310
- {
311
- name: 'User Interface (UI) Design',
312
- description: 'Designing interactive digital interfaces',
313
- skills: [
314
- 'Component design (buttons, inputs, cards)',
315
- 'Navigation patterns (menus, tabs, breadcrumbs)',
316
- 'Form design and validation states',
317
- 'Modal and dialog design',
318
- 'Responsive design patterns',
319
- 'Mobile-first design',
320
- 'Touch target sizing',
321
- 'Icon design and selection',
322
- 'Micro-interactions and animations',
323
- 'Loading states and feedback'
324
- ]
325
- },
326
- {
327
- name: 'User Experience (UX) Design',
328
- description: 'Creating intuitive and delightful user experiences',
329
- skills: [
330
- 'User research and personas',
331
- 'Information architecture',
332
- 'User flows and journey mapping',
333
- 'Wireframing and prototyping',
334
- 'Usability testing',
335
- 'Accessibility design (WCAG compliance)',
336
- 'Interaction design patterns',
337
- 'Content strategy',
338
- 'Error prevention and recovery',
339
- 'Performance perception optimization'
340
- ]
341
- },
342
- {
343
- name: 'Technical Implementation',
344
- description: 'Translating designs into code and technical specifications',
345
- skills: [
346
- 'HTML semantic structure',
347
- 'CSS (Flexbox, Grid, custom properties)',
348
- 'Responsive CSS (media queries, container queries)',
349
- 'CSS animations and transitions',
350
- 'Design tokens and theming',
351
- 'Component-based architecture',
352
- 'Accessibility implementation (ARIA, semantic HTML)',
353
- 'Performance optimization (lazy loading, code splitting)',
354
- 'Browser compatibility',
355
- 'Design handoff and documentation'
356
- ]
357
- },
358
- {
359
- name: 'Design Tools & Workflow',
360
- description: 'Proficiency with design tools and collaborative workflows',
361
- skills: [
362
- 'Figma (components, auto-layout, variants)',
363
- 'Adobe XD / Sketch',
364
- 'Prototyping tools (Framer, ProtoPie)',
365
- 'Version control for design (Git, Abstract)',
366
- 'Design system management',
367
- 'Collaboration and feedback tools',
368
- 'Asset export and optimization',
369
- 'Design QA and review processes',
370
- 'Handoff to development (Zeplin, Figma Dev Mode)',
371
- 'Documentation and style guides'
372
- ]
373
- }
374
- ];
375
-
376
- // ============================================================================
377
- // Core Module Export
378
- // ============================================================================
379
-
380
- export const VISUAL_DESIGN_CORE: DesignModule = {
381
- name: 'visual-design-core',
382
- version: '1.0.0',
383
- description: 'Core visual design knowledge: 8 elements, 11 principles, 5 skill categories',
384
- elements: DESIGN_ELEMENTS,
385
- principles: DESIGN_PRINCIPLES,
386
- skills: SKILL_CATEGORIES,
387
- vendorPriority: ['google', 'microsoft', 'amazon']
388
- };
389
-
390
- // ============================================================================
391
- // Helper Functions
392
- // ============================================================================
393
-
394
- /**
395
- * Get a design element by name
396
- */
397
- export function getElement(name: string): DesignElement | undefined {
398
- return DESIGN_ELEMENTS.find(
399
- element => element.name.toLowerCase() === name.toLowerCase()
400
- );
401
- }
402
-
403
- /**
404
- * Get a design principle by name
405
- */
406
- export function getPrinciple(name: string): DesignPrinciple | undefined {
407
- return DESIGN_PRINCIPLES.find(
408
- principle => principle.name.toLowerCase() === name.toLowerCase()
409
- );
410
- }
411
-
412
- /**
413
- * Get a skill category by name
414
- */
415
- export function getSkillCategory(name: string): SkillCategory | undefined {
416
- return SKILL_CATEGORIES.find(
417
- category => category.name.toLowerCase() === name.toLowerCase()
418
- );
419
- }
420
-
421
- /**
422
- * Get all elements, principles, and skills as a summary
423
- */
424
- export function getCoreSummary(): {
425
- elements: string[];
426
- principles: string[];
427
- skillCategories: string[];
428
- } {
429
- return {
430
- elements: DESIGN_ELEMENTS.map(e => e.name),
431
- principles: DESIGN_PRINCIPLES.map(p => p.name),
432
- skillCategories: SKILL_CATEGORIES.map(s => s.name)
433
- };
434
- }
435
-
436
- /**
437
- * Validate if a design follows core principles
438
- */
439
- export function validateDesign(design: {
440
- hasColorContrast: boolean;
441
- hasTypographyHierarchy: boolean;
442
- hasConsistentSpacing: boolean;
443
- isAccessible: boolean;
444
- isResponsive: boolean;
445
- }): { valid: boolean; issues: string[] } {
446
- const issues: string[] = [];
447
-
448
- if (!design.hasColorContrast) {
449
- issues.push('Insufficient color contrast (violates Contrast principle)');
450
- }
451
- if (!design.hasTypographyHierarchy) {
452
- issues.push('Missing typography hierarchy (violates Hierarchy principle)');
453
- }
454
- if (!design.hasConsistentSpacing) {
455
- issues.push('Inconsistent spacing (violates Consistency principle)');
456
- }
457
- if (!design.isAccessible) {
458
- issues.push('Accessibility issues (violates Accessibility principle)');
459
- }
460
- if (!design.isResponsive) {
461
- issues.push('Not responsive (violates Responsiveness principle)');
462
- }
463
-
464
- return {
465
- valid: issues.length === 0,
466
- issues
467
- };
468
- }
469
-
1
+ /**
2
+ * Visual Design Core Module
3
+ *
4
+ * Defines the 8 core design elements, 11 design principles, and 5 skill categories
5
+ * that form the foundation of visual design knowledge for AI agents.
6
+ */
7
+
8
+ import {
9
+ DesignModule,
10
+ DesignElement,
11
+ DesignPrinciple,
12
+ SkillCategory
13
+ } from './types';
14
+
15
+ // ============================================================================
16
+ // 8 Core Design Elements
17
+ // ============================================================================
18
+
19
+ export const DESIGN_ELEMENTS: DesignElement[] = [
20
+ {
21
+ name: 'Color',
22
+ description: 'Color palettes, contrast ratios, and accessibility considerations',
23
+ properties: {
24
+ aspects: [
25
+ 'Color theory (primary, secondary, tertiary)',
26
+ 'Color harmony (complementary, analogous, triadic)',
27
+ 'Contrast ratios (WCAG AA: 4.5:1 for text, AAA: 7:1)',
28
+ 'Color psychology and emotional impact',
29
+ 'Accessibility (color blindness, high contrast modes)',
30
+ 'Brand color consistency'
31
+ ],
32
+ tools: ['Color contrast checkers', 'Palette generators', 'Accessibility validators']
33
+ }
34
+ },
35
+ {
36
+ name: 'Typography',
37
+ description: 'Font selection, hierarchy, readability, and text styling',
38
+ properties: {
39
+ aspects: [
40
+ 'Font families (serif, sans-serif, monospace, display)',
41
+ 'Type scale and hierarchy (h1-h6, body, caption)',
42
+ 'Line height (1.5 for body text, 1.2 for headings)',
43
+ 'Letter spacing and kerning',
44
+ 'Font weights (100-900)',
45
+ 'Responsive typography (fluid type scales)',
46
+ 'Web font loading strategies'
47
+ ],
48
+ tools: ['Google Fonts', 'Adobe Fonts', 'Type scale calculators']
49
+ }
50
+ },
51
+ {
52
+ name: 'Layout',
53
+ description: 'Grid systems, alignment, spacing, and visual flow',
54
+ properties: {
55
+ aspects: [
56
+ 'Grid systems (12-column, 8-point grid)',
57
+ 'Flexbox and CSS Grid',
58
+ 'Alignment and distribution',
59
+ 'Visual hierarchy and flow',
60
+ 'Responsive layouts (mobile-first)',
61
+ 'Container widths and breakpoints',
62
+ 'Z-index and stacking contexts'
63
+ ],
64
+ tools: ['CSS Grid', 'Flexbox', 'Layout frameworks']
65
+ }
66
+ },
67
+ {
68
+ name: 'Imagery',
69
+ description: 'Photos, illustrations, icons, and visual content',
70
+ properties: {
71
+ aspects: [
72
+ 'Image formats (WebP, AVIF, PNG, JPEG, SVG)',
73
+ 'Aspect ratios (16:9, 4:3, 1:1, golden ratio)',
74
+ 'Image optimization and compression',
75
+ 'Responsive images (srcset, picture element)',
76
+ 'Lazy loading strategies',
77
+ 'Alt text and accessibility',
78
+ 'Image composition and cropping'
79
+ ],
80
+ tools: ['Image optimizers', 'CDNs', 'Responsive image generators']
81
+ }
82
+ },
83
+ {
84
+ name: 'Iconography',
85
+ description: 'Icon systems, sizes, styles, and consistency',
86
+ properties: {
87
+ aspects: [
88
+ 'Icon styles (outlined, filled, rounded, sharp)',
89
+ 'Icon sizes (16px, 24px, 32px, 48px)',
90
+ 'SVG vs icon fonts',
91
+ 'Icon accessibility (aria-label, role)',
92
+ 'Consistent visual language',
93
+ 'Icon grid and alignment',
94
+ 'Color and state variations'
95
+ ],
96
+ tools: ['Material Icons', 'Font Awesome', 'Heroicons', 'Lucide']
97
+ }
98
+ },
99
+ {
100
+ name: 'Spacing',
101
+ description: 'Margins, padding, and rhythm systems',
102
+ properties: {
103
+ aspects: [
104
+ '8-point grid system (multiples of 8px)',
105
+ 'Spacing scale (4px, 8px, 16px, 24px, 32px, 48px, 64px)',
106
+ 'Vertical rhythm and baseline grid',
107
+ 'Component spacing consistency',
108
+ 'Responsive spacing (clamp, calc)',
109
+ 'Negative space and breathing room',
110
+ 'Optical alignment adjustments'
111
+ ],
112
+ tools: ['Spacing tokens', 'Design systems', 'CSS custom properties']
113
+ }
114
+ },
115
+ {
116
+ name: 'Motion',
117
+ description: 'Animations, transitions, and micro-interactions',
118
+ properties: {
119
+ aspects: [
120
+ 'Animation durations (100ms instant, 200ms fast, 300ms normal, 500ms slow)',
121
+ 'Easing functions (ease-in, ease-out, ease-in-out, spring)',
122
+ 'Transition properties (opacity, transform, color)',
123
+ 'Micro-interactions (hover, focus, active states)',
124
+ 'Loading states and skeletons',
125
+ 'Page transitions and route animations',
126
+ 'Reduced motion preferences (prefers-reduced-motion)'
127
+ ],
128
+ tools: ['CSS animations', 'Framer Motion', 'GSAP', 'Lottie']
129
+ }
130
+ },
131
+ {
132
+ name: 'Elevation',
133
+ description: 'Shadows, depth, and layering systems',
134
+ properties: {
135
+ aspects: [
136
+ 'Shadow levels (0-24 in Material Design)',
137
+ 'Box shadows vs drop shadows',
138
+ 'Layering and z-index hierarchy',
139
+ 'Depth perception and visual weight',
140
+ 'Elevation tokens (none, sm, md, lg, xl)',
141
+ 'Neumorphism and glassmorphism effects',
142
+ 'Dark mode shadow adjustments'
143
+ ],
144
+ tools: ['Shadow generators', 'Elevation systems', 'CSS filters']
145
+ }
146
+ }
147
+ ];
148
+
149
+ // ============================================================================
150
+ // 11 Design Principles
151
+ // ============================================================================
152
+
153
+ export const DESIGN_PRINCIPLES: DesignPrinciple[] = [
154
+ {
155
+ name: 'Balance',
156
+ description: 'Visual equilibrium through symmetrical or asymmetrical distribution of elements',
157
+ guidelines: [
158
+ 'Symmetrical balance: Mirror elements across a central axis',
159
+ 'Asymmetrical balance: Different elements with equal visual weight',
160
+ 'Radial balance: Elements radiating from a central point',
161
+ 'Use visual weight (size, color, position) to create balance',
162
+ 'Balance negative and positive space'
163
+ ]
164
+ },
165
+ {
166
+ name: 'Contrast',
167
+ description: 'Difference between elements to create visual interest and hierarchy',
168
+ guidelines: [
169
+ 'Color contrast: Light vs dark, complementary colors',
170
+ 'Size contrast: Large vs small elements',
171
+ 'Shape contrast: Geometric vs organic forms',
172
+ 'Texture contrast: Smooth vs rough surfaces',
173
+ 'Ensure sufficient contrast for accessibility (WCAG AA: 4.5:1)',
174
+ 'Use contrast to guide attention and create focal points'
175
+ ]
176
+ },
177
+ {
178
+ name: 'Hierarchy',
179
+ description: 'Organization of elements to show importance and guide user attention',
180
+ guidelines: [
181
+ 'Size hierarchy: Larger elements appear more important',
182
+ 'Color hierarchy: Bright/saturated colors draw attention',
183
+ 'Position hierarchy: Top-left to bottom-right reading pattern',
184
+ 'Typography hierarchy: h1 > h2 > h3 > body > caption',
185
+ 'Use F-pattern or Z-pattern for content layout',
186
+ 'Limit hierarchy levels to 3-4 for clarity'
187
+ ]
188
+ },
189
+ {
190
+ name: 'Unity',
191
+ description: 'Cohesion and consistency across all design elements',
192
+ guidelines: [
193
+ 'Consistent color palette throughout design',
194
+ 'Unified typography system (2-3 font families max)',
195
+ 'Repeated visual patterns and motifs',
196
+ 'Consistent spacing and alignment',
197
+ 'Shared design language across components',
198
+ 'Brand consistency in all touchpoints'
199
+ ]
200
+ },
201
+ {
202
+ name: 'Emphasis',
203
+ description: 'Creating focal points to draw attention to key elements',
204
+ guidelines: [
205
+ 'Use size, color, or position to create emphasis',
206
+ 'Limit focal points to 1-2 per screen/section',
207
+ 'Contrast emphasized elements with surroundings',
208
+ 'Use whitespace to isolate important elements',
209
+ 'Apply visual weight through color saturation or boldness',
210
+ 'Guide user journey with strategic emphasis'
211
+ ]
212
+ },
213
+ {
214
+ name: 'Rhythm',
215
+ description: 'Repetition and pattern to create visual flow and movement',
216
+ guidelines: [
217
+ 'Regular rhythm: Consistent spacing and repetition',
218
+ 'Progressive rhythm: Gradual changes in size or spacing',
219
+ 'Flowing rhythm: Organic, curved patterns',
220
+ 'Use rhythm to guide eye movement',
221
+ 'Create visual interest through varied repetition',
222
+ 'Maintain rhythm in grid systems and layouts'
223
+ ]
224
+ },
225
+ {
226
+ name: 'Proportion',
227
+ description: 'Relationship between element sizes and the overall composition',
228
+ guidelines: [
229
+ 'Golden ratio (1.618) for harmonious proportions',
230
+ 'Rule of thirds for composition',
231
+ 'Scale elements relative to their importance',
232
+ 'Maintain aspect ratios for images and containers',
233
+ 'Use proportional spacing systems (8-point grid)',
234
+ 'Consider viewport proportions for responsive design'
235
+ ]
236
+ },
237
+ {
238
+ name: 'White Space',
239
+ description: 'Negative space that provides breathing room and improves readability',
240
+ guidelines: [
241
+ 'Micro white space: Between letters, lines, and small elements',
242
+ 'Macro white space: Between major sections and components',
243
+ 'Use white space to create visual hierarchy',
244
+ 'Increase white space for premium/luxury feel',
245
+ 'Reduce clutter by embracing emptiness',
246
+ 'White space is not wasted space—it enhances comprehension'
247
+ ]
248
+ },
249
+ {
250
+ name: 'Consistency',
251
+ description: 'Uniformity in design patterns, behaviors, and visual language',
252
+ guidelines: [
253
+ 'Consistent component styling across the application',
254
+ 'Predictable interaction patterns (buttons, links, forms)',
255
+ 'Unified color usage (primary for actions, red for errors)',
256
+ 'Consistent spacing and alignment rules',
257
+ 'Standardized iconography and imagery style',
258
+ 'Follow platform conventions (iOS, Android, Web)'
259
+ ]
260
+ },
261
+ {
262
+ name: 'Accessibility',
263
+ description: 'Designing for all users, including those with disabilities',
264
+ guidelines: [
265
+ 'WCAG 2.1 Level AA compliance minimum',
266
+ 'Color contrast ratios: 4.5:1 for text, 3:1 for UI components',
267
+ 'Keyboard navigation support (tab order, focus states)',
268
+ 'Screen reader compatibility (semantic HTML, ARIA labels)',
269
+ 'Responsive text sizing (rem units, no fixed px)',
270
+ 'Support for reduced motion preferences',
271
+ 'Touch targets minimum 44x44px (iOS) or 48x48px (Android)'
272
+ ]
273
+ },
274
+ {
275
+ name: 'Responsiveness',
276
+ description: 'Adapting design to different screen sizes and devices',
277
+ guidelines: [
278
+ 'Mobile-first approach (design for smallest screen first)',
279
+ 'Breakpoints: 320px (mobile), 768px (tablet), 1024px (desktop), 1440px (large)',
280
+ 'Fluid typography (clamp, vw units)',
281
+ 'Flexible layouts (CSS Grid, Flexbox)',
282
+ 'Responsive images (srcset, picture element)',
283
+ 'Touch-friendly interactions on mobile',
284
+ 'Test on real devices, not just browser DevTools'
285
+ ]
286
+ }
287
+ ];
288
+
289
+ // ============================================================================
290
+ // 5 Skill Categories
291
+ // ============================================================================
292
+
293
+ export const SKILL_CATEGORIES: SkillCategory[] = [
294
+ {
295
+ name: 'Visual Design Fundamentals',
296
+ description: 'Core visual design skills and principles',
297
+ skills: [
298
+ 'Color theory and application',
299
+ 'Typography and type hierarchy',
300
+ 'Layout and composition',
301
+ 'Grid systems and alignment',
302
+ 'Visual hierarchy creation',
303
+ 'Balance and proportion',
304
+ 'Contrast and emphasis',
305
+ 'White space utilization',
306
+ 'Design system creation',
307
+ 'Style guide development'
308
+ ]
309
+ },
310
+ {
311
+ name: 'User Interface (UI) Design',
312
+ description: 'Designing interactive digital interfaces',
313
+ skills: [
314
+ 'Component design (buttons, inputs, cards)',
315
+ 'Navigation patterns (menus, tabs, breadcrumbs)',
316
+ 'Form design and validation states',
317
+ 'Modal and dialog design',
318
+ 'Responsive design patterns',
319
+ 'Mobile-first design',
320
+ 'Touch target sizing',
321
+ 'Icon design and selection',
322
+ 'Micro-interactions and animations',
323
+ 'Loading states and feedback'
324
+ ]
325
+ },
326
+ {
327
+ name: 'User Experience (UX) Design',
328
+ description: 'Creating intuitive and delightful user experiences',
329
+ skills: [
330
+ 'User research and personas',
331
+ 'Information architecture',
332
+ 'User flows and journey mapping',
333
+ 'Wireframing and prototyping',
334
+ 'Usability testing',
335
+ 'Accessibility design (WCAG compliance)',
336
+ 'Interaction design patterns',
337
+ 'Content strategy',
338
+ 'Error prevention and recovery',
339
+ 'Performance perception optimization'
340
+ ]
341
+ },
342
+ {
343
+ name: 'Technical Implementation',
344
+ description: 'Translating designs into code and technical specifications',
345
+ skills: [
346
+ 'HTML semantic structure',
347
+ 'CSS (Flexbox, Grid, custom properties)',
348
+ 'Responsive CSS (media queries, container queries)',
349
+ 'CSS animations and transitions',
350
+ 'Design tokens and theming',
351
+ 'Component-based architecture',
352
+ 'Accessibility implementation (ARIA, semantic HTML)',
353
+ 'Performance optimization (lazy loading, code splitting)',
354
+ 'Browser compatibility',
355
+ 'Design handoff and documentation'
356
+ ]
357
+ },
358
+ {
359
+ name: 'Design Tools & Workflow',
360
+ description: 'Proficiency with design tools and collaborative workflows',
361
+ skills: [
362
+ 'Figma (components, auto-layout, variants)',
363
+ 'Adobe XD / Sketch',
364
+ 'Prototyping tools (Framer, ProtoPie)',
365
+ 'Version control for design (Git, Abstract)',
366
+ 'Design system management',
367
+ 'Collaboration and feedback tools',
368
+ 'Asset export and optimization',
369
+ 'Design QA and review processes',
370
+ 'Handoff to development (Zeplin, Figma Dev Mode)',
371
+ 'Documentation and style guides'
372
+ ]
373
+ }
374
+ ];
375
+
376
+ // ============================================================================
377
+ // Core Module Export
378
+ // ============================================================================
379
+
380
+ export const VISUAL_DESIGN_CORE: DesignModule = {
381
+ name: 'visual-design-core',
382
+ version: '1.0.0',
383
+ description: 'Core visual design knowledge: 8 elements, 11 principles, 5 skill categories',
384
+ elements: DESIGN_ELEMENTS,
385
+ principles: DESIGN_PRINCIPLES,
386
+ skills: SKILL_CATEGORIES,
387
+ vendorPriority: ['google', 'microsoft', 'amazon']
388
+ };
389
+
390
+ // ============================================================================
391
+ // Helper Functions
392
+ // ============================================================================
393
+
394
+ /**
395
+ * Get a design element by name
396
+ */
397
+ export function getElement(name: string): DesignElement | undefined {
398
+ return DESIGN_ELEMENTS.find(
399
+ element => element.name.toLowerCase() === name.toLowerCase()
400
+ );
401
+ }
402
+
403
+ /**
404
+ * Get a design principle by name
405
+ */
406
+ export function getPrinciple(name: string): DesignPrinciple | undefined {
407
+ return DESIGN_PRINCIPLES.find(
408
+ principle => principle.name.toLowerCase() === name.toLowerCase()
409
+ );
410
+ }
411
+
412
+ /**
413
+ * Get a skill category by name
414
+ */
415
+ export function getSkillCategory(name: string): SkillCategory | undefined {
416
+ return SKILL_CATEGORIES.find(
417
+ category => category.name.toLowerCase() === name.toLowerCase()
418
+ );
419
+ }
420
+
421
+ /**
422
+ * Get all elements, principles, and skills as a summary
423
+ */
424
+ export function getCoreSummary(): {
425
+ elements: string[];
426
+ principles: string[];
427
+ skillCategories: string[];
428
+ } {
429
+ return {
430
+ elements: DESIGN_ELEMENTS.map(e => e.name),
431
+ principles: DESIGN_PRINCIPLES.map(p => p.name),
432
+ skillCategories: SKILL_CATEGORIES.map(s => s.name)
433
+ };
434
+ }
435
+
436
+ /**
437
+ * Validate if a design follows core principles
438
+ */
439
+ export function validateDesign(design: {
440
+ hasColorContrast: boolean;
441
+ hasTypographyHierarchy: boolean;
442
+ hasConsistentSpacing: boolean;
443
+ isAccessible: boolean;
444
+ isResponsive: boolean;
445
+ }): { valid: boolean; issues: string[] } {
446
+ const issues: string[] = [];
447
+
448
+ if (!design.hasColorContrast) {
449
+ issues.push('Insufficient color contrast (violates Contrast principle)');
450
+ }
451
+ if (!design.hasTypographyHierarchy) {
452
+ issues.push('Missing typography hierarchy (violates Hierarchy principle)');
453
+ }
454
+ if (!design.hasConsistentSpacing) {
455
+ issues.push('Inconsistent spacing (violates Consistency principle)');
456
+ }
457
+ if (!design.isAccessible) {
458
+ issues.push('Accessibility issues (violates Accessibility principle)');
459
+ }
460
+ if (!design.isResponsive) {
461
+ issues.push('Not responsive (violates Responsiveness principle)');
462
+ }
463
+
464
+ return {
465
+ valid: issues.length === 0,
466
+ issues
467
+ };
468
+ }
469
+