muno-claude-plugin 1.7.0 → 1.8.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.
- package/README.md +99 -0
- package/bin/cli.js +4 -1
- package/package.json +6 -3
- package/templates/commands/app-designer.md +9 -0
- package/templates/personas/app-designer.md +182 -0
- package/templates/skills/app-design/SKILL.md +640 -0
- package/templates/skills/app-design/reference/component-examples.md +953 -0
- package/templates/skills/app-design/reference/design-system-template.md +628 -0
- package/templates/skills/app-design/reference/design-tokens.json +231 -0
- package/templates/skills/swagger-docs-generator/SKILL.md +699 -0
- package/templates/skills/swagger-docs-generator/reference/api-docs-template.md +666 -0
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
# 디자인 시스템 템플릿
|
|
2
|
+
|
|
3
|
+
이 템플릿은 앱의 디자인 시스템을 정의할 때 사용합니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Foundation (기초)
|
|
8
|
+
|
|
9
|
+
### Color Palette
|
|
10
|
+
|
|
11
|
+
#### Primary Colors
|
|
12
|
+
```
|
|
13
|
+
Primary:
|
|
14
|
+
- 50: #E3F2FD
|
|
15
|
+
- 100: #BBDEFB
|
|
16
|
+
- 500: #2196F3 (Main)
|
|
17
|
+
- 700: #1976D2
|
|
18
|
+
- 900: #0D47A1
|
|
19
|
+
|
|
20
|
+
Secondary:
|
|
21
|
+
- 50: #F3E5F5
|
|
22
|
+
- 500: #9C27B0 (Main)
|
|
23
|
+
- 900: #4A148C
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
#### Neutral Colors
|
|
27
|
+
```
|
|
28
|
+
Gray:
|
|
29
|
+
- 50: #FAFAFA
|
|
30
|
+
- 100: #F5F5F5
|
|
31
|
+
- 200: #EEEEEE
|
|
32
|
+
- 300: #E0E0E0
|
|
33
|
+
- 400: #BDBDBD
|
|
34
|
+
- 500: #9E9E9E
|
|
35
|
+
- 600: #757575
|
|
36
|
+
- 700: #616161
|
|
37
|
+
- 800: #424242
|
|
38
|
+
- 900: #212121
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### Semantic Colors
|
|
42
|
+
```
|
|
43
|
+
Success: #4CAF50
|
|
44
|
+
Warning: #FF9800
|
|
45
|
+
Error: #F44336
|
|
46
|
+
Info: #2196F3
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Typography
|
|
50
|
+
|
|
51
|
+
#### Font Family
|
|
52
|
+
```
|
|
53
|
+
Primary: -apple-system, SF Pro, Roboto, sans-serif
|
|
54
|
+
Monospace: SF Mono, Consolas, monospace
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Font Scale
|
|
58
|
+
```
|
|
59
|
+
Display Large: 57px / 64px / Regular
|
|
60
|
+
Display Medium: 45px / 52px / Regular
|
|
61
|
+
Display Small: 36px / 44px / Regular
|
|
62
|
+
|
|
63
|
+
Headline Large: 32px / 40px / Bold
|
|
64
|
+
Headline Medium: 28px / 36px / Bold
|
|
65
|
+
Headline Small: 24px / 32px / Bold
|
|
66
|
+
|
|
67
|
+
Title Large: 22px / 28px / Medium
|
|
68
|
+
Title Medium: 16px / 24px / Medium
|
|
69
|
+
Title Small: 14px / 20px / Medium
|
|
70
|
+
|
|
71
|
+
Body Large: 16px / 24px / Regular
|
|
72
|
+
Body Medium: 14px / 20px / Regular
|
|
73
|
+
Body Small: 12px / 16px / Regular
|
|
74
|
+
|
|
75
|
+
Label Large: 14px / 20px / Medium
|
|
76
|
+
Label Medium: 12px / 16px / Medium
|
|
77
|
+
Label Small: 11px / 16px / Medium
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Spacing Scale (8pt Grid)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
0: 0px
|
|
84
|
+
1: 4px
|
|
85
|
+
2: 8px
|
|
86
|
+
3: 12px
|
|
87
|
+
4: 16px
|
|
88
|
+
5: 20px
|
|
89
|
+
6: 24px
|
|
90
|
+
8: 32px
|
|
91
|
+
10: 40px
|
|
92
|
+
12: 48px
|
|
93
|
+
16: 64px
|
|
94
|
+
20: 80px
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Border Radius
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
None: 0px
|
|
101
|
+
XS: 4px
|
|
102
|
+
SM: 8px
|
|
103
|
+
MD: 12px
|
|
104
|
+
LG: 16px
|
|
105
|
+
XL: 24px
|
|
106
|
+
XXL: 32px
|
|
107
|
+
Full: 9999px
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Shadows
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
Elevation 1:
|
|
114
|
+
iOS: 0 1px 2px rgba(0, 0, 0, 0.06)
|
|
115
|
+
Android: 0 1px 3px rgba(0, 0, 0, 0.12)
|
|
116
|
+
|
|
117
|
+
Elevation 2:
|
|
118
|
+
iOS: 0 2px 8px rgba(0, 0, 0, 0.08)
|
|
119
|
+
Android: 0 3px 6px rgba(0, 0, 0, 0.16)
|
|
120
|
+
|
|
121
|
+
Elevation 3:
|
|
122
|
+
iOS: 0 4px 16px rgba(0, 0, 0, 0.12)
|
|
123
|
+
Android: 0 10px 20px rgba(0, 0, 0, 0.19)
|
|
124
|
+
|
|
125
|
+
Elevation 4:
|
|
126
|
+
iOS: 0 8px 24px rgba(0, 0, 0, 0.16)
|
|
127
|
+
Android: 0 14px 28px rgba(0, 0, 0, 0.25)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 2. Components (컴포넌트)
|
|
133
|
+
|
|
134
|
+
### Button
|
|
135
|
+
|
|
136
|
+
#### Variants
|
|
137
|
+
|
|
138
|
+
**Primary Button**
|
|
139
|
+
```
|
|
140
|
+
Background: Primary 500
|
|
141
|
+
Text: White
|
|
142
|
+
Height: 48dp/pt
|
|
143
|
+
Padding: 16dp/pt horizontal
|
|
144
|
+
Border Radius: 12dp/pt
|
|
145
|
+
Font: Label Large, Medium
|
|
146
|
+
|
|
147
|
+
States:
|
|
148
|
+
- Default: Background Primary 500
|
|
149
|
+
- Hover: Background Primary 700
|
|
150
|
+
- Pressed: Opacity 0.7
|
|
151
|
+
- Disabled: Opacity 0.3, Background Gray 200
|
|
152
|
+
- Loading: Spinner + Disabled state
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Secondary Button**
|
|
156
|
+
```
|
|
157
|
+
Background: Transparent
|
|
158
|
+
Border: 1px solid Primary 500
|
|
159
|
+
Text: Primary 500
|
|
160
|
+
Height: 48dp/pt
|
|
161
|
+
Padding: 16dp/pt horizontal
|
|
162
|
+
Border Radius: 12dp/pt
|
|
163
|
+
Font: Label Large, Medium
|
|
164
|
+
|
|
165
|
+
States:
|
|
166
|
+
- Default: Border Primary 500
|
|
167
|
+
- Hover: Background Primary 50
|
|
168
|
+
- Pressed: Opacity 0.7
|
|
169
|
+
- Disabled: Opacity 0.3
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Text Button**
|
|
173
|
+
```
|
|
174
|
+
Background: Transparent
|
|
175
|
+
Text: Primary 500
|
|
176
|
+
Height: 48dp/pt
|
|
177
|
+
Padding: 8dp/pt horizontal
|
|
178
|
+
Font: Label Large, Medium
|
|
179
|
+
|
|
180
|
+
States:
|
|
181
|
+
- Default: Text Primary 500
|
|
182
|
+
- Hover: Background Primary 50
|
|
183
|
+
- Pressed: Opacity 0.7
|
|
184
|
+
- Disabled: Opacity 0.3
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Input Field
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
Background: White
|
|
191
|
+
Border: 1px solid Gray 300
|
|
192
|
+
Border Radius: 8dp/pt
|
|
193
|
+
Height: 48dp/pt
|
|
194
|
+
Padding: 12dp/pt horizontal
|
|
195
|
+
Font: Body Large
|
|
196
|
+
|
|
197
|
+
States:
|
|
198
|
+
- Default: Border Gray 300
|
|
199
|
+
- Focus: Border Primary 500, Shadow Elevation 1
|
|
200
|
+
- Error: Border Error, Helper text in Error color
|
|
201
|
+
- Disabled: Background Gray 100, Opacity 0.5
|
|
202
|
+
- Success: Border Success
|
|
203
|
+
|
|
204
|
+
Label:
|
|
205
|
+
- Position: Above input or Floating
|
|
206
|
+
- Font: Label Medium
|
|
207
|
+
- Color: Gray 700
|
|
208
|
+
|
|
209
|
+
Helper Text:
|
|
210
|
+
- Font: Label Small
|
|
211
|
+
- Color: Gray 600
|
|
212
|
+
- Error: Error color
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Card
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
Background: White
|
|
219
|
+
Border Radius: 16dp/pt
|
|
220
|
+
Padding: 16dp/pt
|
|
221
|
+
Shadow: Elevation 2
|
|
222
|
+
|
|
223
|
+
Variants:
|
|
224
|
+
- Outlined: Border 1px solid Gray 200, No shadow
|
|
225
|
+
- Elevated: Shadow Elevation 2
|
|
226
|
+
- Filled: Background Gray 50
|
|
227
|
+
|
|
228
|
+
States:
|
|
229
|
+
- Default
|
|
230
|
+
- Hover: Shadow Elevation 3
|
|
231
|
+
- Pressed: Opacity 0.95
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### List Item
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
Height: Min 56dp/pt
|
|
238
|
+
Padding: 16dp/pt horizontal, 12dp/pt vertical
|
|
239
|
+
Background: Transparent
|
|
240
|
+
|
|
241
|
+
Layout:
|
|
242
|
+
- Leading Icon (optional): 24dp/pt × 24dp/pt
|
|
243
|
+
- Text Area:
|
|
244
|
+
- Primary Text: Body Large
|
|
245
|
+
- Secondary Text: Body Medium, Gray 600
|
|
246
|
+
- Trailing Element (optional): Icon, Text, or Switch
|
|
247
|
+
|
|
248
|
+
States:
|
|
249
|
+
- Default
|
|
250
|
+
- Hover: Background Gray 50
|
|
251
|
+
- Pressed: Background Gray 100
|
|
252
|
+
- Selected: Background Primary 50
|
|
253
|
+
|
|
254
|
+
Divider:
|
|
255
|
+
- Height: 1px
|
|
256
|
+
- Color: Gray 200
|
|
257
|
+
- Inset: 16dp/pt from leading edge
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Bottom Sheet
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
Background: White
|
|
264
|
+
Border Radius: 24dp/pt (top corners only)
|
|
265
|
+
Max Height: 90% of screen
|
|
266
|
+
Shadow: Elevation 4
|
|
267
|
+
|
|
268
|
+
Header:
|
|
269
|
+
- Handle: 32dp/pt × 4dp/pt, Gray 300, Centered
|
|
270
|
+
- Padding: 16dp/pt
|
|
271
|
+
|
|
272
|
+
Content:
|
|
273
|
+
- Padding: 24dp/pt horizontal
|
|
274
|
+
- Scrollable
|
|
275
|
+
|
|
276
|
+
States:
|
|
277
|
+
- Collapsed
|
|
278
|
+
- Expanded
|
|
279
|
+
- Dismissing (Slide down animation)
|
|
280
|
+
|
|
281
|
+
Animation:
|
|
282
|
+
- Duration: 300ms
|
|
283
|
+
- Easing: ease-out
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Modal Dialog
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Background: White
|
|
290
|
+
Border Radius: 16dp/pt
|
|
291
|
+
Max Width: 280dp/pt (iOS), 320dp/pt (Android)
|
|
292
|
+
Padding: 24dp/pt
|
|
293
|
+
|
|
294
|
+
Layout:
|
|
295
|
+
- Title: Headline Small, Center aligned
|
|
296
|
+
- Content: Body Medium, 16dp/pt top margin
|
|
297
|
+
- Actions: 24dp/pt top margin
|
|
298
|
+
- iOS: Horizontal, Right aligned
|
|
299
|
+
- Android: Horizontal, Right aligned
|
|
300
|
+
|
|
301
|
+
Backdrop:
|
|
302
|
+
- Background: rgba(0, 0, 0, 0.5)
|
|
303
|
+
- Tap to dismiss (optional)
|
|
304
|
+
|
|
305
|
+
Animation:
|
|
306
|
+
- Fade in: 200ms
|
|
307
|
+
- Scale: 0.95 → 1.0
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## 3. Patterns (패턴)
|
|
313
|
+
|
|
314
|
+
### Navigation
|
|
315
|
+
|
|
316
|
+
#### Tab Bar (iOS) / Navigation Bar (Android)
|
|
317
|
+
|
|
318
|
+
```
|
|
319
|
+
Height:
|
|
320
|
+
- iOS: 49pt + Safe Area
|
|
321
|
+
- Android: 80dp
|
|
322
|
+
|
|
323
|
+
Items: 2-5 items
|
|
324
|
+
|
|
325
|
+
Item:
|
|
326
|
+
- Icon: 24dp/pt × 24dp/pt
|
|
327
|
+
- Label: Label Small
|
|
328
|
+
- Active: Primary 500, Filled Icon
|
|
329
|
+
- Inactive: Gray 600, Outlined Icon
|
|
330
|
+
|
|
331
|
+
States:
|
|
332
|
+
- Active: Primary color, Label visible
|
|
333
|
+
- Inactive: Gray color
|
|
334
|
+
- Disabled: Opacity 0.3
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
#### Top App Bar
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
Height:
|
|
341
|
+
- iOS: 44pt (Small), 96pt (Large Title)
|
|
342
|
+
- Android: 56dp (Small), 112dp (Medium), 152dp (Large)
|
|
343
|
+
|
|
344
|
+
Layout:
|
|
345
|
+
- Leading: Back button or Menu icon
|
|
346
|
+
- Title: Headline Small or Large
|
|
347
|
+
- Trailing: Action icons (max 3)
|
|
348
|
+
|
|
349
|
+
Variants:
|
|
350
|
+
- Small: Title only
|
|
351
|
+
- Large: Large title with collapse on scroll
|
|
352
|
+
- Center: Title center-aligned (iOS)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Loading States
|
|
356
|
+
|
|
357
|
+
#### Skeleton Screen
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
Background: Gray 100
|
|
361
|
+
Animation: Shimmer effect
|
|
362
|
+
- Gradient: Gray 100 → Gray 200 → Gray 100
|
|
363
|
+
- Duration: 1.5s
|
|
364
|
+
- Infinite loop
|
|
365
|
+
|
|
366
|
+
Layout:
|
|
367
|
+
- Mimic actual content layout
|
|
368
|
+
- Rounded rectangles for text
|
|
369
|
+
- Circles for avatars
|
|
370
|
+
- Cards for content blocks
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
#### Progress Indicators
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
Circular Spinner:
|
|
377
|
+
- Size: 24dp/pt (Small), 32dp/pt (Medium), 48dp/pt (Large)
|
|
378
|
+
- Color: Primary 500
|
|
379
|
+
- Animation: 360° rotation, 1s duration
|
|
380
|
+
|
|
381
|
+
Linear Progress:
|
|
382
|
+
- Height: 4dp/pt
|
|
383
|
+
- Background: Gray 200
|
|
384
|
+
- Foreground: Primary 500
|
|
385
|
+
- Animation: Indeterminate or Determinate
|
|
386
|
+
|
|
387
|
+
Pull to Refresh:
|
|
388
|
+
- Trigger distance: 80dp/pt
|
|
389
|
+
- Spinner: 32dp/pt
|
|
390
|
+
- Animation: Fade in + Rotate
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Empty States
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
Layout:
|
|
397
|
+
- Icon/Illustration: 120dp/pt × 120dp/pt, Center
|
|
398
|
+
- Title: Headline Small, 24dp/pt top margin
|
|
399
|
+
- Description: Body Medium, Gray 600, 8dp/pt top margin
|
|
400
|
+
- Action Button (optional): 24dp/pt top margin
|
|
401
|
+
|
|
402
|
+
Tone:
|
|
403
|
+
- Friendly and helpful
|
|
404
|
+
- Suggest next action
|
|
405
|
+
- Avoid negative language
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### Error States
|
|
409
|
+
|
|
410
|
+
```
|
|
411
|
+
Layout:
|
|
412
|
+
- Icon: Error color, 48dp/pt × 48dp/pt
|
|
413
|
+
- Title: Headline Small, Error color
|
|
414
|
+
- Message: Body Medium, Gray 700
|
|
415
|
+
- Action Buttons:
|
|
416
|
+
- Primary: "Retry" or "Go Back"
|
|
417
|
+
- Secondary: "Contact Support" (optional)
|
|
418
|
+
|
|
419
|
+
Types:
|
|
420
|
+
- Network Error: "No connection" icon
|
|
421
|
+
- Server Error: "500" icon
|
|
422
|
+
- Not Found: "404" icon
|
|
423
|
+
- Permission Denied: Lock icon
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## 4. Motion (모션)
|
|
429
|
+
|
|
430
|
+
### Duration
|
|
431
|
+
|
|
432
|
+
```
|
|
433
|
+
Instant: 100ms (Toggle, Switch)
|
|
434
|
+
Quick: 200ms (Hover, Focus)
|
|
435
|
+
Standard: 300ms (Transition, Modal)
|
|
436
|
+
Emphasized: 500ms (Complex change)
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### Easing
|
|
440
|
+
|
|
441
|
+
```
|
|
442
|
+
Standard: cubic-bezier(0.4, 0.0, 0.2, 1)
|
|
443
|
+
Decelerate: cubic-bezier(0.0, 0.0, 0.2, 1)
|
|
444
|
+
Accelerate: cubic-bezier(0.4, 0.0, 1, 1)
|
|
445
|
+
Sharp: cubic-bezier(0.4, 0.0, 0.6, 1)
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### Transitions
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
Fade:
|
|
452
|
+
- Duration: 200ms
|
|
453
|
+
- Opacity: 0 → 1
|
|
454
|
+
|
|
455
|
+
Slide:
|
|
456
|
+
- Duration: 300ms
|
|
457
|
+
- Transform: translateX(100%) → translateX(0)
|
|
458
|
+
- Easing: Standard
|
|
459
|
+
|
|
460
|
+
Scale:
|
|
461
|
+
- Duration: 200ms
|
|
462
|
+
- Transform: scale(0.95) → scale(1)
|
|
463
|
+
- Easing: Decelerate
|
|
464
|
+
|
|
465
|
+
Shared Element:
|
|
466
|
+
- Duration: 300ms
|
|
467
|
+
- Hero animation between screens
|
|
468
|
+
- Maintain element position and size
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## 5. Accessibility (접근성)
|
|
474
|
+
|
|
475
|
+
### Color Contrast
|
|
476
|
+
|
|
477
|
+
```
|
|
478
|
+
WCAG AA:
|
|
479
|
+
- Normal Text: 4.5:1
|
|
480
|
+
- Large Text (18pt+): 3:1
|
|
481
|
+
- Interactive Elements: 3:1
|
|
482
|
+
|
|
483
|
+
WCAG AAA:
|
|
484
|
+
- Normal Text: 7:1
|
|
485
|
+
- Large Text: 4.5:1
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Touch Targets
|
|
489
|
+
|
|
490
|
+
```
|
|
491
|
+
Minimum Size:
|
|
492
|
+
- iOS: 44pt × 44pt
|
|
493
|
+
- Android: 48dp × 48dp
|
|
494
|
+
|
|
495
|
+
Spacing: Min 8dp/pt between targets
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Focus Indicators
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
Outline:
|
|
502
|
+
- Width: 2px
|
|
503
|
+
- Color: Primary 500
|
|
504
|
+
- Offset: 2px
|
|
505
|
+
- Border Radius: Match element
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Screen Reader
|
|
509
|
+
|
|
510
|
+
```
|
|
511
|
+
Labels:
|
|
512
|
+
- Descriptive and concise
|
|
513
|
+
- Include state (e.g., "Selected", "Expanded")
|
|
514
|
+
- Avoid redundant words
|
|
515
|
+
|
|
516
|
+
Reading Order:
|
|
517
|
+
- Logical and sequential
|
|
518
|
+
- Match visual hierarchy
|
|
519
|
+
|
|
520
|
+
Announcements:
|
|
521
|
+
- Success: "Item saved"
|
|
522
|
+
- Error: "Failed to save. Please try again"
|
|
523
|
+
- Loading: "Loading content"
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
## 6. Dark Mode
|
|
529
|
+
|
|
530
|
+
### Color Mapping
|
|
531
|
+
|
|
532
|
+
```
|
|
533
|
+
Light → Dark:
|
|
534
|
+
|
|
535
|
+
Background:
|
|
536
|
+
White (#FFFFFF) → Gray 900 (#121212)
|
|
537
|
+
Gray 50 (#FAFAFA) → Gray 800 (#1E1E1E)
|
|
538
|
+
Gray 100 (#F5F5F5) → Gray 700 (#2C2C2C)
|
|
539
|
+
|
|
540
|
+
Surface:
|
|
541
|
+
White (#FFFFFF) → Gray 800 (#1E1E1E)
|
|
542
|
+
Elevation 1 → +5% white overlay
|
|
543
|
+
Elevation 2 → +7% white overlay
|
|
544
|
+
Elevation 3 → +8% white overlay
|
|
545
|
+
|
|
546
|
+
Text:
|
|
547
|
+
Gray 900 (#212121) → White (#FFFFFF)
|
|
548
|
+
Gray 700 (#616161) → Gray 300 (#E0E0E0)
|
|
549
|
+
Gray 600 (#757575) → Gray 400 (#BDBDBD)
|
|
550
|
+
|
|
551
|
+
Primary Color:
|
|
552
|
+
Lighten by 10-20% for better contrast
|
|
553
|
+
|
|
554
|
+
Success/Warning/Error:
|
|
555
|
+
Adjust for WCAG AA contrast
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### Dark Mode Specific
|
|
559
|
+
|
|
560
|
+
```
|
|
561
|
+
Elevation:
|
|
562
|
+
- Replace shadows with lighter overlays
|
|
563
|
+
- Use border to separate elements (1px, rgba(255,255,255,0.12))
|
|
564
|
+
|
|
565
|
+
Images:
|
|
566
|
+
- Reduce opacity by 10-20%
|
|
567
|
+
- Or provide dark mode variants
|
|
568
|
+
|
|
569
|
+
Icons:
|
|
570
|
+
- Use outlined style for better visibility
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## 7. Responsive Design
|
|
576
|
+
|
|
577
|
+
### Breakpoints
|
|
578
|
+
|
|
579
|
+
```
|
|
580
|
+
Mobile: 0-599px
|
|
581
|
+
Tablet: 600-1023px
|
|
582
|
+
Desktop: 1024px+
|
|
583
|
+
|
|
584
|
+
Specific:
|
|
585
|
+
- XS: 0-375px
|
|
586
|
+
- SM: 376-767px
|
|
587
|
+
- MD: 768-1023px
|
|
588
|
+
- LG: 1024-1439px
|
|
589
|
+
- XL: 1440px+
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
### Grid System
|
|
593
|
+
|
|
594
|
+
```
|
|
595
|
+
Mobile (XS-SM):
|
|
596
|
+
- Columns: 4
|
|
597
|
+
- Gutter: 16px
|
|
598
|
+
- Margin: 16px
|
|
599
|
+
|
|
600
|
+
Tablet (MD):
|
|
601
|
+
- Columns: 8
|
|
602
|
+
- Gutter: 24px
|
|
603
|
+
- Margin: 24px
|
|
604
|
+
|
|
605
|
+
Desktop (LG-XL):
|
|
606
|
+
- Columns: 12
|
|
607
|
+
- Gutter: 24px
|
|
608
|
+
- Margin: Auto (max-width: 1440px)
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
### Adaptive Layouts
|
|
612
|
+
|
|
613
|
+
```
|
|
614
|
+
Mobile:
|
|
615
|
+
- Single column
|
|
616
|
+
- Stacked navigation
|
|
617
|
+
- Bottom navigation bar
|
|
618
|
+
|
|
619
|
+
Tablet:
|
|
620
|
+
- 2-column layout (optional)
|
|
621
|
+
- Side navigation (optional)
|
|
622
|
+
- Bottom or top navigation
|
|
623
|
+
|
|
624
|
+
Desktop:
|
|
625
|
+
- Multi-column layout
|
|
626
|
+
- Persistent side navigation
|
|
627
|
+
- Top navigation bar
|
|
628
|
+
```
|