ChristopheDucharme commited on
Commit
0d8b421
·
verified ·
1 Parent(s): 2e6ce1b

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +645 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: V Tements En Ligne
3
- emoji: 📈
4
- colorFrom: pink
5
- colorTo: yellow
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: v-tements-en-ligne
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: purple
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,645 @@
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="fr">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Mode Élégance - Boutique en ligne</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ /* Animation pour le bouton du panier */
11
+ @keyframes bounce {
12
+ 0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
13
+ 40% {transform: translateY(-10px);}
14
+ 60% {transform: translateY(-5px);}
15
+ }
16
+ .bounce {
17
+ animation: bounce 1s;
18
+ }
19
+
20
+ /* Animation pour les cartes de produits */
21
+ .product-card:hover {
22
+ transform: translateY(-5px);
23
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
24
+ }
25
+ .product-card {
26
+ transition: all 0.3s ease;
27
+ }
28
+ </style>
29
+ </head>
30
+ <body class="bg-gray-50 font-sans">
31
+ <!-- Barre de navigation -->
32
+ <nav class="bg-white shadow-lg sticky top-0 z-50">
33
+ <div class="max-w-7xl mx-auto px-4">
34
+ <div class="flex justify-between items-center py-4">
35
+ <!-- Logo -->
36
+ <div class="flex items-center space-x-4">
37
+ <span class="text-2xl font-bold text-indigo-600">Mode Élégance</span>
38
+ </div>
39
+
40
+ <!-- Liens de navigation -->
41
+ <div class="hidden md:flex items-center space-x-8">
42
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Accueil</a>
43
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Femmes</a>
44
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Hommes</a>
45
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Enfants</a>
46
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Nouveautés</a>
47
+ <a href="#" class="text-gray-800 hover:text-indigo-600 font-medium">Contact</a>
48
+ </div>
49
+
50
+ <!-- Icônes du panier et de recherche -->
51
+ <div class="flex items-center space-x-4">
52
+ <button class="p-2 text-gray-600 hover:text-indigo-600">
53
+ <i class="fas fa-search text-lg"></i>
54
+ </button>
55
+ <button id="cart-btn" class="p-2 text-gray-600 hover:text-indigo-600 relative">
56
+ <i class="fas fa-shopping-cart text-lg"></i>
57
+ <span id="cart-count" class="absolute -top-1 -right-1 bg-indigo-600 text-white text-xs rounded-full h-5 w-5 flex items-center justify-center">0</span>
58
+ </button>
59
+
60
+ <!-- Menu mobile -->
61
+ <button id="mobile-menu-button" class="md:hidden p-2 text-gray-600 hover:text-indigo-600">
62
+ <i class="fas fa-bars text-xl"></i>
63
+ </button>
64
+ </div>
65
+ </div>
66
+
67
+ <!-- Menu mobile (caché par défaut) -->
68
+ <div id="mobile-menu" class="md:hidden hidden pb-4 px-2">
69
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Accueil</a>
70
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Femmes</a>
71
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Hommes</a>
72
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Enfants</a>
73
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Nouveautés</a>
74
+ <a href="#" class="block py-2 px-4 text-gray-800 hover:bg-gray-100 rounded">Contact</a>
75
+ </div>
76
+ </div>
77
+ </nav>
78
+
79
+ <!-- Panier latéral -->
80
+ <div id="cart-sidebar" class="fixed top-0 right-0 h-full w-full md:w-96 bg-white shadow-xl z-50 transform translate-x-full transition-transform duration-300 ease-in-out overflow-y-auto">
81
+ <div class="p-6">
82
+ <div class="flex justify-between items-center mb-6">
83
+ <h2 class="text-xl font-bold">Votre Panier</h2>
84
+ <button id="close-cart" class="text-gray-500 hover:text-gray-700">
85
+ <i class="fas fa-times text-xl"></i>
86
+ </button>
87
+ </div>
88
+
89
+ <div id="cart-items" class="space-y-4">
90
+ <!-- Les articles du panier seront ajoutés ici dynamiquement -->
91
+ <p id="empty-cart-message" class="text-gray-500 text-center py-8">Votre panier est vide</p>
92
+ </div>
93
+
94
+ <div class="border-t border-gray-200 mt-6 pt-6">
95
+ <div class="flex justify-between mb-2">
96
+ <span class="font-medium">Sous-total:</span>
97
+ <span id="cart-subtotal" class="font-bold">€0.00</span>
98
+ </div>
99
+ <button class="w-full bg-indigo-600 text-white py-3 rounded-lg hover:bg-indigo-700 transition duration-300">
100
+ Passer la commande
101
+ </button>
102
+ <button class="w-full mt-2 border border-gray-300 text-gray-700 py-3 rounded-lg hover:bg-gray-50 transition duration-300">
103
+ Continuer vos achats
104
+ </button>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <!-- Overlay pour le panier -->
110
+ <div id="cart-overlay" class="fixed inset-0 bg-black bg-opacity-50 z-40 hidden"></div>
111
+
112
+ <!-- Bannière principale -->
113
+ <div class="relative bg-gradient-to-r from-indigo-500 to-purple-600 text-white py-20">
114
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
115
+ <div class="md:w-1/2">
116
+ <h1 class="text-4xl md:text-5xl font-bold mb-4">Collection Printemps-Été 2023</h1>
117
+ <p class="text-xl mb-8">Découvrez nos nouvelles tendances pour une saison ensoleillée. Des pièces uniques pour chaque occasion.</p>
118
+ <button class="bg-white text-indigo-600 px-6 py-3 rounded-lg font-medium hover:bg-gray-100 transition duration-300">
119
+ Acheter maintenant
120
+ </button>
121
+ </div>
122
+ </div>
123
+ </div>
124
+
125
+ <!-- Carrousel de promotions -->
126
+ <div class="bg-gray-100 py-8">
127
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
128
+ <h2 class="text-2xl font-bold mb-6 text-center">Promotions du moment</h2>
129
+ <div class="relative overflow-hidden">
130
+ <div id="promo-slider" class="flex transition-transform duration-300 ease-in-out">
131
+ <!-- Les slides seront ajoutées dynamiquement -->
132
+ </div>
133
+ <button id="prev-slide" class="absolute left-2 top-1/2 -translate-y-1/2 bg-white p-2 rounded-full shadow-md hover:bg-gray-100">
134
+ <i class="fas fa-chevron-left text-gray-800"></i>
135
+ </button>
136
+ <button id="next-slide" class="absolute right-2 top-1/2 -translate-y-1/2 bg-white p-2 rounded-full shadow-md hover:bg-gray-100">
137
+ <i class="fas fa-chevron-right text-gray-800"></i>
138
+ </button>
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ <!-- Catégories -->
144
+ <div class="py-12">
145
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
146
+ <h2 class="text-2xl font-bold mb-8 text-center">Nos Catégories</h2>
147
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
148
+ <div class="relative rounded-lg overflow-hidden h-64 group">
149
+ <img src="https://images.unsplash.com/photo-1525507119028-ed4c629a60a3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Femmes" class="w-full h-full object-cover">
150
+ <div class="absolute inset-0 bg-black bg-opacity-30 flex items-center justify-center">
151
+ <div class="text-center">
152
+ <h3 class="text-white text-2xl font-bold mb-2">Femmes</h3>
153
+ <button class="px-4 py-2 bg-white text-gray-800 rounded-lg font-medium opacity-0 group-hover:opacity-100 transition duration-300">
154
+ Voir la collection
155
+ </button>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ <div class="relative rounded-lg overflow-hidden h-64 group">
160
+ <img src="https://images.unsplash.com/photo-1543076447-215ad9ba6923?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Hommes" class="w-full h-full object-cover">
161
+ <div class="absolute inset-0 bg-black bg-opacity-30 flex items-center justify-center">
162
+ <div class="text-center">
163
+ <h3 class="text-white text-2xl font-bold mb-2">Hommes</h3>
164
+ <button class="px-4 py-2 bg-white text-gray-800 rounded-lg font-medium opacity-0 group-hover:opacity-100 transition duration-300">
165
+ Voir la collection
166
+ </button>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ <div class="relative rounded-lg overflow-hidden h-64 group">
171
+ <img src="https://images.unsplash.com/photo-1600185365483-26c7a9e035e7?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Enfants" class="w-full h-full object-cover">
172
+ <div class="absolute inset-0 bg-black bg-opacity-30 flex items-center justify-center">
173
+ <div class="text-center">
174
+ <h3 class="text-white text-2xl font-bold mb-2">Enfants</h3>
175
+ <button class="px-4 py-2 bg-white text-gray-800 rounded-lg font-medium opacity-0 group-hover:opacity-100 transition duration-300">
176
+ Voir la collection
177
+ </button>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ <div class="relative rounded-lg overflow-hidden h-64 group">
182
+ <img src="https://images.unsplash.com/photo-1552374196-c4e7ffc6e126?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" alt="Accessoires" class="w-full h-full object-cover">
183
+ <div class="absolute inset-0 bg-black bg-opacity-30 flex items-center justify-center">
184
+ <div class="text-center">
185
+ <h3 class="text-white text-2xl font-bold mb-2">Accessoires</h3>
186
+ <button class="px-4 py-2 bg-white text-gray-800 rounded-lg font-medium opacity-0 group-hover:opacity-100 transition duration-300">
187
+ Voir la collection
188
+ </button>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+
196
+ <!-- Produits populaires -->
197
+ <div class="py-12 bg-gray-50">
198
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
199
+ <h2 class="text-2xl font-bold mb-8 text-center">Nos Produits Populaires</h2>
200
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8">
201
+ <!-- Les produits seront ajoutés dynamiquement -->
202
+ </div>
203
+ </div>
204
+ </div>
205
+
206
+ <!-- Avantages -->
207
+ <div class="py-12 bg-white">
208
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
209
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
210
+ <div class="text-center p-6 rounded-lg hover:shadow-md transition duration-300">
211
+ <div class="bg-indigo-100 w-16 h-16 mx-auto rounded-full flex items-center justify-center mb-4">
212
+ <i class="fas fa-truck text-indigo-600 text-xl"></i>
213
+ </div>
214
+ <h3 class="text-lg font-bold mb-2">Livraison rapide</h3>
215
+ <p class="text-gray-600">Livraison express en 24-48h sur toute la France métropolitaine.</p>
216
+ </div>
217
+ <div class="text-center p-6 rounded-lg hover:shadow-md transition duration-300">
218
+ <div class="bg-indigo-100 w-16 h-16 mx-auto rounded-full flex items-center justify-center mb-4">
219
+ <i class="fas fa-exchange-alt text-indigo-600 text-xl"></i>
220
+ </div>
221
+ <h3 class="text-lg font-bold mb-2">Retours faciles</h3>
222
+ <p class="text-gray-600">Retours gratuits sous 30 jours pour un achat en toute confiance.</p>
223
+ </div>
224
+ <div class="text-center p-6 rounded-lg hover:shadow-md transition duration-300">
225
+ <div class="bg-indigo-100 w-16 h-16 mx-auto rounded-full flex items-center justify-center mb-4">
226
+ <i class="fas fa-lock text-indigo-600 text-xl"></i>
227
+ </div>
228
+ <h3 class="text-lg font-bold mb-2">Paiement sécurisé</h3>
229
+ <p class="text-gray-600">Paiement 100% sécurisé avec cryptage SSL pour vos transactions.</p>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+ <!-- Newsletter -->
236
+ <div class="py-16 bg-indigo-600 text-white">
237
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
238
+ <h2 class="text-2xl font-bold mb-4">Abonnez-vous à notre newsletter</h2>
239
+ <p class="mb-8 max-w-2xl mx-auto">Recevez en exclusivité nos offres spéciales, nouveautés et conseils mode directement dans votre boîte mail.</p>
240
+ <div class="max-w-md mx-auto flex">
241
+ <input type="email" placeholder="Votre email" class="flex-grow px-4 py-3 rounded-l-lg focus:outline-none text-gray-800">
242
+ <button class="bg-indigo-800 px-6 py-3 rounded-r-lg font-medium hover:bg-indigo-900 transition duration-300">
243
+ S'abonner
244
+ </button>
245
+ </div>
246
+ </div>
247
+ </div>
248
+
249
+ <!-- Pied de page -->
250
+ <footer class="bg-gray-900 text-white pt-12 pb-6">
251
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
252
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
253
+ <div>
254
+ <h3 class="text-lg font-bold mb-4">Mode Élégance</h3>
255
+ <p class="text-gray-400">Notre mission est de vous offrir des vêtements de qualité à des prix abordables, tout en promouvant une mode responsable.</p>
256
+ </div>
257
+ <div>
258
+ <h3 class="text-lg font-bold mb-4">Liens rapides</h3>
259
+ <ul class="space-y-2">
260
+ <li><a href="#" class="text-gray-400 hover:text-white">Accueil</a></li>
261
+ <li><a href="#" class="text-gray-400 hover:text-white">Produits</a></li>
262
+ <li><a href="#" class="text-gray-400 hover:text-white">À propos</a></li>
263
+ <li><a href="#" class="text-gray-400 hover:text-white">Blog</a></li>
264
+ <li><a href="#" class="text-gray-400 hover:text-white">Contact</a></li>
265
+ </ul>
266
+ </div>
267
+ <div>
268
+ <h3 class="text-lg font-bold mb-4">Catégories</h3>
269
+ <ul class="space-y-2">
270
+ <li><a href="#" class="text-gray-400 hover:text-white">Femmes</a></li>
271
+ <li><a href="#" class="text-gray-400 hover:text-white">Hommes</a></li>
272
+ <li><a href="#" class="text-gray-400 hover:text-white">Enfants</a></li>
273
+ <li><a href="#" class="text-gray-400 hover:text-white">Accessoires</a></li>
274
+ <li><a href="#" class="text-gray-400 hover:text-white">Nouveautés</a></li>
275
+ </ul>
276
+ </div>
277
+ <div>
278
+ <h3 class="text-lg font-bold mb-4">Contact</h3>
279
+ <ul class="space-y-2">
280
+ <li class="flex items-center text-gray-400"><i class="fas fa-map-marker-alt mr-2"></i> 123 Rue de la Mode, Paris</li>
281
+ <li class="flex items-center text-gray-400"><i class="fas fa-phone mr-2"></i> +33 1 23 45 67 89</li>
282
+ <li class="flex items-center text-gray-400"><i class="fas fa-envelope mr-2"></i> [email protected]</li>
283
+ </ul>
284
+ <div class="flex space-x-4 mt-4">
285
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-facebook-f"></i></a>
286
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-twitter"></i></a>
287
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-instagram"></i></a>
288
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-pinterest"></i></a>
289
+ </div>
290
+ </div>
291
+ </div>
292
+ <div class="border-t border-gray-800 pt-6 flex flex-col md:flex-row justify-between items-center">
293
+ <p class="text-gray-400 text-sm mb-4 md:mb-0">© 2023 Mode Élégance. Tous droits réservés.</p>
294
+ <div class="flex space-x-6">
295
+ <a href="#" class="text-gray-400 hover:text-white text-sm">Mentions légales</a>
296
+ <a href="#" class="text-gray-400 hover:text-white text-sm">Politique de confidentialité</a>
297
+ <a href="#" class="text-gray-400 hover:text-white text-sm">Conditions générales</a>
298
+ </div>
299
+ </div>
300
+ </div>
301
+ </footer>
302
+
303
+ <script>
304
+ // Données des produits
305
+ const products = [
306
+ {
307
+ id: 1,
308
+ name: "Robe d'été fleurie",
309
+ price: 59.99,
310
+ oldPrice: 79.99,
311
+ image: "https://images.unsplash.com/photo-1551232864-3f0890e580d9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80",
312
+ category: "femmes",
313
+ isNew: true,
314
+ colors: ["rose", "bleu", "vert"]
315
+ },
316
+ {
317
+ id: 2,
318
+ name: "Jeans slim délavé",
319
+ price: 49.99,
320
+ image: "https://images.unsplash.com/photo-1542272604-787c3835535d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1026&q=80",
321
+ category: "hommes",
322
+ isNew: false,
323
+ colors: ["bleu", "noir"]
324
+ },
325
+ {
326
+ id: 3,
327
+ name: "Pull en cachemire",
328
+ price: 89.99,
329
+ oldPrice: 109.99,
330
+ image: "https://images.unsplash.com/photo-1527719327859-c6ce80353573?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=684&q=80",
331
+ category: "femmes",
332
+ isNew: false,
333
+ colors: ["beige", "gris", "bleu marine"]
334
+ },
335
+ {
336
+ id: 4,
337
+ name: "Baskets urbaines",
338
+ price: 69.99,
339
+ image: "https://images.unsplash.com/photo-1600269452121-4f2416e55c28?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=765&q=80",
340
+ category: "unisexe",
341
+ isNew: true,
342
+ colors: ["blanc", "noir"]
343
+ },
344
+ {
345
+ id: 5,
346
+ name: "Chemise en lin",
347
+ price: 45.99,
348
+ oldPrice: 59.99,
349
+ image: "https://images.unsplash.com/photo-1598033129183-c4f50c736f10?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1025&q=80",
350
+ category: "hommes",
351
+ isNew: false,
352
+ colors: ["blanc", "bleu clair"]
353
+ },
354
+ {
355
+ id: 6,
356
+ name: "Jupe plissée",
357
+ price: 39.99,
358
+ image: "https://images.unsplash.com/photo-1551232864-3f0890e580d9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80",
359
+ category: "femmes",
360
+ isNew: true,
361
+ colors: ["noir", "rouge", "bleu marine"]
362
+ },
363
+ {
364
+ id: 7,
365
+ name: "Veste en cuir",
366
+ price: 129.99,
367
+ oldPrice: 159.99,
368
+ image: "https://images.unsplash.com/photo-1551232864-3f0890e580d9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80",
369
+ category: "femmes",
370
+ isNew: false,
371
+ colors: ["noir", "marron"]
372
+ },
373
+ {
374
+ id: 8,
375
+ name: "Chaussures élégantes",
376
+ price: 79.99,
377
+ image: "https://images.unsplash.com/photo-1560769629-975ec94e6a86?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=764&q=80",
378
+ category: "hommes",
379
+ isNew: true,
380
+ colors: ["noir", "marron"]
381
+ }
382
+ ];
383
+
384
+ // Données des promotions
385
+ const promotions = [
386
+ {
387
+ id: 1,
388
+ title: "Soldes d'été",
389
+ subtitle: "Jusqu'à -50% sur une sélection",
390
+ image: "https://images.unsplash.com/photo-1469334031218-e382a71b716b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
391
+ cta: "Voir les offres"
392
+ },
393
+ {
394
+ id: 2,
395
+ title: "Nouvelle collection",
396
+ subtitle: "Découvrez nos dernières tendances",
397
+ image: "https://images.unsplash.com/photo-1483985988355-763728e1935b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
398
+ cta: "Découvrir"
399
+ },
400
+ {
401
+ id: 3,
402
+ title: "Livraison offerte",
403
+ subtitle: "Sur toutes les commandes dès 50€",
404
+ image: "https://images.unsplash.com/photo-1607082348824-0a96f2a4b9da?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80",
405
+ cta: "En savoir plus"
406
+ }
407
+ ];
408
+
409
+ // Panier
410
+ let cart = [];
411
+
412
+ // DOM Elements
413
+ const cartBtn = document.getElementById('cart-btn');
414
+ const closeCartBtn = document.getElementById('close-cart');
415
+ const cartSidebar = document.getElementById('cart-sidebar');
416
+ const cartOverlay = document.getElementById('cart-overlay');
417
+ const cartItemsContainer = document.getElementById('cart-items');
418
+ const cartCount = document.getElementById('cart-count');
419
+ const cartSubtotal = document.getElementById('cart-subtotal');
420
+ const emptyCartMessage = document.getElementById('empty-cart-message');
421
+ const mobileMenuButton = document.getElementById('mobile-menu-button');
422
+ const mobileMenu = document.getElementById('mobile-menu');
423
+ const promoSlider = document.getElementById('promo-slider');
424
+ const prevSlideBtn = document.getElementById('prev-slide');
425
+ const nextSlideBtn = document.getElementById('next-slide');
426
+ const productsContainer = document.querySelector('.grid.grid-cols-1.sm\\:grid-cols-2.lg\\:grid-cols-4.gap-8');
427
+
428
+ // Initialisation
429
+ document.addEventListener('DOMContentLoaded', () => {
430
+ renderProducts();
431
+ renderPromotions();
432
+ updateCartUI();
433
+ });
434
+
435
+ // Render products
436
+ function renderProducts() {
437
+ productsContainer.innerHTML = '';
438
+
439
+ products.forEach(product => {
440
+ const productCard = document.createElement('div');
441
+ productCard.className = 'product-card bg-white rounded-lg overflow-hidden shadow-md';
442
+
443
+ let badge = '';
444
+ if (product.isNew) {
445
+ badge = '<span class="absolute top-2 right-2 bg-indigo-600 text-white text-xs px-2 py-1 rounded">Nouveau</span>';
446
+ } else if (product.oldPrice) {
447
+ const discount = Math.round((1 - product.price / product.oldPrice) * 100);
448
+ badge = `<span class="absolute top-2 right-2 bg-red-500 text-white text-xs px-2 py-1 rounded">-${discount}%</span>`;
449
+ }
450
+
451
+ productCard.innerHTML = `
452
+ <div class="relative">
453
+ <img src="${product.image}" alt="${product.name}" class="w-full h-64 object-cover">
454
+ ${badge}
455
+ </div>
456
+ <div class="p-4">
457
+ <div class="flex justify-between items-start mb-2">
458
+ <h3 class="font-bold text-lg">${product.name}</h3>
459
+ <div class="flex space-x-1">
460
+ ${product.colors.map(color => `<span class="w-4 h-4 rounded-full bg-${color}-500"></span>`).join('')}
461
+ </div>
462
+ </div>
463
+ <div class="flex items-center mb-4">
464
+ <span class="font-bold text-indigo-600">€${product.price.toFixed(2)}</span>
465
+ ${product.oldPrice ? `<span class="ml-2 text-sm text-gray-500 line-through">€${product.oldPrice.toFixed(2)}</span>` : ''}
466
+ </div>
467
+ <button onclick="addToCart(${product.id})" class="w-full bg-indigo-100 text-indigo-600 py-2 rounded hover:bg-indigo-200 transition duration-300">
468
+ Ajouter au panier
469
+ </button>
470
+ </div>
471
+ `;
472
+
473
+ productsContainer.appendChild(productCard);
474
+ });
475
+ }
476
+
477
+ // Render promotions slider
478
+ function renderPromotions() {
479
+ promoSlider.innerHTML = '';
480
+ promoSlider.style.width = `${promotions.length * 100}%`;
481
+
482
+ promotions.forEach(promo => {
483
+ const slide = document.createElement('div');
484
+ slide.className = 'w-full flex-shrink-0 p-4';
485
+ slide.style.width = `${100 / promotions.length}%`;
486
+
487
+ slide.innerHTML = `
488
+ <div class="relative h-64 rounded-lg overflow-hidden">
489
+ <img src="${promo.image}" alt="${promo.title}" class="w-full h-full object-cover">
490
+ <div class="absolute inset-0 bg-black bg-opacity-30 flex items-center justify-center p-6">
491
+ <div class="text-center text-white">
492
+ <h3 class="text-2xl font-bold mb-2">${promo.title}</h3>
493
+ <p class="mb-4">${promo.subtitle}</p>
494
+ <button class="px-6 py-2 bg-white text-indigo-600 rounded-lg font-medium hover:bg-gray-100 transition duration-300">
495
+ ${promo.cta}
496
+ </button>
497
+ </div>
498
+ </div>
499
+ </div>
500
+ `;
501
+
502
+ promoSlider.appendChild(slide);
503
+ });
504
+ }
505
+
506
+ // Carrousel navigation
507
+ let currentSlide = 0;
508
+
509
+ nextSlideBtn.addEventListener('click', () => {
510
+ if (currentSlide < promotions.length - 1) {
511
+ currentSlide++;
512
+ updateSliderPosition();
513
+ }
514
+ });
515
+
516
+ prevSlideBtn.addEventListener('click', () => {
517
+ if (currentSlide > 0) {
518
+ currentSlide--;
519
+ updateSliderPosition();
520
+ }
521
+ });
522
+
523
+ function updateSliderPosition() {
524
+ const slideWidth = 100 / promotions.length;
525
+ promoSlider.style.transform = `translateX(-${currentSlide * slideWidth}%)`;
526
+ }
527
+
528
+ // Gestion du panier
529
+ function addToCart(productId) {
530
+ const product = products.find(p => p.id === productId);
531
+ const existingItem = cart.find(item => item.id === productId);
532
+
533
+ if (existingItem) {
534
+ existingItem.quantity++;
535
+ } else {
536
+ cart.push({
537
+ ...product,
538
+ quantity: 1
539
+ });
540
+ }
541
+
542
+ updateCartUI();
543
+ animateCartButton();
544
+ }
545
+
546
+ function removeFromCart(productId) {
547
+ cart = cart.filter(item => item.id !== productId);
548
+ updateCartUI();
549
+ }
550
+
551
+ function updateCartUI() {
552
+ // Mettre à jour le compteur
553
+ cartCount.textContent = cart.reduce((total, item) => total + item.quantity, 0);
554
+
555
+ // Mettre à jour les articles du panier
556
+ cartItemsContainer.innerHTML = '';
557
+
558
+ if (cart.length === 0) {
559
+ emptyCartMessage.classList.remove('hidden');
560
+ } else {
561
+ emptyCartMessage.classList.add('hidden');
562
+
563
+ cart.forEach(item => {
564
+ const cartItem = document.createElement('div');
565
+ cartItem.className = 'flex items-center justify-between py-4 border-b border-gray-200';
566
+
567
+ cartItem.innerHTML = `
568
+ <div class="flex items-center">
569
+ <img src="${item.image}" alt="${item.name}" class="w-16 h-16 object-cover rounded">
570
+ <div class="ml-4">
571
+ <h4 class="font-medium">${item.name}</h4>
572
+ <p class="text-indigo-600">€${item.price.toFixed(2)}</p>
573
+ <div class="flex items-center mt-1">
574
+ <button onclick="updateQuantity(${item.id}, ${item.quantity - 1})" ${item.quantity <= 1 ? 'disabled' : ''} class="text-gray-500 hover:text-indigo-600 ${item.quantity <= 1 ? 'opacity-50 cursor-not-allowed' : ''}">
575
+ <i class="fas fa-minus text-xs"></i>
576
+ </button>
577
+ <span class="mx-2">${item.quantity}</span>
578
+ <button onclick="updateQuantity(${item.id}, ${item.quantity + 1})" class="text-gray-500 hover:text-indigo-600">
579
+ <i class="fas fa-plus text-xs"></i>
580
+ </button>
581
+ </div>
582
+ </div>
583
+ </div>
584
+ <button onclick="removeFromCart(${item.id})" class="text-gray-500 hover:text-red-500">
585
+ <i class="fas fa-trash"></i>
586
+ </button>
587
+ `;
588
+
589
+ cartItemsContainer.appendChild(cartItem);
590
+ });
591
+
592
+ // Mettre à jour le sous-total
593
+ const subtotal = cart.reduce((total, item) => total + (item.price * item.quantity), 0);
594
+ cartSubtotal.textContent = `€${subtotal.toFixed(2)}`;
595
+ }
596
+ }
597
+
598
+ function updateQuantity(productId, newQuantity) {
599
+ const item = cart.find(item => item.id === productId);
600
+
601
+ if (item) {
602
+ if (newQuantity <= 0) {
603
+ removeFromCart(productId);
604
+ } else {
605
+ item.quantity = newQuantity;
606
+ updateCartUI();
607
+ }
608
+ }
609
+ }
610
+
611
+ function animateCartButton() {
612
+ cartBtn.classList.add('bounce');
613
+ setTimeout(() => {
614
+ cartBtn.classList.remove('bounce');
615
+ }, 1000);
616
+ }
617
+
618
+ // Gestion de l'affichage du panier
619
+ cartBtn.addEventListener('click', () => {
620
+ cartSidebar.classList.remove('translate-x-full');
621
+ cartOverlay.classList.remove('hidden');
622
+ document.body.style.overflow = 'hidden';
623
+ });
624
+
625
+ closeCartBtn.addEventListener('click', closeCart);
626
+ cartOverlay.addEventListener('click', closeCart);
627
+
628
+ function closeCart() {
629
+ cartSidebar.classList.add('translate-x-full');
630
+ cartOverlay.classList.add('hidden');
631
+ document.body.style.overflow = 'auto';
632
+ }
633
+
634
+ // Menu mobile
635
+ mobileMenuButton.addEventListener('click', () => {
636
+ mobileMenu.classList.toggle('hidden');
637
+ });
638
+
639
+ // Exposer les fonctions au scope global pour les boutons HTML
640
+ window.addToCart = addToCart;
641
+ window.removeFromCart = removeFromCart;
642
+ window.updateQuantity = updateQuantity;
643
+ </script>
644
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=ChristopheDucharme/v-tements-en-ligne" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
645
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Crée une page de vente en ligne de vêtements