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.
@@ -0,0 +1,953 @@
1
+ # 컴포넌트 예시
2
+
3
+ 실제 앱에서 사용할 수 있는 컴포넌트 예시입니다.
4
+
5
+ ---
6
+
7
+ ## 1. Login Screen (로그인 화면)
8
+
9
+ ### Apple 스타일
10
+
11
+ ```markdown
12
+ ## 레이아웃
13
+
14
+ ### Navigation Bar
15
+ - Style: Large Title
16
+ - Title: "로그인"
17
+ - Background: System Background
18
+
19
+ ### Content (Safe Area 내)
20
+ - Logo
21
+ - Position: Top center
22
+ - Size: 80pt × 80pt
23
+ - Margin Top: 60pt
24
+
25
+ - Title
26
+ - Text: "환영합니다"
27
+ - Font: Large Title (34pt, Bold)
28
+ - Color: Label
29
+ - Margin Top: 24pt
30
+ - Alignment: Center
31
+
32
+ - Subtitle
33
+ - Text: "계속하려면 로그인하세요"
34
+ - Font: Body (17pt, Regular)
35
+ - Color: Secondary Label
36
+ - Margin Top: 8pt
37
+ - Alignment: Center
38
+
39
+ - Email Input Field
40
+ - Placeholder: "이메일"
41
+ - Keyboard Type: Email
42
+ - Auto Capitalization: None
43
+ - Height: 50pt
44
+ - Background: Secondary System Background
45
+ - Border Radius: 12pt
46
+ - Padding: 16pt horizontal
47
+ - Margin Top: 48pt
48
+
49
+ - Password Input Field
50
+ - Placeholder: "비밀번호"
51
+ - Secure Text Entry: Yes
52
+ - Height: 50pt
53
+ - Background: Secondary System Background
54
+ - Border Radius: 12pt
55
+ - Padding: 16pt horizontal
56
+ - Margin Top: 16pt
57
+ - Trailing: Show/Hide button
58
+
59
+ - Forgot Password Button
60
+ - Text: "비밀번호를 잊으셨나요?"
61
+ - Font: Footnote (13pt, Regular)
62
+ - Color: System Blue
63
+ - Alignment: Right
64
+ - Margin Top: 12pt
65
+
66
+ - Login Button
67
+ - Text: "로그인"
68
+ - Style: Primary Button
69
+ - Height: 50pt
70
+ - Border Radius: 12pt
71
+ - Background: System Blue
72
+ - Font: Headline (17pt, Semibold)
73
+ - Color: White
74
+ - Margin Top: 32pt
75
+ - Shadow: 0 4px 12px rgba(0, 122, 255, 0.3)
76
+
77
+ - Divider
78
+ - Text: "또는"
79
+ - Margin Top: 32pt
80
+ - Line Color: Separator
81
+
82
+ - Social Login Buttons (Stack)
83
+ - Apple Sign In
84
+ - Background: Black
85
+ - Icon: Apple logo (White)
86
+ - Text: "Apple로 계속하기"
87
+ - Height: 50pt
88
+ - Border Radius: 12pt
89
+ - Margin Top: 24pt
90
+
91
+ - Google Sign In
92
+ - Background: White
93
+ - Border: 1px solid Gray 300
94
+ - Icon: Google logo
95
+ - Text: "Google로 계속하기"
96
+ - Height: 50pt
97
+ - Border Radius: 12pt
98
+ - Margin Top: 12pt
99
+
100
+ - Sign Up Link
101
+ - Text: "계정이 없으신가요? 회원가입"
102
+ - Font: Footnote (13pt, Regular)
103
+ - Color: System Blue (회원가입만)
104
+ - Alignment: Center
105
+ - Margin Top: 32pt
106
+ - Margin Bottom: 32pt
107
+
108
+ ### 상태
109
+ - Default: 모든 버튼 활성화
110
+ - Loading: Login 버튼에 Spinner, Disabled state
111
+ - Error: Input field에 red border, 하단 error message
112
+ ```
113
+
114
+ ### Toss 스타일
115
+
116
+ ```markdown
117
+ ## 레이아웃
118
+
119
+ ### Top Bar
120
+ - Height: 56pt
121
+ - Background: White
122
+ - Leading: Close button (X)
123
+
124
+ ### Content
125
+ - Logo
126
+ - Position: Top center
127
+ - Size: 48pt × 48pt
128
+ - Margin Top: 40pt
129
+
130
+ - Title
131
+ - Text: "토스에 오신 것을\n환영해요"
132
+ - Font: Headline 1 (24pt, Bold)
133
+ - Color: Toss Black
134
+ - Margin Top: 24pt
135
+ - Alignment: Left
136
+ - Line Height: 1.4
137
+
138
+ - Phone Number Input
139
+ - Label: "휴대폰 번호"
140
+ - Font: Body 2 (14pt, Regular)
141
+ - Color: Gray 700
142
+ - Margin Top: 40pt
143
+
144
+ - Input
145
+ - Background: Gray 50
146
+ - Border: 1px solid Gray 200
147
+ - Border Radius: 8pt
148
+ - Height: 52pt
149
+ - Padding: 16pt
150
+ - Font: Body 1 (16pt, Regular)
151
+ - Margin Top: 8pt
152
+ - Placeholder: "010-0000-0000"
153
+ - Keyboard Type: Phone Pad
154
+
155
+ - Verification Code Input (After phone verified)
156
+ - Label: "인증번호"
157
+ - Timer: 3:00 (Countdown)
158
+ - Input: Same style as phone input
159
+ - Margin Top: 24pt
160
+
161
+ - Continue Button
162
+ - Text: "계속하기"
163
+ - Background: Toss Blue (#3182F6)
164
+ - Height: 56pt
165
+ - Border Radius: 8pt
166
+ - Font: Body 1 (16pt, Bold)
167
+ - Color: White
168
+ - Position: Fixed bottom
169
+ - Margin: 16pt horizontal
170
+ - Margin Bottom: Safe Area + 16pt
171
+ - Disabled: Background Gray 200, Text Gray 500
172
+
173
+ ### 인터랙션
174
+ - Phone number input 입력 완료 시 → 자동으로 인증번호 전송
175
+ - Continue button은 모든 필드 입력 완료 시 활성화
176
+ - Error 발생 시 Toast 메시지 표시 (하단에서 올라옴)
177
+
178
+ ### 마이크로 인터랙션
179
+ - Input focus: Border color → Toss Blue, Smooth transition 200ms
180
+ - Button press: Scale 0.98, 100ms
181
+ - Loading: Button에 spinner, width 변화 없음
182
+ ```
183
+
184
+ ---
185
+
186
+ ## 2. Product List (상품 목록)
187
+
188
+ ### Apple 스타일 (List)
189
+
190
+ ```markdown
191
+ ## 레이아웃
192
+
193
+ ### Navigation Bar
194
+ - Style: Large Title
195
+ - Title: "상품"
196
+ - Right Button: Filter icon
197
+
198
+ ### Search Bar
199
+ - Placeholder: "상품 검색"
200
+ - Style: iOS Default Search Bar
201
+ - Scope Buttons: 전체, 인기, 신상품
202
+
203
+ ### List
204
+ - Style: Inset Grouped
205
+ - Background: System Grouped Background
206
+
207
+ #### List Item
208
+ - Height: Auto (최소 80pt)
209
+ - Background: Secondary System Grouped Background
210
+ - Separator: Inset 16pt from leading
211
+
212
+ Layout:
213
+ - Leading Image
214
+ - Size: 64pt × 64pt
215
+ - Border Radius: 8pt
216
+ - Content Mode: Aspect Fill
217
+ - Margin: 8pt
218
+
219
+ - Content Stack (Vertical)
220
+ - Product Name
221
+ - Font: Headline (17pt, Semibold)
222
+ - Color: Label
223
+ - Lines: 2
224
+
225
+ - Price
226
+ - Font: Subheadline (15pt, Regular)
227
+ - Color: System Blue
228
+ - Margin Top: 4pt
229
+
230
+ - Rating & Reviews
231
+ - Icon: Star (filled)
232
+ - Text: "4.5 (128 reviews)"
233
+ - Font: Footnote (13pt, Regular)
234
+ - Color: Secondary Label
235
+ - Margin Top: 4pt
236
+
237
+ - Trailing: Chevron Right
238
+ - Color: Tertiary Label
239
+
240
+ ### 인터랙션
241
+ - Tap: Push to Detail Screen
242
+ - Long Press: Quick Action Menu (Add to Cart, Share, Favorite)
243
+ - Swipe Left: Add to Cart (Blue), Delete (Red)
244
+ - Pull to Refresh: Reload list
245
+
246
+ ### 상태
247
+ - Loading: Skeleton UI (3 items)
248
+ - Empty: Icon + "상품이 없습니다" + "새로고침" button
249
+ - Error: Error icon + Message + "다시 시도" button
250
+ ```
251
+
252
+ ### Toss 스타일 (Grid)
253
+
254
+ ```markdown
255
+ ## 레이아웃
256
+
257
+ ### Top Bar
258
+ - Height: 56pt
259
+ - Background: White
260
+ - Title: "전체 상품"
261
+ - Font: Headline 3 (18pt, Bold)
262
+ - Trailing: Filter icon
263
+
264
+ ### Filter Chips (Horizontal Scroll)
265
+ - Height: 40pt
266
+ - Padding: 16pt horizontal
267
+ - Gap: 8pt
268
+
269
+ Chip:
270
+ - Background: Gray 50 (Default), Toss Blue (Selected)
271
+ - Text Color: Gray 700 (Default), White (Selected)
272
+ - Padding: 12pt horizontal
273
+ - Border Radius: 20pt
274
+ - Font: Body 2 (14pt, Medium)
275
+
276
+ ### Grid
277
+ - Columns: 2
278
+ - Gap: 12pt
279
+ - Padding: 16pt
280
+
281
+ #### Grid Item (Card)
282
+ - Aspect Ratio: 3:4
283
+ - Border Radius: 12pt
284
+ - Background: White
285
+ - Shadow: 0 2px 8px rgba(0,0,0,0.04)
286
+
287
+ Layout:
288
+ - Product Image
289
+ - Aspect Ratio: 1:1
290
+ - Border Radius: 12pt 12pt 0 0
291
+ - Content Mode: Cover
292
+
293
+ - Content (Padding 12pt)
294
+ - Brand
295
+ - Font: Caption (12pt, Regular)
296
+ - Color: Gray 600
297
+
298
+ - Product Name
299
+ - Font: Body 2 (14pt, Medium)
300
+ - Color: Toss Black
301
+ - Lines: 2
302
+ - Margin Top: 4pt
303
+
304
+ - Price
305
+ - Font: Headline 3 (18pt, Bold)
306
+ - Color: Toss Black
307
+ - Margin Top: 8pt
308
+
309
+ - Discount Badge (Optional)
310
+ - Background: Toss Red
311
+ - Text: "20%"
312
+ - Font: Caption (12pt, Bold)
313
+ - Color: White
314
+ - Padding: 4pt 6pt
315
+ - Border Radius: 4pt
316
+ - Position: Top Right of Image
317
+
318
+ - Favorite Button
319
+ - Position: Top Right
320
+ - Icon: Heart (outline/filled)
321
+ - Size: 24pt × 24pt
322
+ - Background: White (50% opacity)
323
+ - Margin: 8pt
324
+
325
+ ### 인터랙션
326
+ - Tap: Navigate to Detail
327
+ - Favorite button: Toggle favorite + Haptic
328
+ - Scroll: Infinite scroll (Load more)
329
+
330
+ ### 상태
331
+ - Loading: Skeleton Grid (6 items)
332
+ - Empty: Illustration + "상품이 없어요" + "둘러보기" button
333
+ - Error: Toast at bottom
334
+ ```
335
+
336
+ ---
337
+
338
+ ## 3. Profile Screen (프로필 화면)
339
+
340
+ ### Apple 스타일
341
+
342
+ ```markdown
343
+ ## 레이아웃
344
+
345
+ ### Navigation Bar
346
+ - Style: Large Title
347
+ - Title: "프로필"
348
+ - Right Button: Edit
349
+
350
+ ### Header Section
351
+ - Background: System Background
352
+ - Padding: 16pt
353
+
354
+ Layout:
355
+ - Profile Image
356
+ - Size: 80pt × 80pt
357
+ - Border Radius: 40pt (Circle)
358
+ - Border: 2pt solid System Blue
359
+ - Center Horizontal
360
+
361
+ - Name
362
+ - Font: Title 1 (28pt, Bold)
363
+ - Color: Label
364
+ - Alignment: Center
365
+ - Margin Top: 16pt
366
+
367
+ - Email
368
+ - Font: Callout (16pt, Regular)
369
+ - Color: Secondary Label
370
+ - Alignment: Center
371
+ - Margin Top: 4pt
372
+
373
+ ### Stats Section
374
+ - Layout: Horizontal Stack
375
+ - Distribution: Equal
376
+ - Margin Top: 24pt
377
+
378
+ Each Stat:
379
+ - Count
380
+ - Font: Title 2 (22pt, Bold)
381
+ - Color: Label
382
+ - Alignment: Center
383
+
384
+ - Label
385
+ - Font: Footnote (13pt, Regular)
386
+ - Color: Secondary Label
387
+ - Alignment: Center
388
+ - Margin Top: 4pt
389
+
390
+ ### Menu List (Grouped)
391
+ - Style: Inset Grouped
392
+ - Margin Top: 32pt
393
+
394
+ Groups:
395
+ 1. Account
396
+ - Personal Info (Chevron Right)
397
+ - Security (Chevron Right)
398
+ - Notifications (Toggle Switch)
399
+
400
+ 2. Support
401
+ - Help Center (Chevron Right)
402
+ - Terms of Service (Chevron Right)
403
+ - Privacy Policy (Chevron Right)
404
+
405
+ 3. App
406
+ - Language (Chevron Right, Badge: "한국어")
407
+ - Dark Mode (Toggle Switch)
408
+ - Version (Trailing text: "1.0.0")
409
+
410
+ 4. Logout
411
+ - Logout (Red text, Center aligned)
412
+
413
+ Menu Item:
414
+ - Height: 44pt
415
+ - Background: Secondary System Grouped Background
416
+ - Leading Icon: 24pt × 24pt, Tint Color
417
+ - Text: Body (17pt, Regular)
418
+ - Separator: Inset 44pt from leading
419
+
420
+ ### 인터랙션
421
+ - Profile Image Tap: Change Photo Action Sheet
422
+ - Edit Button: Edit Mode (All fields editable)
423
+ - Menu Tap: Navigate or Toggle
424
+ - Logout: Alert Dialog confirmation
425
+ ```
426
+
427
+ ### Toss 스타일
428
+
429
+ ```markdown
430
+ ## 레이아웃
431
+
432
+ ### Header Section
433
+ - Background: White
434
+ - Padding: 24pt
435
+
436
+ Layout:
437
+ - Top Row (Horizontal)
438
+ - Profile Image
439
+ - Size: 64pt × 64pt
440
+ - Border Radius: 32pt
441
+
442
+ - Info Stack (Margin Left 16pt)
443
+ - Name
444
+ - Font: Headline 2 (20pt, Bold)
445
+ - Color: Toss Black
446
+
447
+ - Membership Badge
448
+ - Background: Toss Blue (10% opacity)
449
+ - Text: "토스 프라임"
450
+ - Font: Caption (12pt, Medium)
451
+ - Color: Toss Blue
452
+ - Padding: 4pt 8pt
453
+ - Border Radius: 4pt
454
+ - Margin Top: 4pt
455
+
456
+ - Settings Icon (Trailing)
457
+ - Size: 24pt × 24pt
458
+ - Color: Gray 600
459
+
460
+ - Point Card
461
+ - Background: Linear Gradient (Toss Blue → #5B9FFF)
462
+ - Border Radius: 16pt
463
+ - Padding: 20pt
464
+ - Margin Top: 20pt
465
+ - Shadow: 0 4px 12px rgba(49,130,246,0.2)
466
+
467
+ Layout:
468
+ - Label: "토스 포인트"
469
+ - Font: Body 2 (14pt, Regular)
470
+ - Color: White (70% opacity)
471
+
472
+ - Amount: "12,540P"
473
+ - Font: Headline 1 (24pt, Bold)
474
+ - Color: White
475
+ - Margin Top: 4pt
476
+
477
+ - Charge Button
478
+ - Text: "충전하기"
479
+ - Background: White
480
+ - Color: Toss Blue
481
+ - Height: 36pt
482
+ - Border Radius: 18pt
483
+ - Font: Body 2 (14pt, Bold)
484
+ - Margin Top: 16pt
485
+ - Width: Fit content
486
+
487
+ ### Quick Actions
488
+ - Layout: 4-column Grid
489
+ - Padding: 24pt horizontal
490
+ - Gap: 16pt
491
+
492
+ Action:
493
+ - Icon: 48pt × 48pt
494
+ - Background: Gray 50
495
+ - Border Radius: 24pt
496
+ - Icon Color: Toss Black
497
+ - Icon Size: 24pt × 24pt
498
+
499
+ - Label
500
+ - Font: Caption (12pt, Regular)
501
+ - Color: Gray 700
502
+ - Alignment: Center
503
+ - Margin Top: 8pt
504
+
505
+ Actions:
506
+ - 주문내역
507
+ - 찜
508
+ - 쿠폰
509
+ - 설정
510
+
511
+ ### Menu Sections
512
+ - Padding: 0 24pt
513
+
514
+ Section Title:
515
+ - Font: Body 2 (14pt, Bold)
516
+ - Color: Gray 900
517
+ - Margin: 24pt 0 12pt
518
+
519
+ Menu Item:
520
+ - Height: 52pt
521
+ - Background: Transparent
522
+ - Border Bottom: 1px solid Gray 100
523
+
524
+ Layout:
525
+ - Title
526
+ - Font: Body 1 (16pt, Regular)
527
+ - Color: Toss Black
528
+
529
+ - Badge (Optional)
530
+ - Background: Toss Red
531
+ - Size: 8pt × 8pt
532
+ - Border Radius: 4pt
533
+ - Position: After title
534
+
535
+ - Trailing: Chevron Right
536
+ - Color: Gray 400
537
+
538
+ Sections:
539
+ 1. 계정
540
+ - 개인정보 관리
541
+ - 보안 설정
542
+
543
+ 2. 고객센터
544
+ - 공지사항
545
+ - 자주 묻는 질문
546
+ - 1:1 문의
547
+
548
+ 3. 앱 정보
549
+ - 버전 정보 (1.0.0)
550
+ - 오픈소스 라이선스
551
+
552
+ ### Bottom
553
+ - Logout Button
554
+ - Text: "로그아웃"
555
+ - Font: Body 2 (14pt, Regular)
556
+ - Color: Gray 600
557
+ - Alignment: Center
558
+ - Margin: 32pt 0
559
+
560
+ ### 인터랙션
561
+ - Profile Image: Photo Picker Bottom Sheet
562
+ - Point Card: Navigate to Point Detail
563
+ - Quick Action: Navigate to each screen
564
+ - Menu Item: Navigate
565
+ - Logout: Bottom Sheet confirmation
566
+ ```
567
+
568
+ ---
569
+
570
+ ## 4. Bottom Sheet Examples
571
+
572
+ ### Filter Bottom Sheet (Apple 스타일)
573
+
574
+ ```markdown
575
+ ## 레이아웃
576
+
577
+ ### Handle
578
+ - Width: 36pt
579
+ - Height: 5pt
580
+ - Background: System Gray 4
581
+ - Border Radius: 2.5pt
582
+ - Center Horizontal
583
+ - Margin Top: 6pt
584
+
585
+ ### Header
586
+ - Height: 56pt
587
+ - Border Bottom: 1px solid Separator
588
+
589
+ Layout:
590
+ - Title: "필터"
591
+ - Font: Headline (17pt, Semibold)
592
+ - Center Aligned
593
+
594
+ - Close Button
595
+ - Position: Trailing
596
+ - Icon: X mark
597
+ - Size: 24pt × 24pt
598
+
599
+ ### Content (Scrollable)
600
+ - Padding: 20pt
601
+
602
+ #### Section: Price Range
603
+ - Title: "가격"
604
+ - Font: Headline (17pt, Semibold)
605
+ - Margin Bottom: 16pt
606
+
607
+ - Slider
608
+ - Min: 0
609
+ - Max: 1,000,000
610
+ - Step: 10,000
611
+ - Track Height: 4pt
612
+ - Thumb Size: 28pt
613
+
614
+ - Range Display
615
+ - Text: "₩0 - ₩500,000"
616
+ - Font: Body (17pt, Regular)
617
+ - Color: Secondary Label
618
+ - Margin Top: 12pt
619
+
620
+ #### Section: Category
621
+ - Title: "카테고리"
622
+ - Margin Top: 32pt
623
+
624
+ - Chip Group
625
+ - Wrap: Yes
626
+ - Gap: 8pt
627
+
628
+ Chip:
629
+ - Background: System Gray 5 (Default), System Blue (Selected)
630
+ - Text Color: Label (Default), White (Selected)
631
+ - Height: 36pt
632
+ - Padding: 12pt horizontal
633
+ - Border Radius: 18pt
634
+ - Font: Callout (16pt, Regular)
635
+
636
+ #### Section: Rating
637
+ - Title: "평점"
638
+ - Margin Top: 32pt
639
+
640
+ - Rating Options (Vertical Stack)
641
+ - 5점 ⭐️⭐️⭐️⭐️⭐️
642
+ - 4점 이상 ⭐️⭐️⭐️⭐️
643
+ - 3점 이상 ⭐️⭐️⭐️
644
+ - 2점 이상 ⭐️⭐️
645
+ - 1점 이상 ⭐️
646
+
647
+ Option:
648
+ - Height: 44pt
649
+ - Checkmark (Trailing) when selected
650
+ - Font: Body (17pt, Regular)
651
+
652
+ ### Footer
653
+ - Background: System Background
654
+ - Padding: 16pt
655
+ - Border Top: 1px solid Separator
656
+
657
+ Buttons (Horizontal):
658
+ - Reset Button
659
+ - Text: "초기화"
660
+ - Style: Secondary
661
+ - Width: 30%
662
+
663
+ - Apply Button
664
+ - Text: "적용하기"
665
+ - Style: Primary
666
+ - Width: 65%
667
+ - Margin Left: 12pt
668
+
669
+ ### 인터랙션
670
+ - Swipe Down: Dismiss
671
+ - Backdrop Tap: Dismiss
672
+ - Apply: Dismiss + Emit filter values
673
+ - Reset: Clear all filters
674
+
675
+ ### Animation
676
+ - Present: Slide up 300ms, Backdrop fade in
677
+ - Dismiss: Slide down 300ms, Backdrop fade out
678
+ ```
679
+
680
+ ### Action Bottom Sheet (Toss 스타일)
681
+
682
+ ```markdown
683
+ ## 레이아웃
684
+
685
+ ### Handle
686
+ - Width: 32pt
687
+ - Height: 4pt
688
+ - Background: Gray 300
689
+ - Border Radius: 2pt
690
+ - Center Horizontal
691
+ - Margin: 8pt 0
692
+
693
+ ### Header (Optional)
694
+ - Padding: 20pt 24pt
695
+ - Title
696
+ - Font: Headline 2 (20pt, Bold)
697
+ - Color: Toss Black
698
+
699
+ - Description
700
+ - Font: Body 2 (14pt, Regular)
701
+ - Color: Gray 600
702
+ - Margin Top: 8pt
703
+
704
+ ### Actions (List)
705
+ - Padding: 0 24pt
706
+
707
+ Action Item:
708
+ - Height: 60pt
709
+ - Background: Transparent
710
+ - Border Bottom: 1px solid Gray 100 (except last)
711
+
712
+ Layout:
713
+ - Icon (Leading, Optional)
714
+ - Size: 24pt × 24pt
715
+ - Color: Toss Black or Semantic Color
716
+
717
+ - Title
718
+ - Font: Body 1 (16pt, Medium)
719
+ - Color: Toss Black (Default), Toss Red (Destructive)
720
+ - Margin Left: 12pt (if icon exists)
721
+
722
+ - Badge (Optional)
723
+ - Background: Toss Blue
724
+ - Text: "NEW"
725
+ - Font: Caption (12pt, Bold)
726
+ - Color: White
727
+ - Padding: 2pt 6pt
728
+ - Border Radius: 4pt
729
+ - Margin Left: 8pt
730
+
731
+ Actions Example:
732
+ 1. Share (Icon: Share, Title: "공유하기")
733
+ 2. Edit (Icon: Edit, Title: "수정하기")
734
+ 3. Delete (Icon: Trash, Title: "삭제하기", Color: Red)
735
+
736
+ ### Cancel Button (Optional)
737
+ - Height: 60pt
738
+ - Background: Gray 50
739
+ - Margin Top: 8pt
740
+ - Border Radius: 0 0 24pt 24pt
741
+
742
+ - Text: "취소"
743
+ - Font: Body 1 (16pt, Medium)
744
+ - Color: Gray 700
745
+ - Center Aligned
746
+
747
+ ### 인터랙션
748
+ - Action Tap: Execute + Dismiss
749
+ - Cancel Tap: Dismiss
750
+ - Backdrop Tap: Dismiss
751
+ - Swipe Down: Dismiss
752
+
753
+ ### Pressed State
754
+ - Background: Gray 50
755
+ - Duration: 100ms
756
+
757
+ ### Animation
758
+ - Present: Slide up 250ms ease-out
759
+ - Dismiss: Slide down 250ms ease-in
760
+ ```
761
+
762
+ ---
763
+
764
+ ## 5. Toast & Snackbar
765
+
766
+ ### iOS Toast (Apple 스타일)
767
+
768
+ ```markdown
769
+ ## 레이아웃
770
+
771
+ - Width: Screen Width - 32pt
772
+ - Min Height: 48pt
773
+ - Max Width: 600pt (iPad)
774
+ - Background: System Gray (with blur)
775
+ - Border Radius: 12pt
776
+ - Padding: 12pt 16pt
777
+ - Shadow: 0 4px 12px rgba(0,0,0,0.15)
778
+
779
+ Layout:
780
+ - Icon (Optional)
781
+ - Size: 20pt × 20pt
782
+ - Color: White or Semantic
783
+
784
+ - Message
785
+ - Font: Body (17pt, Regular)
786
+ - Color: White
787
+ - Lines: 1-2
788
+ - Margin Left: 8pt (if icon)
789
+
790
+ - Action Button (Optional)
791
+ - Text: "실행취소"
792
+ - Font: Body (17pt, Semibold)
793
+ - Color: System Blue
794
+ - Margin Left: 16pt
795
+
796
+ ### Position
797
+ - Default: Bottom (Safe Area + 16pt)
798
+ - Alternative: Top (Safe Area + 16pt)
799
+
800
+ ### Animation
801
+ - Present: Slide + Fade (300ms)
802
+ - Dismiss: Fade out (200ms)
803
+ - Auto Dismiss: 3s (without action), 5s (with action)
804
+
805
+ ### Variants
806
+ - Success: Green icon
807
+ - Error: Red icon
808
+ - Info: Blue icon
809
+ - Warning: Orange icon
810
+ ```
811
+
812
+ ### Android Snackbar (Toss 스타일)
813
+
814
+ ```markdown
815
+ ## 레이아웃
816
+
817
+ - Width: Screen Width (Mobile), 344dp (Tablet+)
818
+ - Height: 48dp (Single line), 68dp (Multi-line)
819
+ - Background: #323232 (Dark), White (Light mode)
820
+ - Border Radius: 4dp (Mobile), 4dp (Tablet)
821
+ - Padding: 14dp 16dp
822
+ - Elevation: 6dp
823
+
824
+ Layout:
825
+ - Message
826
+ - Font: Body 2 (14dp, Regular)
827
+ - Color: White (Dark), Toss Black (Light)
828
+ - Lines: 1-2
829
+
830
+ - Action Button (Optional)
831
+ - Text: "실행취소" or "확인"
832
+ - Font: Body 2 (14dp, Bold)
833
+ - Color: Toss Blue
834
+ - Margin Left: 16dp
835
+ - Padding: 8dp 12dp
836
+ - Min Width: 64dp
837
+
838
+ ### Position
839
+ - Mobile: Bottom (16dp)
840
+ - Tablet: Bottom Left (16dp)
841
+
842
+ ### Animation
843
+ - Present: Slide up + Fade (250ms)
844
+ - Dismiss: Fade out (150ms)
845
+ - Auto Dismiss: 4s (without action), 10s (with action)
846
+
847
+ ### Interaction
848
+ - Swipe: Dismiss
849
+ - Action Tap: Execute + Dismiss
850
+ - Tap (Message): Dismiss (optional)
851
+ ```
852
+
853
+ ---
854
+
855
+ ## 6. Loading States
856
+
857
+ ### Skeleton Screen (Product Card)
858
+
859
+ ```markdown
860
+ ## Apple 스타일
861
+
862
+ Card Layout:
863
+ - Background: Secondary System Background
864
+ - Border Radius: 12pt
865
+ - Padding: 12pt
866
+
867
+ Skeleton Elements:
868
+ - Image Placeholder
869
+ - Size: Full width × 200pt
870
+ - Background: System Gray 5
871
+ - Border Radius: 8pt
872
+ - Animation: Shimmer
873
+
874
+ - Title Line 1
875
+ - Width: 80%
876
+ - Height: 20pt
877
+ - Background: System Gray 5
878
+ - Border Radius: 4pt
879
+ - Margin Top: 12pt
880
+ - Animation: Shimmer
881
+
882
+ - Title Line 2
883
+ - Width: 60%
884
+ - Height: 20pt
885
+ - Background: System Gray 5
886
+ - Border Radius: 4pt
887
+ - Margin Top: 8pt
888
+ - Animation: Shimmer
889
+
890
+ - Price
891
+ - Width: 40%
892
+ - Height: 24pt
893
+ - Background: System Gray 5
894
+ - Border Radius: 4pt
895
+ - Margin Top: 12pt
896
+ - Animation: Shimmer
897
+
898
+ Shimmer Animation:
899
+ - Gradient: transparent → white(20%) → transparent
900
+ - Angle: -45deg
901
+ - Duration: 1.5s
902
+ - Timing: ease-in-out
903
+ - Iteration: infinite
904
+ ```
905
+
906
+ ### Progressive Loading (Toss 스타일)
907
+
908
+ ```markdown
909
+ ## 단계별 로딩
910
+
911
+ Phase 1: Structure (0-200ms)
912
+ - Show layout structure
913
+ - Background colors only
914
+ - No content
915
+
916
+ Phase 2: Critical Content (200-500ms)
917
+ - Load essential text
918
+ - Show placeholders for images
919
+ - Interactive elements disabled
920
+
921
+ Phase 3: Images (500-1000ms)
922
+ - Progressive JPEG loading
923
+ - Blur-up technique
924
+ - Low quality → High quality
925
+
926
+ Phase 4: Complete (1000ms+)
927
+ - All content loaded
928
+ - Enable interactions
929
+ - Trigger entrance animations
930
+
931
+ ## Loading Indicator
932
+
933
+ Circular Progress:
934
+ - Size: 32pt
935
+ - Stroke Width: 3pt
936
+ - Color: Toss Blue
937
+ - Animation:
938
+ - Rotation: 360deg, 1.2s, linear, infinite
939
+ - Stroke Dash: animated circle
940
+
941
+ Position:
942
+ - Center of container
943
+ - Or inline with button text
944
+ ```
945
+
946
+ ---
947
+
948
+ ## 출처
949
+
950
+ 이 예시들은 다음을 참고하여 작성되었습니다:
951
+ - [Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/)
952
+ - [Toss Design System](https://toss.tech/article/toss-design-system-guide)
953
+ - [Material Design 3](https://m3.material.io/)