@snacky/ui 0.1.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/dist/index.css ADDED
@@ -0,0 +1,1625 @@
1
+ /* src/theme/tokens.css */
2
+ :root {
3
+ --color-primary-50: #fef8eb;
4
+ --color-primary-100: #fde9bf;
5
+ --color-primary-200: #fcdea1;
6
+ --color-primary-300: #facf76;
7
+ --color-primary-400: #f9c55b;
8
+ --color-primary-500: #f8b732;
9
+ --color-primary-600: #e2a72e;
10
+ --color-primary-700: #b08224;
11
+ --color-primary-800: #88651c;
12
+ --color-primary-900: #684d15;
13
+ --color-neutral-0: #ffffff;
14
+ --color-neutral-10: #fdfdfd;
15
+ --color-neutral-20: #f7f7f7;
16
+ --color-neutral-50: #f3f3f3;
17
+ --color-neutral-100: #e0e0e0;
18
+ --color-neutral-200: #cccccc;
19
+ --color-neutral-400: #a3a3a3;
20
+ --color-neutral-500: #7a7a7a;
21
+ --color-neutral-600: #6a6a6a;
22
+ --color-neutral-700: #525252;
23
+ --color-neutral-800: #4b4b4b;
24
+ --color-neutral-900: #434343;
25
+ --color-neutral-950: #333333;
26
+ --color-red-50: #fdeeee;
27
+ --color-red-100: #f9cbcb;
28
+ --color-red-200: #f6b2b2;
29
+ --color-red-300: #f28e8e;
30
+ --color-red-400: #ef7979;
31
+ --color-red-500: #eb5757;
32
+ --color-red-600: #d64f4f;
33
+ --color-red-700: #a73e3e;
34
+ --color-red-800: #813030;
35
+ --color-red-900: #632525;
36
+ --bg-app: #f7f7f7;
37
+ --bg-surface: #ffffff;
38
+ --bg-surface-primary: #f8b732;
39
+ --bg-surface-accent: #eb5757;
40
+ --bg-surface-variant: #f3f3f3;
41
+ --bg-surface-field: #ffffff;
42
+ --bg-surface-highlight: #fef8eb;
43
+ --bg-action-primary: #f8b732;
44
+ --bg-action-primary-hover: #e2a72e;
45
+ --bg-action-primary-pressed: #b08224;
46
+ --bg-action-secondary: #ffffff;
47
+ --bg-action-secondary-hover: #f3f3f3;
48
+ --bg-action-secondary-pressed: #e0e0e0;
49
+ --bg-action-disabled: #cccccc;
50
+ --bg-action-primary-danger: #eb5757;
51
+ --bg-action-primary-danger-hovered: #d64f4f;
52
+ --bg-action-primary-danger-pressed: #a73e3e;
53
+ --bg-overlay-dim: rgba(51,51,51,0.8);
54
+ --border-main: #cccccc;
55
+ --border-highlight: #fcdea1;
56
+ --border-input-default: #cccccc;
57
+ --border-input-active: #f8b732;
58
+ --border-input-error: #eb5757;
59
+ --border-action-secondary: #cccccc;
60
+ --border-action-secondary-pressed: #a3a3a3;
61
+ --border-action-danger: #eb5757;
62
+ --border-action-disabled: #cccccc;
63
+ --text-primary: #333333;
64
+ --text-secondary: #7a7a7a;
65
+ --text-placeholder: #7a7a7a;
66
+ --text-disabled: #a3a3a3;
67
+ --text-link: #88651c;
68
+ --text-error: #a73e3e;
69
+ --text-inverse: #ffffff;
70
+ --text-on-action-primary: #333333;
71
+ --text-on-action-secondary: #333333;
72
+ --text-on-action-tertiary: #b08224;
73
+ --text-on-action-tertiary-hovered: #88651c;
74
+ --text-on-action-tertiary-pressed: #684d15;
75
+ --text-action-danger: #d64f4f;
76
+ --text-action-danger-hovered: #a73e3e;
77
+ --text-action-danger-pressed: #813030;
78
+ --text-action-disabled: #a3a3a3;
79
+ --icon-primary: #333333;
80
+ --icon-secondary: #525252;
81
+ --icon-brand: #f8b732;
82
+ --icon-disabled: #a3a3a3;
83
+ --icon-active: #eb5757;
84
+ --icon-on-accent: #ffffff;
85
+ --spacing-2: 2px;
86
+ --spacing-4: 4px;
87
+ --spacing-8: 8px;
88
+ --spacing-12: 12px;
89
+ --spacing-16: 16px;
90
+ --spacing-24: 24px;
91
+ --spacing-32: 32px;
92
+ --gap-icon-label: 4px;
93
+ --gap-cell: 4px;
94
+ --gap-text-icon: 8px;
95
+ --gap-text-underline: 16px;
96
+ --gap-layout-section-list: 8px;
97
+ --gap-layout-block: 16px;
98
+ --gap-layout-stack: 24px;
99
+ --gap-layout-page: 32px;
100
+ --margin-screen: 16px;
101
+ --radius-4: 4px;
102
+ --radius-6: 6px;
103
+ --radius-8: 8px;
104
+ --radius-10: 10px;
105
+ --radius-20: 20px;
106
+ --radius-100: 100px;
107
+ --radius-999: 999px;
108
+ --radius-field: 4px;
109
+ --radius-tag: 6px;
110
+ --radius-bubble: 8px;
111
+ --radius-card: 10px;
112
+ --radius-sheet-top: 20px;
113
+ --radius-full: 100px;
114
+ --size-icon-sm: 16px;
115
+ --size-icon-md: 20px;
116
+ --size-icon-lg: 24px;
117
+ --size-avatar-sm: 32px;
118
+ --size-avatar-md: 56px;
119
+ --size-avatar-lg: 72px;
120
+ --shadow-md: 0 4px 8px rgba(0,0,0,0.08);
121
+ --shadow-lg: 0 10px 30px rgba(0,0,0,0.1);
122
+ --shadow-top: 0 -4px 10px rgba(0,0,0,0.08);
123
+ --font-h1-bold-family: "Poppins", sans-serif;
124
+ --font-h1-bold-size: 32px;
125
+ --font-h1-bold-weight: 700;
126
+ --font-h1-bold-line-height: 36px;
127
+ --font-h1-bold-letter-spacing: 0.01em;
128
+ --font-h2-bold-family: "Poppins", sans-serif;
129
+ --font-h2-bold-size: 20px;
130
+ --font-h2-bold-weight: 700;
131
+ --font-h2-bold-line-height: 36px;
132
+ --font-h2-bold-letter-spacing: 0.01em;
133
+ --font-h3-bold-family: "Poppins", sans-serif;
134
+ --font-h3-bold-size: 16px;
135
+ --font-h3-bold-weight: 700;
136
+ --font-h3-bold-line-height: 36px;
137
+ --font-h3-bold-letter-spacing: 0.01em;
138
+ --font-h3-regular-family: "Poppins", sans-serif;
139
+ --font-h3-regular-size: 16px;
140
+ --font-h3-regular-weight: 400;
141
+ --font-h3-regular-line-height: 36px;
142
+ --font-h3-regular-letter-spacing: normal;
143
+ --font-body-semibold-family: "Poppins", sans-serif;
144
+ --font-body-semibold-size: 14px;
145
+ --font-body-semibold-weight: 600;
146
+ --font-body-semibold-line-height: 24px;
147
+ --font-body-semibold-letter-spacing: normal;
148
+ --font-body-regular-family: "Poppins", sans-serif;
149
+ --font-body-regular-size: 14px;
150
+ --font-body-regular-weight: 400;
151
+ --font-body-regular-line-height: 24px;
152
+ --font-body-regular-letter-spacing: normal;
153
+ --font-small-semibold-family: "Poppins", sans-serif;
154
+ --font-small-semibold-size: 12px;
155
+ --font-small-semibold-weight: 600;
156
+ --font-small-semibold-line-height: 24px;
157
+ --font-small-semibold-letter-spacing: normal;
158
+ --font-small-bold-family: "Poppins", sans-serif;
159
+ --font-small-bold-size: 12px;
160
+ --font-small-bold-weight: 700;
161
+ --font-small-bold-line-height: 24px;
162
+ --font-small-bold-letter-spacing: 0.01em;
163
+ --font-small-regular-family: "Poppins", sans-serif;
164
+ --font-small-regular-size: 12px;
165
+ --font-small-regular-weight: 400;
166
+ --font-small-regular-line-height: 24px;
167
+ --font-small-regular-letter-spacing: normal;
168
+ --font-caption-semibold-family: "Poppins", sans-serif;
169
+ --font-caption-semibold-size: 10px;
170
+ --font-caption-semibold-weight: 600;
171
+ --font-caption-semibold-line-height: 23px;
172
+ --font-caption-semibold-letter-spacing: 0.01em;
173
+ --font-caption-regular-family: "Poppins", sans-serif;
174
+ --font-caption-regular-size: 10px;
175
+ --font-caption-regular-weight: 400;
176
+ --font-caption-regular-line-height: 16px;
177
+ --font-caption-regular-letter-spacing: 0.01em;
178
+ }
179
+
180
+ /* src/components/Button/Button.css */
181
+ .snacky-btn {
182
+ position: relative;
183
+ display: inline-flex;
184
+ align-items: center;
185
+ justify-content: center;
186
+ padding: var(--spacing-12) var(--spacing-8);
187
+ border-radius: var(--radius-field);
188
+ border: none;
189
+ font-family: var(--font-small-semibold-family);
190
+ font-size: var(--font-small-semibold-size);
191
+ font-weight: var(--font-small-semibold-weight);
192
+ line-height: var(--font-small-semibold-line-height);
193
+ cursor: pointer;
194
+ white-space: nowrap;
195
+ transition:
196
+ background-color 0.12s ease,
197
+ border-color 0.12s ease,
198
+ color 0.12s ease;
199
+ }
200
+ .snacky-btn:disabled {
201
+ cursor: not-allowed;
202
+ }
203
+ .snacky-btn--small {
204
+ padding: var(--spacing-8) var(--spacing-8);
205
+ }
206
+ .snacky-btn--primary {
207
+ background: var(--bg-action-primary);
208
+ color: var(--text-on-action-primary);
209
+ }
210
+ .snacky-btn--primary:hover:not(:disabled) {
211
+ background: var(--bg-action-primary-hover);
212
+ }
213
+ .snacky-btn--primary:active:not(:disabled) {
214
+ background: var(--bg-action-primary-pressed);
215
+ }
216
+ .snacky-btn--primary:disabled {
217
+ background: var(--bg-action-disabled);
218
+ color: var(--text-action-disabled);
219
+ }
220
+ .snacky-btn--primary.snacky-btn--danger {
221
+ background: var(--bg-action-primary-danger);
222
+ color: var(--text-on-action-primary);
223
+ }
224
+ .snacky-btn--primary.snacky-btn--danger:hover:not(:disabled) {
225
+ background: var(--bg-action-primary-danger-hovered);
226
+ }
227
+ .snacky-btn--primary.snacky-btn--danger:active:not(:disabled) {
228
+ background: var(--bg-action-primary-danger-pressed);
229
+ }
230
+ .snacky-btn--primary.snacky-btn--danger:disabled {
231
+ background: var(--bg-action-disabled);
232
+ color: var(--text-action-disabled);
233
+ border: 1px solid var(--border-action-disabled);
234
+ }
235
+ .snacky-btn--secondary {
236
+ background: var(--bg-action-secondary);
237
+ border: 1px solid var(--border-action-secondary);
238
+ color: var(--text-on-action-primary);
239
+ }
240
+ .snacky-btn--secondary:hover:not(:disabled) {
241
+ background: var(--bg-action-secondary-hover);
242
+ }
243
+ .snacky-btn--secondary:active:not(:disabled) {
244
+ background: var(--bg-action-secondary-pressed);
245
+ }
246
+ .snacky-btn--secondary:disabled {
247
+ color: var(--text-action-disabled);
248
+ }
249
+ .snacky-btn--secondary.snacky-btn--danger {
250
+ border-color: var(--border-action-danger);
251
+ color: var(--text-action-danger);
252
+ }
253
+ .snacky-btn--secondary.snacky-btn--danger:hover:not(:disabled) {
254
+ background: var(--bg-action-secondary-hover);
255
+ }
256
+ .snacky-btn--secondary.snacky-btn--danger:active:not(:disabled) {
257
+ background: var(--bg-action-secondary-pressed);
258
+ }
259
+ .snacky-btn--secondary.snacky-btn--danger:disabled {
260
+ border-color: var(--border-action-disabled);
261
+ color: var(--text-action-disabled);
262
+ }
263
+ .snacky-btn--tertiary {
264
+ background: transparent;
265
+ color: var(--text-on-action-tertiary);
266
+ }
267
+ .snacky-btn--tertiary:hover:not(:disabled) {
268
+ color: var(--text-on-action-tertiary-hovered);
269
+ }
270
+ .snacky-btn--tertiary:active:not(:disabled) {
271
+ color: var(--text-on-action-tertiary-pressed);
272
+ }
273
+ .snacky-btn--tertiary:disabled {
274
+ color: var(--text-action-disabled);
275
+ }
276
+ .snacky-btn--tertiary.snacky-btn--danger {
277
+ color: var(--text-action-danger);
278
+ }
279
+ .snacky-btn--tertiary.snacky-btn--danger:hover:not(:disabled) {
280
+ color: var(--text-action-danger-hovered);
281
+ }
282
+ .snacky-btn--tertiary.snacky-btn--danger:active:not(:disabled) {
283
+ color: var(--text-action-danger-pressed);
284
+ }
285
+ .snacky-btn--tertiary.snacky-btn--danger:disabled {
286
+ color: var(--text-action-disabled);
287
+ }
288
+ .snacky-btn__icon {
289
+ position: absolute;
290
+ left: var(--spacing-8);
291
+ top: 50%;
292
+ transform: translateY(-50%);
293
+ display: inline-flex;
294
+ width: 24px;
295
+ height: 24px;
296
+ flex-shrink: 0;
297
+ }
298
+
299
+ /* src/components/IconButton/IconButton.css */
300
+ .snacky-iconbtn {
301
+ display: inline-flex;
302
+ align-items: center;
303
+ justify-content: center;
304
+ flex-shrink: 0;
305
+ border: none;
306
+ border-radius: var(--radius-full);
307
+ cursor: pointer;
308
+ transition: background-color 0.12s ease;
309
+ }
310
+ .snacky-iconbtn:disabled {
311
+ cursor: not-allowed;
312
+ }
313
+ .snacky-iconbtn svg,
314
+ .snacky-iconbtn img {
315
+ width: 100%;
316
+ height: 100%;
317
+ }
318
+ .snacky-iconbtn--primary {
319
+ width: 32px;
320
+ height: 32px;
321
+ padding: var(--spacing-8);
322
+ background: var(--bg-action-primary);
323
+ }
324
+ .snacky-iconbtn--primary .snacky-iconbtn__icon {
325
+ width: 16px;
326
+ height: 16px;
327
+ color: var(--text-primary);
328
+ }
329
+ .snacky-iconbtn--primary:hover:not(:disabled) {
330
+ background: var(--bg-action-primary-hover);
331
+ }
332
+ .snacky-iconbtn--primary:active:not(:disabled) {
333
+ background: var(--bg-action-primary-pressed);
334
+ }
335
+ .snacky-iconbtn--primary:disabled {
336
+ background: var(--bg-action-disabled);
337
+ border: 1px solid var(--border-action-disabled);
338
+ }
339
+ .snacky-iconbtn--primary:disabled .snacky-iconbtn__icon {
340
+ color: var(--text-action-disabled);
341
+ }
342
+ .snacky-iconbtn--primary.snacky-iconbtn--small {
343
+ width: 24px;
344
+ height: 24px;
345
+ padding: var(--spacing-4);
346
+ }
347
+ .snacky-iconbtn--secondary {
348
+ width: 40px;
349
+ height: 40px;
350
+ padding: var(--spacing-8);
351
+ background: var(--bg-action-secondary);
352
+ box-shadow: var(--shadow-md);
353
+ }
354
+ .snacky-iconbtn--secondary .snacky-iconbtn__icon {
355
+ width: 20px;
356
+ height: 20px;
357
+ color: var(--icon-secondary);
358
+ }
359
+ .snacky-iconbtn--secondary:hover:not(:disabled) {
360
+ background: var(--bg-action-secondary-hover);
361
+ }
362
+ .snacky-iconbtn--secondary:active:not(:disabled) {
363
+ background: var(--bg-action-secondary-pressed);
364
+ }
365
+ .snacky-iconbtn--secondary:disabled {
366
+ background: var(--bg-action-disabled);
367
+ box-shadow: none;
368
+ }
369
+ .snacky-iconbtn--secondary:disabled .snacky-iconbtn__icon {
370
+ color: var(--icon-disabled);
371
+ }
372
+ .snacky-iconbtn--secondary.snacky-iconbtn--selected .snacky-iconbtn__icon {
373
+ color: var(--icon-active);
374
+ }
375
+ .snacky-iconbtn--tertiary {
376
+ width: 40px;
377
+ height: 40px;
378
+ padding: var(--spacing-8);
379
+ background: transparent;
380
+ }
381
+ .snacky-iconbtn--tertiary .snacky-iconbtn__icon {
382
+ width: 24px;
383
+ height: 24px;
384
+ color: var(--icon-primary);
385
+ }
386
+ .snacky-iconbtn--tertiary:hover:not(:disabled) {
387
+ background: rgba(0, 0, 0, 0.08);
388
+ }
389
+ .snacky-iconbtn--tertiary:active:not(:disabled) {
390
+ background: rgba(0, 0, 0, 0.12);
391
+ }
392
+ .snacky-iconbtn--tertiary:disabled .snacky-iconbtn__icon {
393
+ color: var(--icon-disabled);
394
+ }
395
+
396
+ /* src/components/IconButton/UploadButton.css */
397
+ .snacky-upload {
398
+ display: inline-flex;
399
+ align-items: center;
400
+ justify-content: center;
401
+ width: 72px;
402
+ height: 72px;
403
+ padding: var(--spacing-24);
404
+ border-radius: var(--radius-full);
405
+ background: var(--bg-surface);
406
+ border: 1px dashed var(--border-main);
407
+ cursor: pointer;
408
+ transition: background-color 0.12s ease;
409
+ }
410
+ .snacky-upload svg,
411
+ .snacky-upload img {
412
+ width: 100%;
413
+ height: 100%;
414
+ }
415
+ .snacky-upload:hover {
416
+ background: var(--bg-action-secondary-hover);
417
+ }
418
+ .snacky-upload:active {
419
+ background: var(--bg-action-secondary-pressed);
420
+ }
421
+
422
+ /* src/components/Input/TextField.css */
423
+ .snacky-field {
424
+ display: flex;
425
+ align-items: center;
426
+ gap: var(--gap-text-icon);
427
+ width: 100%;
428
+ height: 48px;
429
+ padding: var(--spacing-12) var(--spacing-8);
430
+ background: var(--bg-surface-field);
431
+ border: 1px solid var(--border-input-default);
432
+ border-radius: var(--radius-field);
433
+ box-sizing: border-box;
434
+ transition: border-color 0.12s ease;
435
+ }
436
+ .snacky-field:focus-within {
437
+ border-color: var(--border-input-active);
438
+ }
439
+ .snacky-field--error {
440
+ border-color: var(--border-input-error) !important;
441
+ }
442
+ .snacky-field--disabled {
443
+ background: var(--bg-surface-variant);
444
+ cursor: not-allowed;
445
+ }
446
+ .snacky-field__input {
447
+ flex: 1;
448
+ min-width: 0;
449
+ border: none;
450
+ outline: none;
451
+ background: transparent;
452
+ font-family: var(--font-small-regular-family);
453
+ font-size: var(--font-small-regular-size);
454
+ font-weight: var(--font-small-regular-weight);
455
+ line-height: var(--font-small-regular-line-height);
456
+ color: var(--text-primary);
457
+ }
458
+ .snacky-field__input::placeholder {
459
+ color: var(--text-placeholder);
460
+ }
461
+ .snacky-field__input:disabled {
462
+ cursor: not-allowed;
463
+ color: var(--text-disabled);
464
+ }
465
+ .snacky-field__icon {
466
+ display: inline-flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ flex-shrink: 0;
470
+ width: 20px;
471
+ height: 20px;
472
+ color: var(--icon-secondary);
473
+ }
474
+ .snacky-field__icon--button {
475
+ background: none;
476
+ border: none;
477
+ padding: 0;
478
+ cursor: pointer;
479
+ color: var(--icon-secondary);
480
+ }
481
+ .snacky-field-label {
482
+ display: block;
483
+ margin-bottom: var(--spacing-4);
484
+ font-family: var(--font-small-regular-family);
485
+ font-size: var(--font-small-regular-size);
486
+ color: var(--text-primary);
487
+ }
488
+ .snacky-field-error {
489
+ display: block;
490
+ margin-top: var(--spacing-4);
491
+ font-family: var(--font-caption-regular-family);
492
+ font-size: var(--font-caption-regular-size);
493
+ color: var(--text-error);
494
+ }
495
+
496
+ /* src/components/Input/SearchField.css */
497
+ .snacky-search {
498
+ display: flex;
499
+ align-items: center;
500
+ gap: var(--spacing-12);
501
+ width: 260px;
502
+ height: 40px;
503
+ padding: var(--spacing-8) var(--spacing-12);
504
+ background: var(--bg-surface-variant);
505
+ border: 1px solid transparent;
506
+ border-radius: var(--radius-field);
507
+ box-sizing: border-box;
508
+ transition: border-color 0.12s ease, width 0.15s ease;
509
+ }
510
+ .snacky-search:focus-within {
511
+ width: 312px;
512
+ border-color: var(--border-input-active);
513
+ }
514
+ .snacky-search__input {
515
+ flex: 1;
516
+ min-width: 0;
517
+ border: none;
518
+ outline: none;
519
+ background: transparent;
520
+ font-family: var(--font-small-regular-family);
521
+ font-size: var(--font-small-regular-size);
522
+ color: var(--text-primary);
523
+ }
524
+ .snacky-search__input::placeholder {
525
+ color: var(--text-placeholder);
526
+ }
527
+ .snacky-search__icon {
528
+ display: inline-flex;
529
+ flex-shrink: 0;
530
+ width: 16px;
531
+ height: 16px;
532
+ color: var(--icon-secondary);
533
+ }
534
+ .snacky-search__clear {
535
+ display: inline-flex;
536
+ flex-shrink: 0;
537
+ width: 16px;
538
+ height: 16px;
539
+ background: none;
540
+ border: none;
541
+ padding: 0;
542
+ cursor: pointer;
543
+ color: var(--icon-secondary);
544
+ }
545
+
546
+ /* src/components/Input/OtpField.css */
547
+ .snacky-otp {
548
+ display: flex;
549
+ gap: var(--spacing-4);
550
+ }
551
+ .snacky-otp__cell {
552
+ width: 48px;
553
+ height: 48px;
554
+ padding: 0;
555
+ box-sizing: border-box;
556
+ text-align: center;
557
+ border: 1px solid transparent;
558
+ border-radius: var(--radius-field);
559
+ background: var(--bg-surface-variant);
560
+ font-family: var(--font-h3-bold-family);
561
+ font-size: var(--font-h3-bold-size);
562
+ font-weight: var(--font-h3-bold-weight);
563
+ line-height: 46px;
564
+ letter-spacing: 0.16px;
565
+ color: var(--text-primary);
566
+ outline: none;
567
+ transition: border-color 0.1s ease;
568
+ }
569
+ .snacky-otp__cell:focus {
570
+ border-color: var(--border-input-active);
571
+ }
572
+
573
+ /* src/components/Input/CopyField.css */
574
+ .snacky-copy {
575
+ display: flex;
576
+ align-items: center;
577
+ justify-content: space-between;
578
+ width: 100%;
579
+ height: 48px;
580
+ padding: var(--spacing-12);
581
+ background: var(--bg-surface-variant);
582
+ border-radius: var(--radius-field);
583
+ box-sizing: border-box;
584
+ }
585
+ .snacky-copy__value {
586
+ font-family: var(--font-body-semibold-family);
587
+ font-size: var(--font-body-semibold-size);
588
+ font-weight: var(--font-body-semibold-weight);
589
+ color: var(--text-primary);
590
+ overflow: hidden;
591
+ text-overflow: ellipsis;
592
+ white-space: nowrap;
593
+ }
594
+ .snacky-copy__action {
595
+ flex-shrink: 0;
596
+ margin-left: var(--spacing-12);
597
+ background: none;
598
+ border: none;
599
+ padding: 0;
600
+ cursor: pointer;
601
+ font-family: var(--font-small-bold-family);
602
+ font-size: var(--font-small-bold-size);
603
+ font-weight: var(--font-small-bold-weight);
604
+ color: var(--text-link);
605
+ }
606
+ .snacky-copy__action--copied {
607
+ color: var(--text-secondary);
608
+ }
609
+
610
+ /* src/components/Input/ChatInput.css */
611
+ .snacky-chatfield {
612
+ display: flex;
613
+ align-items: center;
614
+ gap: var(--gap-text-icon);
615
+ width: 100%;
616
+ height: 72px;
617
+ padding: var(--spacing-12);
618
+ background: var(--bg-surface);
619
+ border: 1px solid var(--border-input-default);
620
+ border-radius: var(--radius-field);
621
+ box-sizing: border-box;
622
+ transition: border-color 0.12s ease;
623
+ }
624
+ .snacky-chatfield:focus-within {
625
+ border-color: var(--border-input-active);
626
+ }
627
+ .snacky-chatfield__input {
628
+ flex: 1;
629
+ min-width: 0;
630
+ border: none;
631
+ outline: none;
632
+ background: transparent;
633
+ font-family: var(--font-small-regular-family);
634
+ font-size: var(--font-small-regular-size);
635
+ color: var(--text-primary);
636
+ }
637
+ .snacky-chatfield__input::placeholder {
638
+ color: var(--text-placeholder);
639
+ }
640
+ .snacky-chatfield__send {
641
+ display: inline-flex;
642
+ align-items: center;
643
+ justify-content: center;
644
+ flex-shrink: 0;
645
+ width: 48px;
646
+ height: 48px;
647
+ border: none;
648
+ border-radius: var(--radius-full);
649
+ background: transparent;
650
+ color: var(--icon-secondary);
651
+ cursor: default;
652
+ transition: background-color 0.15s ease, color 0.15s ease;
653
+ }
654
+ .snacky-chatfield__send--active {
655
+ background: var(--bg-action-primary);
656
+ color: var(--text-on-action-primary);
657
+ cursor: pointer;
658
+ }
659
+ .snacky-chatfield__send--active:hover {
660
+ background: var(--bg-action-primary-hover);
661
+ }
662
+
663
+ /* src/components/Input/AddressResult.css */
664
+ .snacky-address-result {
665
+ display: flex;
666
+ align-items: flex-start;
667
+ gap: var(--gap-text-icon);
668
+ width: 100%;
669
+ padding: var(--spacing-12) var(--spacing-8);
670
+ background: var(--bg-surface);
671
+ border: 1px solid var(--border-input-default);
672
+ border-radius: var(--radius-field);
673
+ box-sizing: border-box;
674
+ cursor: pointer;
675
+ text-align: left;
676
+ }
677
+ .snacky-address-result__icon {
678
+ display: inline-flex;
679
+ flex-shrink: 0;
680
+ width: 20px;
681
+ height: 20px;
682
+ color: var(--icon-secondary);
683
+ margin-top: 2px;
684
+ }
685
+ .snacky-address-result__title {
686
+ margin: 0;
687
+ font-family: var(--font-small-bold-family);
688
+ font-size: var(--font-small-bold-size);
689
+ font-weight: var(--font-small-bold-weight);
690
+ color: var(--text-primary);
691
+ }
692
+ .snacky-address-result__subtitle {
693
+ margin: 0;
694
+ font-family: var(--font-small-regular-family);
695
+ font-size: var(--font-small-regular-size);
696
+ color: var(--text-primary);
697
+ overflow: hidden;
698
+ text-overflow: ellipsis;
699
+ white-space: nowrap;
700
+ }
701
+
702
+ /* src/components/Chips/Chips.css */
703
+ .snacky-chip {
704
+ display: inline-flex;
705
+ align-items: center;
706
+ gap: var(--spacing-4);
707
+ padding: var(--spacing-8);
708
+ border-radius: var(--radius-full);
709
+ background: var(--bg-surface);
710
+ border: 1px solid var(--border-main);
711
+ font-family: var(--font-small-regular-family);
712
+ font-size: var(--font-small-regular-size);
713
+ color: var(--text-primary);
714
+ cursor: pointer;
715
+ white-space: nowrap;
716
+ }
717
+ .snacky-chip--selected {
718
+ background: var(--bg-surface-highlight);
719
+ border-color: var(--color-primary-500);
720
+ }
721
+ .snacky-chip__thumb {
722
+ width: 24px;
723
+ height: 24px;
724
+ flex-shrink: 0;
725
+ object-fit: contain;
726
+ }
727
+
728
+ /* src/components/RadioButton/RadioButton.css */
729
+ .snacky-radio-option {
730
+ display: inline-flex;
731
+ align-items: center;
732
+ gap: var(--gap-icon-label);
733
+ cursor: pointer;
734
+ font-family: var(--font-small-regular-family);
735
+ font-size: var(--font-small-regular-size);
736
+ color: var(--text-primary);
737
+ }
738
+ .snacky-radio-option--disabled {
739
+ cursor: not-allowed;
740
+ }
741
+ .snacky-radio {
742
+ appearance: none;
743
+ width: 24px;
744
+ height: 24px;
745
+ margin: 0;
746
+ flex-shrink: 0;
747
+ box-sizing: border-box;
748
+ border-radius: 999px;
749
+ border: 1.5px solid var(--border-main);
750
+ background: transparent;
751
+ cursor: pointer;
752
+ position: relative;
753
+ }
754
+ .snacky-radio:checked {
755
+ border-color: var(--color-primary-500);
756
+ }
757
+ .snacky-radio:checked::after {
758
+ content: "";
759
+ position: absolute;
760
+ inset: 0;
761
+ margin: auto;
762
+ width: 12px;
763
+ height: 12px;
764
+ border-radius: 999px;
765
+ background: var(--color-primary-500);
766
+ }
767
+ .snacky-radio:disabled {
768
+ cursor: not-allowed;
769
+ border-color: var(--border-main);
770
+ background: var(--bg-surface);
771
+ }
772
+ .snacky-radio:disabled::after {
773
+ display: none;
774
+ }
775
+
776
+ /* src/components/Checkbox/Checkbox.css */
777
+ .snacky-checkbox-option {
778
+ display: inline-flex;
779
+ align-items: center;
780
+ gap: var(--gap-icon-label);
781
+ cursor: pointer;
782
+ font-family: var(--font-small-regular-family);
783
+ font-size: var(--font-small-regular-size);
784
+ color: var(--text-primary);
785
+ }
786
+ .snacky-checkbox {
787
+ appearance: none;
788
+ width: 24px;
789
+ height: 24px;
790
+ margin: 0;
791
+ flex-shrink: 0;
792
+ border: none;
793
+ border-radius: var(--radius-field);
794
+ cursor: pointer;
795
+ position: relative;
796
+ background: var(--icon-secondary);
797
+ }
798
+ .snacky-checkbox:checked {
799
+ background: var(--color-primary-500);
800
+ }
801
+ .snacky-checkbox:checked::after {
802
+ content: "";
803
+ position: absolute;
804
+ inset: 3px;
805
+ background: var(--text-primary);
806
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
807
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
808
+ }
809
+
810
+ /* src/components/Toggle/Toggle.css */
811
+ .snacky-toggle {
812
+ position: relative;
813
+ display: inline-block;
814
+ width: 56px;
815
+ height: 32px;
816
+ margin: 0;
817
+ padding: 0;
818
+ border: none;
819
+ background: transparent;
820
+ cursor: pointer;
821
+ appearance: none;
822
+ }
823
+ .snacky-toggle:disabled {
824
+ cursor: not-allowed;
825
+ opacity: 0.5;
826
+ }
827
+ .snacky-toggle__track {
828
+ position: absolute;
829
+ left: 0;
830
+ top: 4px;
831
+ width: 56px;
832
+ height: 24px;
833
+ border-radius: 12px;
834
+ background: var(--color-neutral-200);
835
+ transition: background-color 0.2s ease;
836
+ }
837
+ .snacky-toggle--on .snacky-toggle__track {
838
+ background: var(--bg-surface-highlight);
839
+ }
840
+ .snacky-toggle__thumb {
841
+ position: absolute;
842
+ top: 0;
843
+ left: 0;
844
+ width: 32px;
845
+ height: 32px;
846
+ border-radius: 999px;
847
+ background: var(--color-neutral-500);
848
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
849
+ transition: left 0.2s ease, background-color 0.2s ease;
850
+ }
851
+ .snacky-toggle--on .snacky-toggle__thumb {
852
+ left: 24px;
853
+ background: var(--color-primary-500);
854
+ }
855
+
856
+ /* src/components/Navbar/Navbar.css */
857
+ .snacky-navbar {
858
+ display: flex;
859
+ width: 100%;
860
+ background: var(--bg-surface);
861
+ box-shadow: var(--shadow-top);
862
+ }
863
+ .snacky-navbar__item {
864
+ flex: 1;
865
+ display: flex;
866
+ flex-direction: column;
867
+ align-items: center;
868
+ gap: var(--gap-icon-label);
869
+ padding: var(--spacing-12) 0;
870
+ background: none;
871
+ border: none;
872
+ cursor: pointer;
873
+ font-family: var(--font-small-regular-family);
874
+ font-size: var(--font-small-regular-size);
875
+ color: var(--text-secondary);
876
+ }
877
+ .snacky-navbar__item--active {
878
+ font-family: var(--font-small-bold-family);
879
+ font-weight: var(--font-small-bold-weight);
880
+ color: var(--text-primary);
881
+ }
882
+ .snacky-navbar__icon {
883
+ display: inline-flex;
884
+ width: 20px;
885
+ height: 20px;
886
+ color: var(--icon-secondary);
887
+ }
888
+ .snacky-navbar__item--active .snacky-navbar__icon {
889
+ color: var(--color-primary-500);
890
+ }
891
+
892
+ /* src/components/Tab/Tab.css */
893
+ .snacky-tabrow {
894
+ display: flex;
895
+ gap: var(--spacing-24);
896
+ border-bottom: 1px solid var(--border-main);
897
+ }
898
+ .snacky-tab {
899
+ background: none;
900
+ border: none;
901
+ border-bottom: 2px solid transparent;
902
+ margin-bottom: -1px;
903
+ padding: 0 0 var(--spacing-12) 0;
904
+ cursor: pointer;
905
+ font-family: var(--font-body-regular-family);
906
+ font-size: 14px;
907
+ line-height: var(--font-body-regular-line-height);
908
+ color: var(--text-primary);
909
+ transition: color 0.15s ease;
910
+ }
911
+ .snacky-tab--active {
912
+ font-family: var(--font-body-semibold-family);
913
+ font-weight: var(--font-body-semibold-weight);
914
+ color: var(--color-primary-500);
915
+ border-bottom-color: var(--color-primary-500);
916
+ }
917
+
918
+ /* src/components/Header/Header.css */
919
+ .snacky-header {
920
+ display: flex;
921
+ align-items: center;
922
+ width: 100%;
923
+ box-sizing: border-box;
924
+ padding: var(--spacing-16) var(--spacing-8);
925
+ background: var(--bg-surface);
926
+ }
927
+ .snacky-header__icon-btn {
928
+ display: inline-flex;
929
+ align-items: center;
930
+ justify-content: center;
931
+ flex-shrink: 0;
932
+ width: 40px;
933
+ height: 40px;
934
+ padding: 0;
935
+ border: none;
936
+ border-radius: var(--radius-full);
937
+ background: transparent;
938
+ color: var(--text-primary);
939
+ cursor: pointer;
940
+ }
941
+ .snacky-header__title-row {
942
+ flex: 1;
943
+ min-width: 0;
944
+ display: flex;
945
+ justify-content: center;
946
+ }
947
+ .snacky-header__title-row--balance {
948
+ padding-right: 40px;
949
+ }
950
+ .snacky-header__title {
951
+ font-family: var(--font-h3-bold-family);
952
+ font-weight: var(--font-h3-bold-weight);
953
+ font-size: var(--font-h3-bold-size);
954
+ line-height: var(--font-h3-bold-line-height);
955
+ letter-spacing: var(--font-h3-bold-letter-spacing);
956
+ color: var(--text-primary);
957
+ white-space: nowrap;
958
+ overflow: hidden;
959
+ text-overflow: ellipsis;
960
+ }
961
+
962
+ /* src/components/Banner/Banner.css */
963
+ .snacky-banner-hero {
964
+ display: block;
965
+ width: 100%;
966
+ border-radius: var(--radius-field);
967
+ box-shadow: var(--shadow-md);
968
+ object-fit: cover;
969
+ }
970
+ .snacky-banner-square {
971
+ display: block;
972
+ width: 100%;
973
+ aspect-ratio: 360 / 334;
974
+ border-radius: var(--radius-bubble);
975
+ object-fit: cover;
976
+ }
977
+ .snacky-banner-full {
978
+ display: block;
979
+ width: 100%;
980
+ aspect-ratio: 360 / 176;
981
+ object-fit: cover;
982
+ }
983
+ .snacky-banner-point-balance {
984
+ display: flex;
985
+ align-items: center;
986
+ justify-content: space-between;
987
+ width: 100%;
988
+ padding: var(--spacing-8) var(--spacing-16);
989
+ gap: var(--spacing-12);
990
+ background: var(--bg-surface-highlight);
991
+ border: 1px solid var(--color-primary-500);
992
+ border-radius: var(--radius-card);
993
+ box-sizing: border-box;
994
+ }
995
+ .snacky-banner-point-balance__item {
996
+ display: flex;
997
+ align-items: center;
998
+ gap: var(--gap-icon-label);
999
+ }
1000
+ .snacky-banner-point-balance__icon {
1001
+ width: 24px;
1002
+ height: 24px;
1003
+ flex-shrink: 0;
1004
+ }
1005
+ .snacky-banner-point-balance__label {
1006
+ margin: 0;
1007
+ font-family: var(--font-small-regular-family);
1008
+ font-size: var(--font-small-regular-size);
1009
+ color: var(--text-primary);
1010
+ }
1011
+ .snacky-banner-point-balance__value {
1012
+ margin: 0;
1013
+ font-family: var(--font-small-bold-family);
1014
+ font-weight: var(--font-small-bold-weight);
1015
+ color: var(--text-primary);
1016
+ }
1017
+ .snacky-banner-point-balance__divider {
1018
+ width: 1px;
1019
+ align-self: stretch;
1020
+ background: var(--color-primary-500);
1021
+ }
1022
+ .snacky-banner-alert {
1023
+ display: flex;
1024
+ align-items: center;
1025
+ justify-content: space-between;
1026
+ width: 100%;
1027
+ height: 40px;
1028
+ padding: var(--spacing-8) var(--spacing-24);
1029
+ gap: var(--spacing-4);
1030
+ background: var(--bg-surface-accent);
1031
+ box-sizing: border-box;
1032
+ }
1033
+ .snacky-banner-alert__message {
1034
+ margin: 0;
1035
+ font-family: var(--font-body-regular-family);
1036
+ font-size: var(--font-body-regular-size);
1037
+ color: var(--text-inverse);
1038
+ }
1039
+ .snacky-banner-alert__countdown {
1040
+ margin: 0;
1041
+ font-family: var(--font-body-semibold-family);
1042
+ font-weight: var(--font-body-semibold-weight);
1043
+ color: var(--text-inverse);
1044
+ }
1045
+
1046
+ /* src/components/Badge/Badge.css */
1047
+ .snacky-badge-wrap {
1048
+ position: relative;
1049
+ display: inline-flex;
1050
+ }
1051
+ .snacky-badge-notification {
1052
+ position: absolute;
1053
+ top: -8px;
1054
+ right: -10px;
1055
+ min-width: 20px;
1056
+ height: 19px;
1057
+ padding: var(--spacing-2) var(--spacing-4);
1058
+ border-radius: 999px;
1059
+ background: var(--bg-surface-accent);
1060
+ color: var(--text-inverse);
1061
+ font-family: var(--font-caption-semibold-family);
1062
+ font-size: var(--font-caption-semibold-size);
1063
+ font-weight: var(--font-caption-semibold-weight);
1064
+ display: flex;
1065
+ align-items: center;
1066
+ justify-content: center;
1067
+ line-height: 1;
1068
+ }
1069
+ .snacky-discount-tag {
1070
+ display: inline-flex;
1071
+ align-items: center;
1072
+ justify-content: center;
1073
+ padding: var(--spacing-2) var(--spacing-4);
1074
+ border-radius: var(--radius-tag);
1075
+ background: var(--bg-surface-accent);
1076
+ color: var(--text-inverse);
1077
+ font-family: var(--font-caption-semibold-family);
1078
+ font-size: var(--font-caption-semibold-size);
1079
+ font-weight: var(--font-caption-semibold-weight);
1080
+ }
1081
+ .snacky-soldout-badge {
1082
+ display: inline-flex;
1083
+ align-items: center;
1084
+ justify-content: center;
1085
+ padding: var(--spacing-12) var(--spacing-8);
1086
+ border-radius: 999px;
1087
+ background: rgba(51, 51, 51, 0.8);
1088
+ color: var(--text-inverse);
1089
+ font-family: var(--font-small-regular-family);
1090
+ font-size: var(--font-small-regular-size);
1091
+ }
1092
+ .snacky-variant-badge {
1093
+ display: inline-flex;
1094
+ align-items: center;
1095
+ padding: var(--spacing-8);
1096
+ border-radius: var(--radius-field);
1097
+ background: var(--bg-surface-highlight);
1098
+ border: 1px solid var(--color-primary-500);
1099
+ color: var(--text-primary);
1100
+ font-family: var(--font-caption-regular-family);
1101
+ font-size: var(--font-caption-regular-size);
1102
+ }
1103
+
1104
+ /* src/components/Callout/Callout.css */
1105
+ .snacky-callout {
1106
+ display: inline-flex;
1107
+ flex-direction: column;
1108
+ gap: var(--spacing-4);
1109
+ max-width: 200px;
1110
+ padding: var(--spacing-12) var(--spacing-8);
1111
+ border-radius: var(--radius-bubble);
1112
+ font-family: var(--font-body-regular-family);
1113
+ font-size: var(--font-body-regular-size);
1114
+ color: var(--text-primary);
1115
+ }
1116
+ .snacky-callout--received {
1117
+ align-self: flex-start;
1118
+ background: var(--bg-surface);
1119
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
1120
+ }
1121
+ .snacky-callout--sent,
1122
+ .snacky-callout--pending {
1123
+ align-self: flex-end;
1124
+ background: var(--color-primary-500);
1125
+ }
1126
+ .snacky-callout__message {
1127
+ margin: 0;
1128
+ width: 100%;
1129
+ }
1130
+ .snacky-callout__meta {
1131
+ display: flex;
1132
+ align-items: center;
1133
+ justify-content: flex-end;
1134
+ gap: var(--spacing-4);
1135
+ width: 100%;
1136
+ font-family: var(--font-caption-regular-family);
1137
+ font-size: var(--font-caption-regular-size);
1138
+ color: var(--text-primary);
1139
+ text-align: right;
1140
+ }
1141
+ .snacky-callout__meta-icon {
1142
+ width: 16px;
1143
+ height: 16px;
1144
+ display: inline-flex;
1145
+ }
1146
+
1147
+ /* src/components/List/List.css */
1148
+ .snacky-order-item {
1149
+ display: flex;
1150
+ flex-direction: column;
1151
+ gap: var(--spacing-8);
1152
+ width: 100%;
1153
+ padding: var(--spacing-8) var(--spacing-12);
1154
+ background: var(--bg-surface);
1155
+ border-radius: var(--radius-field);
1156
+ box-shadow: var(--shadow-md);
1157
+ box-sizing: border-box;
1158
+ text-align: left;
1159
+ }
1160
+ .snacky-order-item__top {
1161
+ display: flex;
1162
+ gap: var(--spacing-8);
1163
+ width: 100%;
1164
+ }
1165
+ .snacky-order-item__thumb-box {
1166
+ width: 56px;
1167
+ height: 56px;
1168
+ flex-shrink: 0;
1169
+ border-radius: var(--radius-field);
1170
+ background: #f4f4f5;
1171
+ display: flex;
1172
+ align-items: center;
1173
+ justify-content: center;
1174
+ overflow: hidden;
1175
+ }
1176
+ .snacky-order-item__thumb {
1177
+ width: 48px;
1178
+ height: 48px;
1179
+ object-fit: contain;
1180
+ }
1181
+ .snacky-order-item__info {
1182
+ flex: 1;
1183
+ min-width: 0;
1184
+ display: flex;
1185
+ flex-direction: column;
1186
+ }
1187
+ .snacky-order-item__status {
1188
+ font-family: var(--font-small-semibold-family);
1189
+ font-weight: var(--font-small-semibold-weight);
1190
+ font-size: var(--font-small-semibold-size);
1191
+ line-height: 24px;
1192
+ color: var(--text-primary);
1193
+ }
1194
+ .snacky-order-item__status--cancelled {
1195
+ color: var(--text-error);
1196
+ }
1197
+ .snacky-order-item__name {
1198
+ font-family: var(--font-small-regular-family);
1199
+ font-size: var(--font-small-regular-size);
1200
+ line-height: 24px;
1201
+ color: var(--text-primary);
1202
+ overflow: hidden;
1203
+ text-overflow: ellipsis;
1204
+ white-space: nowrap;
1205
+ }
1206
+ .snacky-order-item__details {
1207
+ display: flex;
1208
+ align-items: center;
1209
+ gap: var(--spacing-8);
1210
+ width: 100%;
1211
+ }
1212
+ .snacky-order-item__count {
1213
+ flex: 1;
1214
+ min-width: 0;
1215
+ font-family: var(--font-small-regular-family);
1216
+ font-size: var(--font-small-regular-size);
1217
+ line-height: 24px;
1218
+ color: var(--text-secondary);
1219
+ }
1220
+ .snacky-order-item__total {
1221
+ flex: 1;
1222
+ font-family: var(--font-small-regular-family);
1223
+ font-size: var(--font-small-regular-size);
1224
+ line-height: 24px;
1225
+ color: var(--text-primary);
1226
+ text-align: right;
1227
+ white-space: nowrap;
1228
+ }
1229
+ .snacky-order-item__total b {
1230
+ font-weight: var(--font-small-bold-weight);
1231
+ letter-spacing: 0.12px;
1232
+ }
1233
+ .snacky-order-item__total--cod {
1234
+ flex: 0 1 auto;
1235
+ }
1236
+ .snacky-order-item__cod {
1237
+ flex-shrink: 0;
1238
+ display: inline-flex;
1239
+ align-items: center;
1240
+ justify-content: center;
1241
+ padding: 0 var(--spacing-8);
1242
+ border-radius: var(--radius-field);
1243
+ border: 1px solid var(--border-main);
1244
+ background: var(--bg-surface);
1245
+ font-family: var(--font-small-bold-family);
1246
+ font-weight: var(--font-small-bold-weight);
1247
+ font-size: var(--font-small-bold-size);
1248
+ line-height: 24px;
1249
+ letter-spacing: 0.12px;
1250
+ color: var(--text-secondary);
1251
+ }
1252
+ .snacky-order-item__deadline {
1253
+ width: 100%;
1254
+ background: var(--bg-surface-highlight);
1255
+ text-align: center;
1256
+ font-family: var(--font-small-regular-family);
1257
+ font-size: var(--font-small-regular-size);
1258
+ line-height: 24px;
1259
+ color: var(--text-primary);
1260
+ }
1261
+ .snacky-order-item__action-row {
1262
+ display: flex;
1263
+ justify-content: flex-end;
1264
+ width: 100%;
1265
+ }
1266
+ .snacky-notif-item {
1267
+ display: flex;
1268
+ flex-direction: column;
1269
+ gap: 0;
1270
+ width: 100%;
1271
+ box-sizing: border-box;
1272
+ padding: var(--spacing-8) var(--spacing-12);
1273
+ background: var(--bg-surface);
1274
+ border: 1px solid var(--border-main);
1275
+ border-radius: var(--radius-field);
1276
+ text-align: left;
1277
+ }
1278
+ .snacky-notif-item--unread {
1279
+ background: var(--bg-surface-highlight);
1280
+ }
1281
+ .snacky-notif-item__title {
1282
+ font-family: var(--font-small-semibold-family);
1283
+ font-weight: var(--font-small-semibold-weight);
1284
+ font-size: var(--font-small-semibold-size);
1285
+ line-height: 24px;
1286
+ color: var(--text-primary);
1287
+ }
1288
+ .snacky-notif-item__message {
1289
+ font-family: var(--font-small-regular-family);
1290
+ font-size: var(--font-small-regular-size);
1291
+ line-height: 24px;
1292
+ color: var(--text-primary);
1293
+ overflow: hidden;
1294
+ text-overflow: ellipsis;
1295
+ white-space: nowrap;
1296
+ }
1297
+
1298
+ /* src/components/Accordion/Accordion.css */
1299
+ .snacky-accordion {
1300
+ width: 100%;
1301
+ background: var(--bg-surface);
1302
+ border-radius: var(--radius-field);
1303
+ box-shadow: var(--shadow-md);
1304
+ overflow: hidden;
1305
+ }
1306
+ .snacky-accordion--bordered {
1307
+ border: 1px solid var(--border-main);
1308
+ }
1309
+ .snacky-accordion__header {
1310
+ display: flex;
1311
+ align-items: center;
1312
+ gap: var(--gap-text-icon);
1313
+ width: 100%;
1314
+ padding: var(--spacing-12) var(--spacing-8);
1315
+ background: none;
1316
+ border: none;
1317
+ cursor: pointer;
1318
+ text-align: left;
1319
+ color: var(--text-primary);
1320
+ }
1321
+ .snacky-accordion__icon {
1322
+ width: 24px;
1323
+ height: 24px;
1324
+ flex-shrink: 0;
1325
+ }
1326
+ .snacky-accordion__title {
1327
+ flex: 1;
1328
+ font-family: var(--font-body-semibold-family);
1329
+ font-size: 14px;
1330
+ font-weight: var(--font-body-semibold-weight);
1331
+ }
1332
+ .snacky-accordion--icon .snacky-accordion__title {
1333
+ font-family: var(--font-small-semibold-family);
1334
+ font-size: var(--font-small-semibold-size);
1335
+ font-weight: var(--font-small-semibold-weight);
1336
+ }
1337
+ .snacky-accordion__chevron {
1338
+ width: 20px;
1339
+ height: 20px;
1340
+ flex-shrink: 0;
1341
+ transition: transform 0.15s ease;
1342
+ }
1343
+ .snacky-accordion__chevron--open {
1344
+ transform: rotate(180deg);
1345
+ }
1346
+ .snacky-accordion__panel {
1347
+ padding: 0 var(--spacing-8) var(--spacing-12);
1348
+ font-family: var(--font-small-regular-family);
1349
+ font-size: var(--font-small-regular-size);
1350
+ color: var(--text-primary);
1351
+ }
1352
+
1353
+ /* src/components/Modal/BottomSheet.css */
1354
+ .snacky-sheet-overlay {
1355
+ position: fixed;
1356
+ inset: 0;
1357
+ background: var(--bg-overlay-dim);
1358
+ display: flex;
1359
+ align-items: flex-end;
1360
+ justify-content: center;
1361
+ z-index: 1000;
1362
+ }
1363
+ .snacky-sheet {
1364
+ width: 100%;
1365
+ max-width: 480px;
1366
+ max-height: 90vh;
1367
+ overflow-y: auto;
1368
+ background: var(--bg-surface);
1369
+ border-radius: var(--radius-sheet-top) var(--radius-sheet-top) 0 0;
1370
+ padding: var(--spacing-24);
1371
+ box-sizing: border-box;
1372
+ display: flex;
1373
+ flex-direction: column;
1374
+ gap: var(--gap-layout-block);
1375
+ }
1376
+ .snacky-sheet__handle {
1377
+ width: 36px;
1378
+ height: 4px;
1379
+ border-radius: 999px;
1380
+ background: var(--color-neutral-200);
1381
+ margin: 0 auto var(--spacing-8);
1382
+ }
1383
+
1384
+ /* src/components/Section/Section.css */
1385
+ .snacky-section {
1386
+ width: 100%;
1387
+ padding: var(--spacing-16) var(--spacing-24);
1388
+ background: var(--bg-surface);
1389
+ box-sizing: border-box;
1390
+ display: flex;
1391
+ flex-direction: column;
1392
+ gap: var(--gap-layout-block);
1393
+ }
1394
+ .snacky-section__header {
1395
+ display: flex;
1396
+ align-items: center;
1397
+ justify-content: space-between;
1398
+ }
1399
+ .snacky-section__title {
1400
+ margin: 0;
1401
+ font-family: var(--font-h3-bold-family);
1402
+ font-size: var(--font-h3-bold-size);
1403
+ font-weight: var(--font-h3-bold-weight);
1404
+ color: var(--text-primary);
1405
+ }
1406
+ .snacky-section__action {
1407
+ display: inline-flex;
1408
+ align-items: center;
1409
+ justify-content: center;
1410
+ flex-shrink: 0;
1411
+ width: 24px;
1412
+ height: 24px;
1413
+ padding: var(--spacing-4);
1414
+ border: none;
1415
+ border-radius: var(--radius-full);
1416
+ background: var(--bg-action-primary);
1417
+ color: var(--text-on-action-primary);
1418
+ cursor: pointer;
1419
+ }
1420
+ .snacky-section__action:hover {
1421
+ background: var(--bg-action-primary-hover);
1422
+ }
1423
+
1424
+ /* src/components/Avatar/Avatar.css */
1425
+ .snacky-avatar {
1426
+ display: block;
1427
+ border-radius: 999px;
1428
+ object-fit: cover;
1429
+ flex-shrink: 0;
1430
+ }
1431
+ .snacky-avatar--sm {
1432
+ width: 32px;
1433
+ height: 32px;
1434
+ }
1435
+ .snacky-avatar--md {
1436
+ width: 56px;
1437
+ height: 56px;
1438
+ }
1439
+ .snacky-avatar--lg {
1440
+ width: 72px;
1441
+ height: 72px;
1442
+ }
1443
+
1444
+ /* src/components/Illustration/Illustration.css */
1445
+ .snacky-illustration {
1446
+ display: block;
1447
+ max-width: 100%;
1448
+ height: auto;
1449
+ }
1450
+
1451
+ /* src/components/ProductImage/ProductImage.css */
1452
+ .snacky-product-image-wrap {
1453
+ position: relative;
1454
+ display: inline-flex;
1455
+ flex-shrink: 0;
1456
+ }
1457
+ .snacky-product-image {
1458
+ display: block;
1459
+ object-fit: contain;
1460
+ }
1461
+ .snacky-product-image--card,
1462
+ .snacky-product-image--details {
1463
+ width: 100%;
1464
+ height: 100%;
1465
+ background: transparent;
1466
+ }
1467
+ .snacky-product-image-wrap--card {
1468
+ width: 128px;
1469
+ height: 128px;
1470
+ }
1471
+ .snacky-product-image-wrap--details {
1472
+ width: 200px;
1473
+ height: 200px;
1474
+ }
1475
+ .snacky-product-image-wrap--list {
1476
+ width: 56px;
1477
+ height: 56px;
1478
+ padding: var(--spacing-4);
1479
+ border-radius: var(--radius-field);
1480
+ box-sizing: border-box;
1481
+ }
1482
+ .snacky-product-image-wrap--review {
1483
+ width: 48px;
1484
+ height: 48px;
1485
+ padding: var(--spacing-4);
1486
+ border: 1px solid var(--border-main);
1487
+ border-radius: var(--radius-field);
1488
+ box-sizing: border-box;
1489
+ }
1490
+ .snacky-product-image-wrap--variant {
1491
+ width: 88px;
1492
+ height: 88px;
1493
+ padding: var(--spacing-4);
1494
+ border: 1px solid var(--border-main);
1495
+ border-radius: var(--radius-field);
1496
+ box-sizing: border-box;
1497
+ }
1498
+ .snacky-product-image-wrap--accordion-modal {
1499
+ width: 24px;
1500
+ height: 24px;
1501
+ }
1502
+ .snacky-product-image-sold-overlay {
1503
+ position: absolute;
1504
+ inset: 0;
1505
+ display: flex;
1506
+ align-items: center;
1507
+ justify-content: center;
1508
+ background: rgba(255, 255, 255, 0.46);
1509
+ border-radius: inherit;
1510
+ }
1511
+ .snacky-product-image-sold-label {
1512
+ padding: var(--spacing-12) 7px;
1513
+ border-radius: 999px;
1514
+ background: rgba(51, 51, 51, 0.8);
1515
+ color: var(--text-inverse);
1516
+ font-family: var(--font-small-regular-family);
1517
+ font-size: var(--font-small-regular-size);
1518
+ }
1519
+
1520
+ /* src/components/ProductCard/ProductCard.css */
1521
+ .snacky-product-card {
1522
+ position: relative;
1523
+ display: flex;
1524
+ flex-direction: column;
1525
+ gap: var(--spacing-12);
1526
+ background: var(--bg-surface);
1527
+ text-align: left;
1528
+ border: none;
1529
+ cursor: pointer;
1530
+ font-family: inherit;
1531
+ }
1532
+ .snacky-product-card--list {
1533
+ width: 152px;
1534
+ padding: var(--spacing-12) var(--spacing-8);
1535
+ border-radius: var(--radius-field);
1536
+ box-shadow: var(--shadow-lg);
1537
+ }
1538
+ .snacky-product-card--details {
1539
+ width: 100%;
1540
+ padding: var(--spacing-12) 0 var(--spacing-16);
1541
+ gap: var(--spacing-8);
1542
+ }
1543
+ .snacky-product-card__image-wrap {
1544
+ position: relative;
1545
+ }
1546
+ .snacky-product-card--list .snacky-product-card__image-wrap {
1547
+ width: 128px;
1548
+ height: 128px;
1549
+ }
1550
+ .snacky-product-card--details .snacky-product-card__image-wrap {
1551
+ width: 200px;
1552
+ height: 200px;
1553
+ margin: 0 auto;
1554
+ }
1555
+ .snacky-product-card__image {
1556
+ width: 100%;
1557
+ height: 100%;
1558
+ object-fit: contain;
1559
+ }
1560
+ .snacky-product-card__discount {
1561
+ position: absolute;
1562
+ top: 0;
1563
+ right: 0;
1564
+ }
1565
+ .snacky-product-card__name {
1566
+ margin: 0;
1567
+ font-family: var(--font-small-regular-family);
1568
+ font-size: var(--font-small-regular-size);
1569
+ color: var(--text-primary);
1570
+ }
1571
+ .snacky-product-card--details .snacky-product-card__name {
1572
+ font-size: 14px;
1573
+ }
1574
+ .snacky-product-card__price-row {
1575
+ display: flex;
1576
+ align-items: baseline;
1577
+ gap: var(--spacing-4);
1578
+ }
1579
+ .snacky-product-card__price {
1580
+ font-family: var(--font-small-bold-family);
1581
+ font-weight: var(--font-small-bold-weight);
1582
+ color: var(--text-primary);
1583
+ }
1584
+ .snacky-product-card--details .snacky-product-card__price {
1585
+ font-size: 20px;
1586
+ font-weight: 700;
1587
+ }
1588
+ .snacky-product-card__original-price {
1589
+ font-family: var(--font-small-bold-family);
1590
+ font-weight: var(--font-small-bold-weight);
1591
+ font-size: 10px;
1592
+ color: var(--text-secondary);
1593
+ text-decoration: line-through;
1594
+ }
1595
+ .snacky-product-card--details .snacky-product-card__original-price {
1596
+ font-size: 16px;
1597
+ font-weight: 700;
1598
+ }
1599
+ .snacky-product-card__footer-row {
1600
+ display: flex;
1601
+ align-items: center;
1602
+ justify-content: space-between;
1603
+ gap: var(--spacing-8);
1604
+ }
1605
+ .snacky-product-card__rating {
1606
+ display: inline-flex;
1607
+ align-items: center;
1608
+ gap: var(--gap-icon-label);
1609
+ font-family: var(--font-small-regular-family);
1610
+ font-size: var(--font-small-regular-size);
1611
+ color: var(--text-secondary);
1612
+ }
1613
+ .snacky-product-card__rating-icon {
1614
+ width: 16px;
1615
+ height: 16px;
1616
+ color: var(--color-primary-500);
1617
+ }
1618
+ .snacky-product-card__actions {
1619
+ display: flex;
1620
+ gap: var(--gap-cell);
1621
+ }
1622
+ .snacky-product-card__actions--details button {
1623
+ box-shadow: 0 4px 4px rgba(0, 0, 0, 0.08);
1624
+ }
1625
+ /*# sourceMappingURL=index.css.map */