akhaliq HF Staff commited on
Commit
ed2f193
·
verified ·
1 Parent(s): 66f8e90

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +1218 -19
index.html CHANGED
@@ -1,19 +1,1218 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Muddy Bites - Premium Chocolate Desserts</title>
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ :root {
16
+ --primary-color: #3d2f1f;
17
+ --secondary-color: #8b4513;
18
+ --accent-color: #d2691e;
19
+ --light-cream: #f5e6d3;
20
+ --dark-chocolate: #2c1810;
21
+ --milk-chocolate: #7b5a3a;
22
+ --white-chocolate: #f8f4e6;
23
+ --success: #4caf50;
24
+ --danger: #f44336;
25
+ --warning: #ff9800;
26
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
27
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
28
+ --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
29
+ --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);
30
+ }
31
+
32
+ body {
33
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
34
+ background: linear-gradient(135deg, #f5e6d3 0%, #faf8f3 100%);
35
+ color: var(--dark-chocolate);
36
+ line-height: 1.6;
37
+ overflow-x: hidden;
38
+ }
39
+
40
+ /* Header Styles */
41
+ header {
42
+ background: linear-gradient(135deg, var(--dark-chocolate), var(--primary-color));
43
+ color: white;
44
+ padding: 1rem 0;
45
+ position: sticky;
46
+ top: 0;
47
+ z-index: 1000;
48
+ box-shadow: var(--shadow-lg);
49
+ animation: slideDown 0.5s ease-out;
50
+ }
51
+
52
+ @keyframes slideDown {
53
+ from {
54
+ transform: translateY(-100%);
55
+ opacity: 0;
56
+ }
57
+
58
+ to {
59
+ transform: translateY(0);
60
+ opacity: 1;
61
+ }
62
+ }
63
+
64
+ .header-container {
65
+ max-width: 1400px;
66
+ margin: 0 auto;
67
+ padding: 0 2rem;
68
+ display: flex;
69
+ justify-content: space-between;
70
+ align-items: center;
71
+ }
72
+
73
+ .logo {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 0.5rem;
77
+ font-size: 1.8rem;
78
+ font-weight: bold;
79
+ text-decoration: none;
80
+ color: white;
81
+ transition: transform 0.3s ease;
82
+ }
83
+
84
+ .logo:hover {
85
+ transform: scale(1.05);
86
+ }
87
+
88
+ .logo-icon {
89
+ width: 40px;
90
+ height: 40px;
91
+ background: var(--accent-color);
92
+ border-radius: 50%;
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ font-size: 1.5rem;
97
+ }
98
+
99
+ nav {
100
+ display: flex;
101
+ gap: 2rem;
102
+ align-items: center;
103
+ }
104
+
105
+ .nav-links {
106
+ display: flex;
107
+ gap: 1.5rem;
108
+ list-style: none;
109
+ }
110
+
111
+ .nav-links a {
112
+ color: white;
113
+ text-decoration: none;
114
+ transition: all 0.3s ease;
115
+ position: relative;
116
+ padding: 0.5rem 0;
117
+ }
118
+
119
+ .nav-links a::after {
120
+ content: '';
121
+ position: absolute;
122
+ bottom: 0;
123
+ left: 0;
124
+ width: 0;
125
+ height: 2px;
126
+ background: var(--accent-color);
127
+ transition: width 0.3s ease;
128
+ }
129
+
130
+ .nav-links a:hover::after {
131
+ width: 100%;
132
+ }
133
+
134
+ .cart-button {
135
+ background: var(--accent-color);
136
+ color: white;
137
+ border: none;
138
+ padding: 0.75rem 1.5rem;
139
+ border-radius: 50px;
140
+ cursor: pointer;
141
+ display: flex;
142
+ align-items: center;
143
+ gap: 0.5rem;
144
+ font-size: 1rem;
145
+ transition: all 0.3s ease;
146
+ position: relative;
147
+ }
148
+
149
+ .cart-button:hover {
150
+ background: var(--secondary-color);
151
+ transform: translateY(-2px);
152
+ box-shadow: var(--shadow-lg);
153
+ }
154
+
155
+ .cart-count {
156
+ background: var(--danger);
157
+ color: white;
158
+ border-radius: 50%;
159
+ width: 24px;
160
+ height: 24px;
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: center;
164
+ font-size: 0.8rem;
165
+ position: absolute;
166
+ top: -8px;
167
+ right: -8px;
168
+ animation: pulse 2s infinite;
169
+ }
170
+
171
+ @keyframes pulse {
172
+ 0% {
173
+ box-shadow: 0 0 0 0 rgba(244, 67, 54, 0.7);
174
+ }
175
+
176
+ 70% {
177
+ box-shadow: 0 0 0 10px rgba(244, 67, 54, 0);
178
+ }
179
+
180
+ 100% {
181
+ box-shadow: 0 0 0 0 rgba(244, 67, 54, 0);
182
+ }
183
+ }
184
+
185
+ /* Hero Section */
186
+ .hero {
187
+ background: linear-gradient(135deg, var(--dark-chocolate), var(--primary-color));
188
+ padding: 4rem 2rem;
189
+ text-align: center;
190
+ color: white;
191
+ position: relative;
192
+ overflow: hidden;
193
+ }
194
+
195
+ .hero::before {
196
+ content: '';
197
+ position: absolute;
198
+ top: -50%;
199
+ left: -50%;
200
+ width: 200%;
201
+ height: 200%;
202
+ background: radial-gradient(circle, rgba(210, 105, 30, 0.1) 0%, transparent 70%);
203
+ animation: rotate 30s linear infinite;
204
+ }
205
+
206
+ @keyframes rotate {
207
+ from {
208
+ transform: rotate(0deg);
209
+ }
210
+
211
+ to {
212
+ transform: rotate(360deg);
213
+ }
214
+ }
215
+
216
+ .hero-content {
217
+ max-width: 800px;
218
+ margin: 0 auto;
219
+ position: relative;
220
+ z-index: 1;
221
+ }
222
+
223
+ .hero h1 {
224
+ font-size: 3.5rem;
225
+ margin-bottom: 1rem;
226
+ animation: fadeInUp 0.8s ease-out;
227
+ }
228
+
229
+ .hero p {
230
+ font-size: 1.3rem;
231
+ margin-bottom: 2rem;
232
+ opacity: 0.9;
233
+ animation: fadeInUp 0.8s ease-out 0.2s both;
234
+ }
235
+
236
+ @keyframes fadeInUp {
237
+ from {
238
+ opacity: 0;
239
+ transform: translateY(30px);
240
+ }
241
+
242
+ to {
243
+ opacity: 1;
244
+ transform: translateY(0);
245
+ }
246
+ }
247
+
248
+ .cta-button {
249
+ background: var(--accent-color);
250
+ color: white;
251
+ border: none;
252
+ padding: 1rem 2.5rem;
253
+ font-size: 1.1rem;
254
+ border-radius: 50px;
255
+ cursor: pointer;
256
+ transition: all 0.3s ease;
257
+ animation: fadeInUp 0.8s ease-out 0.4s both;
258
+ text-decoration: none;
259
+ display: inline-block;
260
+ }
261
+
262
+ .cta-button:hover {
263
+ background: var(--secondary-color);
264
+ transform: scale(1.05);
265
+ box-shadow: var(--shadow-xl);
266
+ }
267
+
268
+ /* Filter Section */
269
+ .filter-section {
270
+ max-width: 1400px;
271
+ margin: 2rem auto;
272
+ padding: 0 2rem;
273
+ }
274
+
275
+ .filter-container {
276
+ background: white;
277
+ padding: 1.5rem;
278
+ border-radius: 15px;
279
+ box-shadow: var(--shadow-md);
280
+ display: flex;
281
+ gap: 1rem;
282
+ flex-wrap: wrap;
283
+ align-items: center;
284
+ }
285
+
286
+ .filter-group {
287
+ display: flex;
288
+ gap: 0.5rem;
289
+ }
290
+
291
+ .filter-btn {
292
+ background: var(--light-cream);
293
+ color: var(--dark-chocolate);
294
+ border: 2px solid transparent;
295
+ padding: 0.5rem 1rem;
296
+ border-radius: 25px;
297
+ cursor: pointer;
298
+ transition: all 0.3s ease;
299
+ font-size: 0.95rem;
300
+ }
301
+
302
+ .filter-btn:hover {
303
+ background: var(--accent-color);
304
+ color: white;
305
+ transform: translateY(-2px);
306
+ }
307
+
308
+ .filter-btn.active {
309
+ background: var(--secondary-color);
310
+ color: white;
311
+ border-color: var(--primary-color);
312
+ }
313
+
314
+ .search-box {
315
+ margin-left: auto;
316
+ position: relative;
317
+ flex: 1;
318
+ max-width: 300px;
319
+ }
320
+
321
+ .search-box input {
322
+ width: 100%;
323
+ padding: 0.5rem 2.5rem 0.5rem 1rem;
324
+ border: 2px solid var(--light-cream);
325
+ border-radius: 25px;
326
+ font-size: 0.95rem;
327
+ transition: all 0.3s ease;
328
+ }
329
+
330
+ .search-box input:focus {
331
+ outline: none;
332
+ border-color: var(--accent-color);
333
+ box-shadow: 0 0 0 3px rgba(210, 105, 30, 0.1);
334
+ }
335
+
336
+ .search-icon {
337
+ position: absolute;
338
+ right: 1rem;
339
+ top: 50%;
340
+ transform: translateY(-50%);
341
+ color: var(--secondary-color);
342
+ }
343
+
344
+ /* Product Grid */
345
+ .products-section {
346
+ max-width: 1400px;
347
+ margin: 2rem auto;
348
+ padding: 0 2rem;
349
+ }
350
+
351
+ .products-grid {
352
+ display: grid;
353
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
354
+ gap: 2rem;
355
+ animation: fadeIn 0.8s ease-out;
356
+ }
357
+
358
+ @keyframes fadeIn {
359
+ from {
360
+ opacity: 0;
361
+ }
362
+
363
+ to {
364
+ opacity: 1;
365
+ }
366
+ }
367
+
368
+ .product-card {
369
+ background: white;
370
+ border-radius: 15px;
371
+ overflow: hidden;
372
+ box-shadow: var(--shadow-md);
373
+ transition: all 0.3s ease;
374
+ cursor: pointer;
375
+ position: relative;
376
+ }
377
+
378
+ .product-card:hover {
379
+ transform: translateY(-5px);
380
+ box-shadow: var(--shadow-xl);
381
+ }
382
+
383
+ .product-badge {
384
+ position: absolute;
385
+ top: 1rem;
386
+ right: 1rem;
387
+ background: var(--danger);
388
+ color: white;
389
+ padding: 0.25rem 0.75rem;
390
+ border-radius: 20px;
391
+ font-size: 0.8rem;
392
+ font-weight: bold;
393
+ z-index: 10;
394
+ }
395
+
396
+ .product-image {
397
+ width: 100%;
398
+ height: 200px;
399
+ object-fit: cover;
400
+ transition: transform 0.3s ease;
401
+ }
402
+
403
+ .product-card:hover .product-image {
404
+ transform: scale(1.1);
405
+ }
406
+
407
+ .product-info {
408
+ padding: 1.5rem;
409
+ }
410
+
411
+ .product-name {
412
+ font-size: 1.2rem;
413
+ font-weight: bold;
414
+ margin-bottom: 0.5rem;
415
+ color: var(--dark-chocolate);
416
+ }
417
+
418
+ .product-description {
419
+ color: var(--milk-chocolate);
420
+ font-size: 0.9rem;
421
+ margin-bottom: 1rem;
422
+ line-height: 1.4;
423
+ }
424
+
425
+ .product-footer {
426
+ display: flex;
427
+ justify-content: space-between;
428
+ align-items: center;
429
+ }
430
+
431
+ .product-price {
432
+ font-size: 1.3rem;
433
+ font-weight: bold;
434
+ color: var(--accent-color);
435
+ }
436
+
437
+ .add-to-cart-btn {
438
+ background: var(--secondary-color);
439
+ color: white;
440
+ border: none;
441
+ padding: 0.5rem 1rem;
442
+ border-radius: 25px;
443
+ cursor: pointer;
444
+ transition: all 0.3s ease;
445
+ display: flex;
446
+ align-items: center;
447
+ gap: 0.5rem;
448
+ }
449
+
450
+ .add-to-cart-btn:hover {
451
+ background: var(--accent-color);
452
+ transform: scale(1.05);
453
+ }
454
+
455
+ /* Cart Sidebar */
456
+ .cart-sidebar {
457
+ position: fixed;
458
+ top: 0;
459
+ right: -400px;
460
+ width: 400px;
461
+ height: 100vh;
462
+ background: white;
463
+ box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
464
+ transition: right 0.3s ease;
465
+ z-index: 2000;
466
+ display: flex;
467
+ flex-direction: column;
468
+ }
469
+
470
+ .cart-sidebar.open {
471
+ right: 0;
472
+ }
473
+
474
+ .cart-header {
475
+ background: var(--dark-chocolate);
476
+ color: white;
477
+ padding: 1.5rem;
478
+ display: flex;
479
+ justify-content: space-between;
480
+ align-items: center;
481
+ }
482
+
483
+ .cart-items {
484
+ flex: 1;
485
+ overflow-y: auto;
486
+ padding: 1rem;
487
+ }
488
+
489
+ .cart-item {
490
+ display: flex;
491
+ gap: 1rem;
492
+ padding: 1rem;
493
+ border-bottom: 1px solid var(--light-cream);
494
+ animation: slideIn 0.3s ease;
495
+ }
496
+
497
+ @keyframes slideIn {
498
+ from {
499
+ opacity: 0;
500
+ transform: translateX(20px);
501
+ }
502
+
503
+ to {
504
+ opacity: 1;
505
+ transform: translateX(0);
506
+ }
507
+ }
508
+
509
+ .cart-item-image {
510
+ width: 60px;
511
+ height: 60px;
512
+ object-fit: cover;
513
+ border-radius: 10px;
514
+ }
515
+
516
+ .cart-item-info {
517
+ flex: 1;
518
+ }
519
+
520
+ .cart-item-name {
521
+ font-weight: bold;
522
+ margin-bottom: 0.25rem;
523
+ }
524
+
525
+ .cart-item-price {
526
+ color: var(--accent-color);
527
+ font-weight: bold;
528
+ }
529
+
530
+ .cart-item-quantity {
531
+ display: flex;
532
+ align-items: center;
533
+ gap: 0.5rem;
534
+ margin-top: 0.5rem;
535
+ }
536
+
537
+ .quantity-btn {
538
+ background: var(--light-cream);
539
+ border: none;
540
+ width: 25px;
541
+ height: 25px;
542
+ border-radius: 50%;
543
+ cursor: pointer;
544
+ transition: all 0.3s ease;
545
+ }
546
+
547
+ .quantity-btn:hover {
548
+ background: var(--accent-color);
549
+ color: white;
550
+ }
551
+
552
+ .cart-footer {
553
+ padding: 1.5rem;
554
+ background: var(--light-cream);
555
+ border-top: 2px solid var(--secondary-color);
556
+ }
557
+
558
+ .cart-total {
559
+ display: flex;
560
+ justify-content: space-between;
561
+ font-size: 1.3rem;
562
+ font-weight: bold;
563
+ margin-bottom: 1rem;
564
+ }
565
+
566
+ .checkout-btn {
567
+ width: 100%;
568
+ background: var(--accent-color);
569
+ color: white;
570
+ border: none;
571
+ padding: 1rem;
572
+ border-radius: 10px;
573
+ font-size: 1.1rem;
574
+ cursor: pointer;
575
+ transition: all 0.3s ease;
576
+ }
577
+
578
+ .checkout-btn:hover {
579
+ background: var(--secondary-color);
580
+ transform: scale(1.02);
581
+ }
582
+
583
+ .close-cart {
584
+ background: none;
585
+ border: none;
586
+ color: white;
587
+ font-size: 1.5rem;
588
+ cursor: pointer;
589
+ transition: transform 0.3s ease;
590
+ }
591
+
592
+ .close-cart:hover {
593
+ transform: rotate(90deg);
594
+ }
595
+
596
+ /* Overlay */
597
+ .overlay {
598
+ position: fixed;
599
+ top: 0;
600
+ left: 0;
601
+ width: 100%;
602
+ height: 100%;
603
+ background: rgba(0, 0, 0, 0.5);
604
+ display: none;
605
+ z-index: 1999;
606
+ }
607
+
608
+ .overlay.active {
609
+ display: block;
610
+ }
611
+
612
+ /* Toast Notification */
613
+ .toast {
614
+ position: fixed;
615
+ bottom: -100px;
616
+ left: 50%;
617
+ transform: translateX(-50%);
618
+ background: var(--success);
619
+ color: white;
620
+ padding: 1rem 2rem;
621
+ border-radius: 50px;
622
+ box-shadow: var(--shadow-lg);
623
+ transition: bottom 0.3s ease;
624
+ z-index: 3000;
625
+ display: flex;
626
+ align-items: center;
627
+ gap: 0.5rem;
628
+ }
629
+
630
+ .toast.show {
631
+ bottom: 30px;
632
+ }
633
+
634
+ /* Footer */
635
+ footer {
636
+ background: var(--dark-chocolate);
637
+ color: white;
638
+ padding: 3rem 2rem 1rem;
639
+ margin-top: 4rem;
640
+ }
641
+
642
+ .footer-content {
643
+ max-width: 1400px;
644
+ margin: 0 auto;
645
+ display: grid;
646
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
647
+ gap: 2rem;
648
+ margin-bottom: 2rem;
649
+ }
650
+
651
+ .footer-section h3 {
652
+ margin-bottom: 1rem;
653
+ color: var(--accent-color);
654
+ }
655
+
656
+ .footer-section ul {
657
+ list-style: none;
658
+ }
659
+
660
+ .footer-section ul li {
661
+ margin-bottom: 0.5rem;
662
+ }
663
+
664
+ .footer-section a {
665
+ color: var(--light-cream);
666
+ text-decoration: none;
667
+ transition: color 0.3s ease;
668
+ }
669
+
670
+ .footer-section a:hover {
671
+ color: var(--accent-color);
672
+ }
673
+
674
+ .footer-bottom {
675
+ text-align: center;
676
+ padding-top: 2rem;
677
+ border-top: 1px solid var(--milk-chocolate);
678
+ }
679
+
680
+ .built-with {
681
+ color: var(--accent-color);
682
+ text-decoration: none;
683
+ font-weight: bold;
684
+ transition: color 0.3s ease;
685
+ }
686
+
687
+ .built-with:hover {
688
+ color: var(--light-cream);
689
+ }
690
+
691
+ /* Mobile Menu */
692
+ .mobile-menu-btn {
693
+ display: none;
694
+ background: none;
695
+ border: none;
696
+ color: white;
697
+ font-size: 1.5rem;
698
+ cursor: pointer;
699
+ }
700
+
701
+ /* Responsive Design */
702
+ @media (max-width: 768px) {
703
+ .header-container {
704
+ flex-wrap: wrap;
705
+ }
706
+
707
+ .nav-links {
708
+ display: none;
709
+ width: 100%;
710
+ flex-direction: column;
711
+ gap: 1rem;
712
+ margin-top: 1rem;
713
+ padding-top: 1rem;
714
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
715
+ }
716
+
717
+ .nav-links.active {
718
+ display: flex;
719
+ }
720
+
721
+ .mobile-menu-btn {
722
+ display: block;
723
+ }
724
+
725
+ .hero h1 {
726
+ font-size: 2.5rem;
727
+ }
728
+
729
+ .hero p {
730
+ font-size: 1.1rem;
731
+ }
732
+
733
+ .cart-sidebar {
734
+ width: 100%;
735
+ right: -100%;
736
+ }
737
+
738
+ .products-grid {
739
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
740
+ gap: 1rem;
741
+ }
742
+
743
+ .filter-container {
744
+ flex-direction: column;
745
+ align-items: stretch;
746
+ }
747
+
748
+ .search-box {
749
+ max-width: 100%;
750
+ }
751
+ }
752
+
753
+ /* Loading Animation */
754
+ .loading {
755
+ display: inline-block;
756
+ width: 20px;
757
+ height: 20px;
758
+ border: 3px solid rgba(255, 255, 255, 0.3);
759
+ border-radius: 50%;
760
+ border-top-color: white;
761
+ animation: spin 1s ease-in-out infinite;
762
+ }
763
+
764
+ @keyframes spin {
765
+ to {
766
+ transform: rotate(360deg);
767
+ }
768
+ }
769
+ </style>
770
+ </head>
771
+
772
+ <body>
773
+ <!-- Header -->
774
+ <header>
775
+ <div class="header-container">
776
+ <a href="#" class="logo">
777
+ <div class="logo-icon">🍫</div>
778
+ <span>Muddy Bites</span>
779
+ </a>
780
+
781
+ <nav>
782
+ <ul class="nav-links" id="navLinks">
783
+ <li><a href="#home">Home</a></li>
784
+ <li><a href="#products">Products</a></li>
785
+ <li><a href="#about">About</a></li>
786
+ <li><a href="#contact">Contact</a></li>
787
+ </ul>
788
+
789
+ <button class="cart-button" onclick="toggleCart()">
790
+ 🛒 Cart
791
+ <span class="cart-count" id="cartCount">0</span>
792
+ </button>
793
+
794
+ <button class="mobile-menu-btn" onclick="toggleMobileMenu()">☰</button>
795
+ </nav>
796
+ </div>
797
+ </header>
798
+
799
+ <!-- Hero Section -->
800
+ <section class="hero" id="home">
801
+ <div class="hero-content">
802
+ <h1>Indulge in Chocolate Perfection</h1>
803
+ <p>Handcrafted brownies, truffles, and chocolate treats made with love</p>
804
+ <button class="cta-button" onclick="scrollToProducts()">Shop Now</button>
805
+ </div>
806
+ </section>
807
+
808
+ <!-- Filter Section -->
809
+ <section class="filter-section">
810
+ <div class="filter-container">
811
+ <div class="filter-group">
812
+ <button class="filter-btn active" onclick="filterProducts('all')">All Products</button>
813
+ <button class="filter-btn" onclick="filterProducts('brownies')">Brownies</button>
814
+ <button class="filter-btn" onclick="filterProducts('truffles')">Truffles</button>
815
+ <button class="filter-btn" onclick="filterProducts('cakes')">Cakes</button>
816
+ <button class="filter-btn" onclick="filterProducts('special')">Special</button>
817
+ </div>
818
+
819
+ <div class="search-box">
820
+ <input type="text" placeholder="Search products..." id="searchInput" onkeyup="searchProducts()">
821
+ <span class="search-icon">🔍</span>
822
+ </div>
823
+ </div>
824
+ </section>
825
+
826
+ <!-- Products Section -->
827
+ <section class="products-section" id="products">
828
+ <div class="products-grid" id="productsGrid">
829
+ <!-- Products will be dynamically inserted here -->
830
+ </div>
831
+ </section>
832
+
833
+ <!-- Cart Sidebar -->
834
+ <div class="cart-sidebar" id="cartSidebar">
835
+ <div class="cart-header">
836
+ <h2>Your Cart</h2>
837
+ <button class="close-cart" onclick="toggleCart()">✕</button>
838
+ </div>
839
+
840
+ <div class="cart-items" id="cartItems">
841
+ <!-- Cart items will be dynamically inserted here -->
842
+ </div>
843
+
844
+ <div class="cart-footer">
845
+ <div class="cart-total">
846
+ <span>Total:</span>
847
+ <span id="cartTotal">$0.00</span>
848
+ </div>
849
+ <button class="checkout-btn" onclick="checkout()">Proceed to Checkout</button>
850
+ </div>
851
+ </div>
852
+
853
+ <!-- Overlay -->
854
+ <div class="overlay" id="overlay" onclick="toggleCart()"></div>
855
+
856
+ <!-- Toast Notification -->
857
+ <div class="toast" id="toast">
858
+ <span>✓</span>
859
+ <span id="toastMessage">Item added to cart!</span>
860
+ </div>
861
+
862
+ <!-- Footer -->
863
+ <footer>
864
+ <div class="footer-content">
865
+ <div class="footer-section">
866
+ <h3>About Muddy Bites</h3>
867
+ <p>We're passionate about creating the most delicious chocolate treats using the finest ingredients and
868
+ traditional recipes.</p>
869
+ </div>
870
+
871
+ <div class="footer-section">
872
+ <h3>Quick Links</h3>
873
+ <ul>
874
+ <li><a href="#products">Shop</a></li>
875
+ <li><a href="#about">About Us</a></li>
876
+ <li><a href="#contact">Contact</a></li>
877
+ <li><a href="#faq">FAQ</a></li>
878
+ </ul>
879
+ </div>
880
+
881
+ <div class="footer-section">
882
+ <h3>Customer Service</h3>
883
+ <ul>
884
+ <li><a href="#shipping">Shipping Info</a></li>
885
+ <li><a href="#returns">Returns</a></li>
886
+ <li><a href="#privacy">Privacy Policy</a></li>
887
+ <li><a href="#terms">Terms of Service</a></li>
888
+ </ul>
889
+ </div>
890
+
891
+ <div class="footer-section">
892
+ <h3>Connect With Us</h3>
893
+ <p>📧 info@muddybites.com</p>
894
+ <p>📞 1-800-CHOCO</p>
895
+ <p>📍 123 Sweet Street, Cocoa City</p>
896
+ </div>
897
+ </div>
898
+
899
+ <div class="footer-bottom">
900
+ <p>&copy; 2024 Muddy Bites. All rights reserved. | <a href="https://huggingface.co/spaces/akhaliq/anycoder"
901
+ target="_blank" class="built-with">Built with anycoder</a></p>
902
+ </div>
903
+ </footer>
904
+
905
+ <script>
906
+ // Product Data
907
+ const products = [
908
+ {
909
+ id: 1,
910
+ name: "Classic Brownie Box",
911
+ category: "brownies",
912
+ price: 24.99,
913
+ description: "Rich, fudgy brownies with chocolate chips",
914
+ image: "https://picsum.photos/seed/brownie1/300/200",
915
+ badge: "Best Seller"
916
+ },
917
+ {
918
+ id: 2,
919
+ name: "Belgian Truffle Collection",
920
+ category: "truffles",
921
+ price: 34.99,
922
+ description: "12 premium dark chocolate truffles",
923
+ image: "https://picsum.photos/seed/truffle1/300/200",
924
+ badge: "Premium"
925
+ },
926
+ {
927
+ id: 3,
928
+ name: "Chocolate Lava Cake",
929
+ category: "cakes",
930
+ price: 18.99,
931
+ description: "Warm cake with molten chocolate center",
932
+ image: "https://picsum.photos/seed/cake1/300/200"
933
+ },
934
+ {
935
+ id: 4,
936
+ name: "Nutty Brownie Mix",
937
+ category: "brownies",
938
+ price: 22.99,
939
+ description: "Brownies with walnuts and pecans",
940
+ image: "https://picsum.photos/seed/brownie2/300/200"
941
+ },
942
+ {
943
+ id: 5,
944
+ name: "Mint Chocolate Truffles",
945
+ category: "truffles",
946
+ price: 28.99,
947
+ description: "Refreshing mint-filled dark chocolate",
948
+ image: "https://picsum.photos/seed/truffle2/300/200",
949
+ badge: "New"
950
+ },
951
+ {
952
+ id: 6,
953
+ name: "Triple Chocolate Cake",
954
+ category: "cakes",
955
+ price: 45.99,
956
+ description: "Three layers of pure chocolate bliss",
957
+ image: "https://picsum.photos/seed/cake2/300/200"
958
+ },
959
+ {
960
+ id: 7,
961
+ name: "Salted Caramel Brownies",
962
+ category: "brownies",
963
+ price: 26.99,
964
+ description: "Sweet and salty perfection",
965
+ image: "https://picsum.photos/seed/brownie3/300/200",
966
+ badge: "Limited"
967
+ },
968
+ {
969
+ id: 8,
970
+ name: "Raspberry Truffle Box",
971
+ category: "truffles",
972
+ price: 32.99,
973
+ description: "Dark chocolate with raspberry filling",
974
+ image: "https://picsum.photos/seed/truffle3/300/200"
975
+ },
976
+ {
977
+ id: 9,
978
+ name: "Chocolate Cheesecake",
979
+ category: "cakes",
980
+ price: 38.99,
981
+ description: "Creamy cheesecake with chocolate crust",
982
+ image: "https://picsum.photos/seed/cake3/300/200"
983
+ },
984
+ {
985
+ id: 10,
986
+ name: "Ultimate Brownie Tower",
987
+ category: "special",
988
+ price: 89.99,
989
+ description: "3-tier brownie masterpiece",
990
+ image: "https://picsum.photos/seed/special1/300/200",
991
+ badge: "Exclusive"
992
+ },
993
+ {
994
+ id: 11,
995
+ name: "Chocolate Dipped Strawberries",
996
+ category: "special",
997
+ price: 29.99,
998
+ description: "Fresh berries in premium chocolate",
999
+ image: "https://picsum.photos/seed/special2/300/200"
1000
+ },
1001
+ {
1002
+ id: 12,
1003
+ name: "Chocolate Gift Basket",
1004
+ category: "special",
1005
+ price: 99.99,
1006
+ description: "Complete chocolate experience",
1007
+ image: "https://picsum.photos/seed/special3/300/200",
1008
+ badge: "Gift"
1009
+ }
1010
+ ];
1011
+
1012
+ // Cart State
1013
+ let cart = [];
1014
+ let currentFilter = 'all';
1015
+
1016
+ // Initialize App
1017
+ document.addEventListener('DOMContentLoaded', function() {
1018
+ renderProducts(products);
1019
+ updateCartUI();
1020
+ });
1021
+
1022
+ // Render Products
1023
+ function renderProducts(productsToRender) {
1024
+ const grid = document.getElementById('productsGrid');
1025
+ grid.innerHTML = '';
1026
+
1027
+ productsToRender.forEach((product, index) => {
1028
+ const card = document.createElement('div');
1029
+ card.className = 'product-card';
1030
+ card.style.animationDelay = `${index * 0.1}s`;
1031
+
1032
+ card.innerHTML = `
1033
+ ${product.badge ? `<div class="product-badge">${product.badge}</div>` : ''}
1034
+ <img src="${product.image}" alt="${product.name}" class="product-image">
1035
+ <div class="product-info">
1036
+ <h3 class="product-name">${product.name}</h3>
1037
+ <p class="product-description">${product.description}</p>
1038
+ <div class="product-footer">
1039
+ <span class="product-price">$${product.price.toFixed(2)}</span>
1040
+ <button class="add-to-cart-btn" onclick="addToCart(${product.id})">
1041
+ <span>+</span> Add
1042
+ </button>
1043
+ </div>
1044
+ </div>
1045
+ `;
1046
+
1047
+ grid.appendChild(card);
1048
+ });
1049
+ }
1050
+
1051
+ // Filter Products
1052
+ function filterProducts(category) {
1053
+ currentFilter = category;
1054
+
1055
+ // Update active button
1056
+ document.querySelectorAll('.filter-btn').forEach(btn => {
1057
+ btn.classList.remove('active');
1058
+ });
1059
+ event.target.classList.add('active');
1060
+
1061
+ // Filter and render
1062
+ const filtered = category === 'all'
1063
+ ? products
1064
+ : products.filter(p => p.category === category);
1065
+
1066
+ renderProducts(filtered);
1067
+ }
1068
+
1069
+ // Search Products
1070
+ function searchProducts() {
1071
+ const searchTerm = document.getElementById('searchInput').value.toLowerCase();
1072
+
1073
+ const filtered = products.filter(p =>
1074
+ p.name.toLowerCase().includes(searchTerm) ||
1075
+ p.description.toLowerCase().includes(searchTerm)
1076
+ );
1077
+
1078
+ renderProducts(filtered);
1079
+ }
1080
+
1081
+ // Add to Cart
1082
+ function addToCart(productId) {
1083
+ const product = products.find(p => p.id === productId);
1084
+ const existingItem = cart.find(item => item.id === productId);
1085
+
1086
+ if (existingItem) {
1087
+ existingItem.quantity++;
1088
+ } else {
1089
+ cart.push({
1090
+ ...product,
1091
+ quantity: 1
1092
+ });
1093
+ }
1094
+
1095
+ updateCartUI();
1096
+ showToast(`${product.name} added to cart!`);
1097
+ }
1098
+
1099
+ // Update Cart UI
1100
+ function updateCartUI() {
1101
+ const cartCount = document.getElementById('cartCount');
1102
+ const cartItems = document.getElementById('cartItems');
1103
+ const cartTotal = document.getElementById('cartTotal');
1104
+
1105
+ // Update count
1106
+ const totalItems = cart.reduce((sum, item) => sum + item.quantity, 0);
1107
+ cartCount.textContent = totalItems;
1108
+
1109
+ // Update items
1110
+ cartItems.innerHTML = '';
1111
+
1112
+ if (cart.length === 0) {
1113
+ cartItems.innerHTML = '<p style="text-align: center; padding: 2rem; color: #999;">Your cart is empty</p>';
1114
+ } else {
1115
+ cart.forEach(item => {
1116
+ const cartItem = document.createElement('div');
1117
+ cartItem.className = 'cart-item';
1118
+ cartItem.innerHTML = `
1119
+ <img src="${item.image}" alt="${item.name}" class="cart-item-image">
1120
+ <div class="cart-item-info">
1121
+ <div class="cart-item-name">${item.name}</div>
1122
+ <div class="cart-item-price">$${item.price.toFixed(2)}</div>
1123
+ <div class="cart-item-quantity">
1124
+ <button class="quantity-btn" onclick="updateQuantity(${item.id}, -1)">-</button>
1125
+ <span>${item.quantity}</span>
1126
+ <button class="quantity-btn" onclick="updateQuantity(${item.id}, 1)">+</button>
1127
+ </div>
1128
+ </div>
1129
+ `;
1130
+ cartItems.appendChild(cartItem);
1131
+ });
1132
+ }
1133
+
1134
+ // Update total
1135
+ const total = cart.reduce((sum, item) => sum + (item.price * item.quantity), 0);
1136
+ cartTotal.textContent = `$${total.toFixed(2)}`;
1137
+ }
1138
+
1139
+ // Update Quantity
1140
+ function updateQuantity(productId, change) {
1141
+ const item = cart.find(item => item.id === productId);
1142
+
1143
+ if (item) {
1144
+ item.quantity += change;
1145
+
1146
+ if (item.quantity <= 0) {
1147
+ cart = cart.filter(item => item.id !== productId);
1148
+ }
1149
+
1150
+ updateCartUI();
1151
+ }
1152
+ }
1153
+
1154
+ // Toggle Cart
1155
+ function toggleCart() {
1156
+ const sidebar = document.getElementById('cartSidebar');
1157
+ const overlay = document.getElementById('overlay');
1158
+
1159
+ sidebar.classList.toggle('open');
1160
+ overlay.classList.toggle('active');
1161
+ }
1162
+
1163
+ // Toggle Mobile Menu
1164
+ function toggleMobileMenu() {
1165
+ const navLinks = document.getElementById('navLinks');
1166
+ navLinks.classList.toggle('active');
1167
+ }
1168
+
1169
+ // Scroll to Products
1170
+ function scrollToProducts() {
1171
+ document.getElementById('products').scrollIntoView({ behavior: 'smooth' });
1172
+ }
1173
+
1174
+ // Show Toast
1175
+ function showToast(message) {
1176
+ const toast = document.getElementById('toast');
1177
+ const toastMessage = document.getElementById('toastMessage');
1178
+
1179
+ toastMessage.textContent = message;
1180
+ toast.classList.add('show');
1181
+
1182
+ setTimeout(() => {
1183
+ toast.classList.remove('show');
1184
+ }, 3000);
1185
+ }
1186
+
1187
+ // Checkout
1188
+ function checkout() {
1189
+ if (cart.length === 0) {
1190
+ showToast('Your cart is empty!');
1191
+ return;
1192
+ }
1193
+
1194
+ const total = cart.reduce((sum, item) => sum + (item.price * item.quantity), 0);
1195
+ showToast(`Order placed! Total: $${total.toFixed(2)}`);
1196
+
1197
+ // Clear cart after a delay
1198
+ setTimeout(() => {
1199
+ cart = [];
1200
+ updateCartUI();
1201
+ toggleCart();
1202
+ }, 2000);
1203
+ }
1204
+
1205
+ // Smooth scroll for navigation links
1206
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
1207
+ anchor.addEventListener('click', function (e) {
1208
+ e.preventDefault();
1209
+ const target = document.querySelector(this.getAttribute('href'));
1210
+ if (target) {
1211
+ target.scrollIntoView({ behavior: 'smooth' });
1212
+ }
1213
+ });
1214
+ });
1215
+ </script>
1216
+ </body>
1217
+
1218
+ </html>