@mytechtoday/augment-extensions 1.2.2 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -22
- package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
- package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
- package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
- package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
- package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
- package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
- package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
- package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
- package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
- package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
- package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
- package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
- package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
- package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
- package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
- package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
- package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
- package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
- package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
- package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
- package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
- package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
- package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
- package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
- package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
- package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
- package/augment-extensions/visual-design/CHANGELOG.md +132 -0
- package/augment-extensions/visual-design/README.md +255 -0
- package/augment-extensions/visual-design/__tests__/README.md +119 -0
- package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -0
- package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -0
- package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -0
- package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -0
- package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -0
- package/augment-extensions/visual-design/domains/other/os-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -0
- package/augment-extensions/visual-design/domains/other/web-app.ts +157 -0
- package/augment-extensions/visual-design/domains/other/website.ts +161 -0
- package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -0
- package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -0
- package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -0
- package/augment-extensions/visual-design/examples/README.md +97 -0
- package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -0
- package/augment-extensions/visual-design/examples/basic-usage.md +216 -0
- package/augment-extensions/visual-design/examples/domain-workflows.md +257 -0
- package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -0
- package/augment-extensions/visual-design/module.json +78 -0
- package/augment-extensions/visual-design/style-selector.ts +177 -0
- package/augment-extensions/visual-design/types.ts +302 -0
- package/augment-extensions/visual-design/visual-design-core.ts +469 -0
- package/augment-extensions/workflows/adr-support/README.md +227 -0
- package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -0
- package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -0
- package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -0
- package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -0
- package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -0
- package/augment-extensions/workflows/adr-support/module.json +112 -0
- package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -0
- package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -0
- package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -0
- package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -0
- package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -0
- package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -0
- package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -0
- package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -0
- package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -0
- package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -0
- package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -0
- package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -0
- package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
- package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
- package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
- package/cli/dist/utils/auto-sync.js +19 -19
- package/package.json +5 -3
- package/augment-extensions/workflows/openspec/README.md +0 -96
- package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
- package/augment-extensions/workflows/openspec/module.json +0 -54
- package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
- package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
- package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
- package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
|
@@ -0,0 +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
|
+
|