muno-claude-plugin 1.6.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.
@@ -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
+ ```