arthhh1 commited on
Commit
8b3ae24
·
verified ·
1 Parent(s): 2543b6e

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +785 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Memef
3
- emoji: 📊
4
- colorFrom: gray
5
- colorTo: gray
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: memef
3
+ emoji: 🐳
4
+ colorFrom: purple
5
+ colorTo: red
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,785 @@
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
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>MemeFrenzy - The Addictive Meme Experience</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
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;800&display=swap');
11
+
12
+ body {
13
+ font-family: 'Poppins', sans-serif;
14
+ background-color: #f0f4ff;
15
+ overflow-x: hidden;
16
+ }
17
+
18
+ .meme-card:hover .meme-overlay {
19
+ opacity: 1;
20
+ }
21
+
22
+ .meme-overlay {
23
+ transition: all 0.3s ease;
24
+ }
25
+
26
+ .reaction-game {
27
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
28
+ }
29
+
30
+ .target {
31
+ transition: all 0.1s ease;
32
+ }
33
+
34
+ .pulse {
35
+ animation: pulse 2s infinite;
36
+ }
37
+
38
+ @keyframes pulse {
39
+ 0% { transform: scale(1); }
40
+ 50% { transform: scale(1.05); }
41
+ 100% { transform: scale(1); }
42
+ }
43
+
44
+ .shake {
45
+ animation: shake 0.5s;
46
+ }
47
+
48
+ @keyframes shake {
49
+ 0% { transform: translateX(0); }
50
+ 25% { transform: translateX(-5px); }
51
+ 50% { transform: translateX(5px); }
52
+ 75% { transform: translateX(-5px); }
53
+ 100% { transform: translateX(0); }
54
+ }
55
+
56
+ .fade-in {
57
+ animation: fadeIn 0.5s;
58
+ }
59
+
60
+ @keyframes fadeIn {
61
+ from { opacity: 0; }
62
+ to { opacity: 1; }
63
+ }
64
+
65
+ /* Accessibility */
66
+ .high-contrast {
67
+ filter: contrast(200%);
68
+ }
69
+
70
+ .text-large {
71
+ font-size: 1.25rem;
72
+ }
73
+ </style>
74
+ </head>
75
+ <body class="min-h-screen">
76
+ <!-- Accessibility Controls -->
77
+ <div class="bg-indigo-900 text-white p-2 flex flex-wrap gap-2 justify-center items-center">
78
+ <button id="highContrastBtn" class="px-3 py-1 bg-indigo-700 rounded-lg hover:bg-indigo-600 transition">
79
+ <i class="fas fa-adjust mr-1"></i> High Contrast
80
+ </button>
81
+ <button id="textSizeBtn" class="px-3 py-1 bg-indigo-700 rounded-lg hover:bg-indigo-600 transition">
82
+ <i class="fas fa-text-height mr-1"></i> Larger Text
83
+ </button>
84
+ <button id="darkModeBtn" class="px-3 py-1 bg-indigo-700 rounded-lg hover:bg-indigo-600 transition">
85
+ <i class="fas fa-moon mr-1"></i> Dark Mode
86
+ </button>
87
+ </div>
88
+
89
+ <!-- Header -->
90
+ <header class="bg-white shadow-md py-4 sticky top-0 z-10">
91
+ <div class="container mx-auto px-4 flex justify-between items-center">
92
+ <div class="flex items-center">
93
+ <i class="fas fa-fire text-3xl text-red-500 mr-2"></i>
94
+ <h1 class="text-2xl font-bold text-gray-800">MemeFrenzy</h1>
95
+ </div>
96
+ <div class="flex items-center space-x-4">
97
+ <div class="relative">
98
+ <span id="pointsCounter" class="bg-yellow-400 text-yellow-900 font-bold px-3 py-1 rounded-full">0</span>
99
+ <span class="absolute -top-2 -right-2 bg-red-500 text-white text-xs rounded-full h-5 w-5 flex items-center justify-center">🔥</span>
100
+ </div>
101
+ <button id="leaderboardBtn" class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition">
102
+ <i class="fas fa-trophy mr-1"></i> Leaderboard
103
+ </button>
104
+ </div>
105
+ </div>
106
+ </header>
107
+
108
+ <!-- Main Content -->
109
+ <main class="container mx-auto px-4 py-8">
110
+ <!-- Hero Section -->
111
+ <section class="text-center mb-12">
112
+ <h2 class="text-4xl font-bold text-gray-800 mb-4">Create. React. Go Viral.</h2>
113
+ <p class="text-xl text-gray-600 max-w-2xl mx-auto mb-8">The most addictive meme experience on the web. Generate memes, test your reaction time, and climb the leaderboard!</p>
114
+
115
+ <div class="flex justify-center space-x-4">
116
+ <button id="startGameBtn" class="px-6 py-3 bg-gradient-to-r from-purple-500 to-pink-500 text-white rounded-lg font-bold hover:from-purple-600 hover:to-pink-600 transition transform hover:scale-105">
117
+ <i class="fas fa-play mr-2"></i> Quick Game
118
+ </button>
119
+ <button id="createMemeBtn" class="px-6 py-3 bg-gradient-to-r from-blue-500 to-cyan-400 text-white rounded-lg font-bold hover:from-blue-600 hover:to-cyan-500 transition transform hover:scale-105">
120
+ <i class="fas fa-plus mr-2"></i> Create Meme
121
+ </button>
122
+ </div>
123
+ </section>
124
+
125
+ <!-- Meme Generator (Hidden by default) -->
126
+ <section id="memeGenerator" class="hidden bg-white rounded-xl shadow-lg p-6 mb-12">
127
+ <div class="flex flex-col md:flex-row gap-6">
128
+ <div class="md:w-1/2">
129
+ <h3 class="text-2xl font-bold text-gray-800 mb-4">Create Your Meme</h3>
130
+ <div class="mb-4">
131
+ <label class="block text-gray-700 mb-2">Meme Template</label>
132
+ <select id="memeTemplate" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500">
133
+ <option value="drake">Drake Hotline Bling</option>
134
+ <option value="distracted">Distracted Boyfriend</option>
135
+ <option value="changemind">Change My Mind</option>
136
+ <option value="batman">Batman Slapping Robin</option>
137
+ <option value="yodawg">Yo Dawg</option>
138
+ </select>
139
+ </div>
140
+ <div class="mb-4">
141
+ <label class="block text-gray-700 mb-2">Top Text</label>
142
+ <input type="text" id="topText" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="Enter top text">
143
+ </div>
144
+ <div class="mb-4">
145
+ <label class="block text-gray-700 mb-2">Bottom Text</label>
146
+ <input type="text" id="bottomText" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="Enter bottom text">
147
+ </div>
148
+ <div class="flex space-x-3">
149
+ <button id="generateMemeBtn" class="px-4 py-2 bg-green-500 text-white rounded-lg hover:bg-green-600 transition flex-1">
150
+ <i class="fas fa-magic mr-1"></i> Generate
151
+ </button>
152
+ <button id="randomMemeBtn" class="px-4 py-2 bg-purple-500 text-white rounded-lg hover:bg-purple-600 transition flex-1">
153
+ <i class="fas fa-random mr-1"></i> Random
154
+ </button>
155
+ </div>
156
+ </div>
157
+ <div class="md:w-1/2 flex flex-col items-center justify-center">
158
+ <div id="memePreview" class="bg-gray-100 rounded-lg w-full max-w-md h-64 flex items-center justify-center text-gray-400">
159
+ <p>Your meme will appear here</p>
160
+ </div>
161
+ <button id="shareMemeBtn" class="mt-4 px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition hidden">
162
+ <i class="fas fa-share-alt mr-1"></i> Share Meme
163
+ </button>
164
+ </div>
165
+ </div>
166
+ </section>
167
+
168
+ <!-- Reaction Game (Hidden by default) -->
169
+ <section id="reactionGame" class="hidden reaction-game rounded-xl shadow-lg p-6 mb-12 text-white">
170
+ <div class="text-center mb-6">
171
+ <h3 class="text-2xl font-bold mb-2">Reaction Time Challenge</h3>
172
+ <p>Click the targets as fast as you can! 30 seconds on the clock.</p>
173
+ </div>
174
+
175
+ <div class="flex justify-between items-center mb-6">
176
+ <div class="text-xl">
177
+ <span id="gameTimer" class="font-bold">30</span>s remaining
178
+ </div>
179
+ <div class="text-xl">
180
+ Score: <span id="gameScore" class="font-bold">0</span>
181
+ </div>
182
+ </div>
183
+
184
+ <div id="gameArea" class="bg-white bg-opacity-20 rounded-lg h-96 relative overflow-hidden">
185
+ <div id="gameTarget" class="target absolute hidden h-16 w-16 bg-red-500 rounded-full cursor-pointer flex items-center justify-center text-white font-bold shadow-lg">
186
+ <i class="fas fa-bolt"></i>
187
+ </div>
188
+ </div>
189
+
190
+ <div class="text-center mt-6">
191
+ <button id="startGameBtn2" class="px-6 py-3 bg-white text-indigo-700 rounded-lg font-bold hover:bg-gray-100 transition">
192
+ <i class="fas fa-play mr-2"></i> Start Game
193
+ </button>
194
+ </div>
195
+ </section>
196
+
197
+ <!-- Trending Memes -->
198
+ <section class="mb-12">
199
+ <div class="flex justify-between items-center mb-6">
200
+ <h3 class="text-2xl font-bold text-gray-800">🔥 Trending Today</h3>
201
+ <button id="refreshMemesBtn" class="px-3 py-1 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition">
202
+ <i class="fas fa-sync-alt mr-1"></i> Refresh
203
+ </button>
204
+ </div>
205
+
206
+ <div id="memeGrid" class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6">
207
+ <!-- Memes will be loaded here -->
208
+ </div>
209
+ </section>
210
+
211
+ <!-- Viral Challenge -->
212
+ <section class="bg-gradient-to-r from-pink-500 to-orange-500 text-white rounded-xl shadow-lg p-6 mb-12">
213
+ <div class="flex flex-col md:flex-row items-center">
214
+ <div class="md:w-2/3 mb-6 md:mb-0 md:pr-6">
215
+ <h3 class="text-2xl font-bold mb-3">24-Hour Viral Challenge</h3>
216
+ <p class="mb-4">Can you create a meme that gets 100+ reactions in 24 hours? Top creators get featured on our leaderboard!</p>
217
+ <button id="joinChallengeBtn" class="px-6 py-2 bg-white text-pink-600 rounded-lg font-bold hover:bg-gray-100 transition">
218
+ <i class="fas fa-bolt mr-2"></i> Join Challenge
219
+ </button>
220
+ </div>
221
+ <div class="md:w-1/3 flex justify-center">
222
+ <div class="bg-white bg-opacity-20 rounded-full h-32 w-32 flex items-center justify-center text-4xl">
223
+ <i class="fas fa-stopwatch"></i>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </section>
228
+ </main>
229
+
230
+ <!-- Leaderboard Modal -->
231
+ <div id="leaderboardModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
232
+ <div class="bg-white rounded-xl shadow-xl w-full max-w-2xl max-h-[90vh] overflow-y-auto">
233
+ <div class="p-6">
234
+ <div class="flex justify-between items-center mb-6">
235
+ <h3 class="text-2xl font-bold text-gray-800">🏆 Top Creators</h3>
236
+ <button id="closeLeaderboardBtn" class="text-gray-500 hover:text-gray-700">
237
+ <i class="fas fa-times text-2xl"></i>
238
+ </button>
239
+ </div>
240
+
241
+ <div class="overflow-x-auto">
242
+ <table class="w-full">
243
+ <thead class="bg-gray-100">
244
+ <tr>
245
+ <th class="px-4 py-2 text-left">Rank</th>
246
+ <th class="px-4 py-2 text-left">Creator</th>
247
+ <th class="px-4 py-2 text-left">Points</th>
248
+ <th class="px-4 py-2 text-left">Memes</th>
249
+ </tr>
250
+ </thead>
251
+ <tbody id="leaderboardBody">
252
+ <!-- Leaderboard data will be loaded here -->
253
+ </tbody>
254
+ </table>
255
+ </div>
256
+
257
+ <div class="mt-6 text-center">
258
+ <p class="text-gray-600">Play games and create viral memes to climb the leaderboard!</p>
259
+ </div>
260
+ </div>
261
+ </div>
262
+ </div>
263
+
264
+ <!-- Game Over Modal -->
265
+ <div id="gameOverModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
266
+ <div class="bg-white rounded-xl shadow-xl w-full max-w-md p-6">
267
+ <div class="text-center">
268
+ <div class="text-6xl mb-4">🎉</div>
269
+ <h3 class="text-2xl font-bold text-gray-800 mb-2">Game Over!</h3>
270
+ <p class="text-xl mb-4">Your score: <span id="finalScore" class="font-bold text-indigo-600">0</span></p>
271
+ <p class="text-gray-600 mb-6" id="gameFeedback">Nice try! Keep practicing to improve your reaction time.</p>
272
+
273
+ <div class="flex justify-center space-x-4">
274
+ <button id="playAgainBtn" class="px-6 py-2 bg-indigo-600 text-white rounded-lg font-bold hover:bg-indigo-700 transition">
275
+ <i class="fas fa-redo mr-2"></i> Play Again
276
+ </button>
277
+ <button id="shareScoreBtn" class="px-6 py-2 bg-green-500 text-white rounded-lg font-bold hover:bg-green-600 transition">
278
+ <i class="fas fa-share-alt mr-2"></i> Share
279
+ </button>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </div>
284
+
285
+ <!-- Footer -->
286
+ <footer class="bg-gray-800 text-white py-8">
287
+ <div class="container mx-auto px-4">
288
+ <div class="flex flex-col md:flex-row justify-between items-center">
289
+ <div class="mb-4 md:mb-0">
290
+ <div class="flex items-center">
291
+ <i class="fas fa-fire text-2xl text-red-500 mr-2"></i>
292
+ <span class="text-xl font-bold">MemeFrenzy</span>
293
+ </div>
294
+ <p class="text-gray-400 mt-1">The most addictive meme experience</p>
295
+ </div>
296
+ <div class="flex space-x-6">
297
+ <a href="#" class="text-gray-300 hover:text-white transition"><i class="fab fa-twitter"></i></a>
298
+ <a href="#" class="text-gray-300 hover:text-white transition"><i class="fab fa-instagram"></i></a>
299
+ <a href="#" class="text-gray-300 hover:text-white transition"><i class="fab fa-tiktok"></i></a>
300
+ <a href="#" class="text-gray-300 hover:text-white transition"><i class="fab fa-discord"></i></a>
301
+ </div>
302
+ </div>
303
+ <div class="border-t border-gray-700 mt-6 pt-6 text-center text-gray-400">
304
+ <p>© 2023 MemeFrenzy. All rights reserved. | <a href="#" class="hover:text-white transition">Privacy Policy</a> | <a href="#" class="hover:text-white transition">Terms of Service</a></p>
305
+ </div>
306
+ </div>
307
+ </footer>
308
+
309
+ <script>
310
+ // Sample meme data
311
+ const memeTemplates = {
312
+ drake: 'https://api.memegen.link/images/drake/',
313
+ distracted: 'https://api.memegen.link/images/distractedbf/',
314
+ changemind: 'https://api.memegen.link/images/changemymind/',
315
+ batman: 'https://api.memegen.link/images/batman/',
316
+ yodawg: 'https://api.memegen.link/images/yodawg/'
317
+ };
318
+
319
+ const trendingMemes = [
320
+ {
321
+ id: 1,
322
+ image: 'https://api.memegen.link/images/drake/YOLO_When you have work tomorrow/But stay up late anyway.png',
323
+ likes: 1245,
324
+ shares: 342,
325
+ creator: 'MemeMaster42'
326
+ },
327
+ {
328
+ id: 2,
329
+ image: 'https://api.memegen.link/images/distractedbf/Me trying to focus/My brain/Everything else.png',
330
+ likes: 892,
331
+ shares: 210,
332
+ creator: 'FunnyBones'
333
+ },
334
+ {
335
+ id: 3,
336
+ image: 'https://api.memegen.link/images/changemymind/Coffee is basically/Bean soup/Change my mind.png',
337
+ likes: 1567,
338
+ shares: 489,
339
+ creator: 'CaffeineQueen'
340
+ },
341
+ {
342
+ id: 4,
343
+ image: 'https://api.memegen.link/images/batman/When someone says/They don't like memes/Robin.png',
344
+ likes: 2034,
345
+ shares: 721,
346
+ creator: 'DarkKnightMemer'
347
+ },
348
+ {
349
+ id: 5,
350
+ image: 'https://api.memegen.link/images/yodawg/I heard you like memes/So I put a meme/In your meme.png',
351
+ likes: 1789,
352
+ shares: 532,
353
+ creator: 'MemeCeption'
354
+ },
355
+ {
356
+ id: 6,
357
+ image: 'https://api.memegen.link/images/drake/No_When someone says/Let's go out/Yes_When they say/Netflix and chill.png',
358
+ likes: 987,
359
+ shares: 321,
360
+ creator: 'NetflixAndChill'
361
+ },
362
+ {
363
+ id: 7,
364
+ image: 'https://api.memegen.link/images/distractedbf/My productivity/My phone/Me.png',
365
+ likes: 2456,
366
+ shares: 843,
367
+ creator: 'ProcrastinatorPro'
368
+ },
369
+ {
370
+ id: 8,
371
+ image: 'https://api.memegen.link/images/changemymind/Pineapple belongs/On pizza/Change my mind.png',
372
+ likes: 3120,
373
+ shares: 1024,
374
+ creator: 'PizzaLover'
375
+ }
376
+ ];
377
+
378
+ // Sample leaderboard data
379
+ const leaderboardData = [
380
+ { rank: 1, name: 'MemeLord3000', points: 12500, memes: 42 },
381
+ { rank: 2, name: 'DankMaster', points: 11200, memes: 38 },
382
+ { rank: 3, name: 'ViralQueen', points: 9800, memes: 35 },
383
+ { rank: 4, name: 'LOLGenerator', points: 8750, memes: 31 },
384
+ { rank: 5, name: 'FunnyBones', points: 8200, memes: 29 },
385
+ { rank: 6, name: 'Jokester', points: 7650, memes: 27 },
386
+ { rank: 7, name: 'HahaHero', points: 7200, memes: 25 },
387
+ { rank: 8, name: 'GiggleGuru', points: 6800, memes: 23 },
388
+ { rank: 9, name: 'ChuckleChamp', points: 6400, memes: 21 },
389
+ { rank: 10, name: 'SmirkSultan', points: 6000, memes: 20 }
390
+ ];
391
+
392
+ // Game variables
393
+ let gameScore = 0;
394
+ let gameTime = 30;
395
+ let gameInterval;
396
+ let timerInterval;
397
+ let points = 0;
398
+ let userPoints = localStorage.getItem('memeFrenzyPoints') || 0;
399
+
400
+ // DOM elements
401
+ const pointsCounter = document.getElementById('pointsCounter');
402
+ const leaderboardBtn = document.getElementById('leaderboardBtn');
403
+ const leaderboardModal = document.getElementById('leaderboardModal');
404
+ const closeLeaderboardBtn = document.getElementById('closeLeaderboardBtn');
405
+ const leaderboardBody = document.getElementById('leaderboardBody');
406
+ const startGameBtn = document.getElementById('startGameBtn');
407
+ const startGameBtn2 = document.getElementById('startGameBtn2');
408
+ const createMemeBtn = document.getElementById('createMemeBtn');
409
+ const memeGenerator = document.getElementById('memeGenerator');
410
+ const reactionGame = document.getElementById('reactionGame');
411
+ const gameTimer = document.getElementById('gameTimer');
412
+ const gameScoreDisplay = document.getElementById('gameScore');
413
+ const gameArea = document.getElementById('gameArea');
414
+ const gameTarget = document.getElementById('gameTarget');
415
+ const gameOverModal = document.getElementById('gameOverModal');
416
+ const finalScore = document.getElementById('finalScore');
417
+ const gameFeedback = document.getElementById('gameFeedback');
418
+ const playAgainBtn = document.getElementById('playAgainBtn');
419
+ const shareScoreBtn = document.getElementById('shareScoreBtn');
420
+ const memeGrid = document.getElementById('memeGrid');
421
+ const refreshMemesBtn = document.getElementById('refreshMemesBtn');
422
+ const memeTemplate = document.getElementById('memeTemplate');
423
+ const topText = document.getElementById('topText');
424
+ const bottomText = document.getElementById('bottomText');
425
+ const generateMemeBtn = document.getElementById('generateMemeBtn');
426
+ const randomMemeBtn = document.getElementById('randomMemeBtn');
427
+ const memePreview = document.getElementById('memePreview');
428
+ const shareMemeBtn = document.getElementById('shareMemeBtn');
429
+ const joinChallengeBtn = document.getElementById('joinChallengeBtn');
430
+
431
+ // Accessibility buttons
432
+ const highContrastBtn = document.getElementById('highContrastBtn');
433
+ const textSizeBtn = document.getElementById('textSizeBtn');
434
+ const darkModeBtn = document.getElementById('darkModeBtn');
435
+
436
+ // Initialize
437
+ document.addEventListener('DOMContentLoaded', function() {
438
+ pointsCounter.textContent = userPoints;
439
+ loadTrendingMemes();
440
+ populateLeaderboard();
441
+
442
+ // Add confetti effect to points counter on load
443
+ setTimeout(() => {
444
+ pointsCounter.classList.add('pulse');
445
+ }, 1000);
446
+ });
447
+
448
+ // Load trending memes
449
+ function loadTrendingMemes() {
450
+ memeGrid.innerHTML = '';
451
+
452
+ trendingMemes.forEach(meme => {
453
+ const memeCard = document.createElement('div');
454
+ memeCard.className = 'meme-card bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition transform hover:-translate-y-1 relative';
455
+
456
+ memeCard.innerHTML = `
457
+ <img src="${meme.image}" alt="Trending meme" class="w-full h-48 object-cover">
458
+ <div class="meme-overlay absolute inset-0 bg-black bg-opacity-50 opacity-0 flex items-center justify-center space-x-4">
459
+ <button class="like-btn px-3 py-1 bg-white bg-opacity-90 text-red-500 rounded-full hover:bg-opacity-100 transition">
460
+ <i class="fas fa-heart mr-1"></i> ${meme.likes}
461
+ </button>
462
+ <button class="share-btn px-3 py-1 bg-white bg-opacity-90 text-blue-500 rounded-full hover:bg-opacity-100 transition">
463
+ <i class="fas fa-share-alt mr-1"></i> ${meme.shares}
464
+ </button>
465
+ </div>
466
+ <div class="p-3">
467
+ <p class="text-gray-600 text-sm">by @${meme.creator}</p>
468
+ </div>
469
+ `;
470
+
471
+ memeGrid.appendChild(memeCard);
472
+ });
473
+ }
474
+
475
+ // Populate leaderboard
476
+ function populateLeaderboard() {
477
+ leaderboardBody.innerHTML = '';
478
+
479
+ leaderboardData.forEach(user => {
480
+ const row = document.createElement('tr');
481
+ row.className = 'border-b border-gray-200 hover:bg-gray-50';
482
+
483
+ row.innerHTML = `
484
+ <td class="px-4 py-3 font-bold">${user.rank}</td>
485
+ <td class="px-4 py-3">${user.name}</td>
486
+ <td class="px-4 py-3">${user.points.toLocaleString()}</td>
487
+ <td class="px-4 py-3">${user.memes}</td>
488
+ `;
489
+
490
+ leaderboardBody.appendChild(row);
491
+ });
492
+ }
493
+
494
+ // Add points to user
495
+ function addPoints(amount) {
496
+ userPoints = parseInt(userPoints) + amount;
497
+ pointsCounter.textContent = userPoints;
498
+ localStorage.setItem('memeFrenzyPoints', userPoints);
499
+
500
+ // Animation
501
+ pointsCounter.classList.add('shake');
502
+ setTimeout(() => {
503
+ pointsCounter.classList.remove('shake');
504
+ }, 500);
505
+ }
506
+
507
+ // Start reaction game
508
+ function startReactionGame() {
509
+ memeGenerator.classList.add('hidden');
510
+ reactionGame.classList.remove('hidden');
511
+
512
+ gameScore = 0;
513
+ gameTime = 30;
514
+ gameScoreDisplay.textContent = gameScore;
515
+ gameTimer.textContent = gameTime;
516
+
517
+ // Scroll to game
518
+ reactionGame.scrollIntoView({ behavior: 'smooth' });
519
+ }
520
+
521
+ // Start game timer
522
+ function startGameTimer() {
523
+ gameTime = 30;
524
+ gameTimer.textContent = gameTime;
525
+
526
+ timerInterval = setInterval(() => {
527
+ gameTime--;
528
+ gameTimer.textContent = gameTime;
529
+
530
+ if (gameTime <= 0) {
531
+ endGame();
532
+ }
533
+ }, 1000);
534
+ }
535
+
536
+ // Start target spawning
537
+ function startTargetSpawning() {
538
+ gameInterval = setInterval(spawnTarget, 1000);
539
+ }
540
+
541
+ // Spawn target
542
+ function spawnTarget() {
543
+ // Remove any existing target
544
+ if (gameTarget.parentNode) {
545
+ gameTarget.parentNode.removeChild(gameTarget);
546
+ }
547
+
548
+ // Create new target
549
+ const target = gameTarget.cloneNode(true);
550
+ target.classList.remove('hidden');
551
+
552
+ // Random position
553
+ const gameWidth = gameArea.offsetWidth - 64;
554
+ const gameHeight = gameArea.offsetHeight - 64;
555
+
556
+ const randomX = Math.floor(Math.random() * gameWidth);
557
+ const randomY = Math.floor(Math.random() * gameHeight);
558
+
559
+ target.style.left = `${randomX}px`;
560
+ target.style.top = `${randomY}px`;
561
+
562
+ // Random size for variety (50-100px)
563
+ const randomSize = 50 + Math.floor(Math.random() * 50);
564
+ target.style.width = `${randomSize}px`;
565
+ target.style.height = `${randomSize}px`;
566
+
567
+ // Click handler
568
+ target.addEventListener('click', function() {
569
+ gameScore++;
570
+ gameScoreDisplay.textContent = gameScore;
571
+ this.classList.add('hidden');
572
+
573
+ // Add small animation
574
+ const explosion = document.createElement('div');
575
+ explosion.className = 'absolute bg-yellow-400 rounded-full opacity-70';
576
+ explosion.style.width = `${randomSize * 1.5}px`;
577
+ explosion.style.height = `${randomSize * 1.5}px`;
578
+ explosion.style.left = `${randomX - (randomSize * 0.25)}px`;
579
+ explosion.style.top = `${randomY - (randomSize * 0.25)}px`;
580
+ explosion.style.transform = 'scale(0)';
581
+ explosion.style.transition = 'transform 0.3s ease-out, opacity 0.3s ease-out';
582
+
583
+ gameArea.appendChild(explosion);
584
+
585
+ setTimeout(() => {
586
+ explosion.style.transform = 'scale(1)';
587
+ explosion.style.opacity = '0';
588
+ }, 10);
589
+
590
+ setTimeout(() => {
591
+ gameArea.removeChild(explosion);
592
+ }, 310);
593
+ });
594
+
595
+ gameArea.appendChild(target);
596
+ }
597
+
598
+ // End game
599
+ function endGame() {
600
+ clearInterval(gameInterval);
601
+ clearInterval(timerInterval);
602
+
603
+ // Calculate points earned (1 point per click + bonus for high scores)
604
+ const pointsEarned = gameScore + Math.floor(gameScore / 10);
605
+ addPoints(pointsEarned);
606
+
607
+ // Show game over modal
608
+ finalScore.textContent = gameScore;
609
+
610
+ // Set feedback based on score
611
+ if (gameScore >= 50) {
612
+ gameFeedback.textContent = 'Legendary! You have lightning-fast reflexes!';
613
+ } else if (gameScore >= 30) {
614
+ gameFeedback.textContent = 'Great job! You're faster than most!';
615
+ } else if (gameScore >= 15) {
616
+ gameFeedback.textContent = 'Nice try! Keep practicing to improve.';
617
+ } else {
618
+ gameFeedback.textContent = 'Good start! Try again to beat your score.';
619
+ }
620
+
621
+ gameOverModal.classList.remove('hidden');
622
+ }
623
+
624
+ // Generate meme
625
+ function generateMeme() {
626
+ const template = memeTemplate.value;
627
+ const top = encodeURIComponent(topText.value);
628
+ const bottom = encodeURIComponent(bottomText.value);
629
+
630
+ let memeUrl = memeTemplates[template];
631
+
632
+ if (template === 'drake') {
633
+ // Drake template uses a different format
634
+ memeUrl += `${top}/${bottom}.png`;
635
+ } else {
636
+ memeUrl += `${top}/${bottom}.png`;
637
+ }
638
+
639
+ memePreview.innerHTML = `<img src="${memeUrl}" alt="Your meme" class="w-full h-full object-contain">`;
640
+ shareMemeBtn.classList.remove('hidden');
641
+
642
+ // Add points for creating a meme
643
+ addPoints(5);
644
+
645
+ // Add animation
646
+ memePreview.classList.add('fade-in');
647
+ setTimeout(() => {
648
+ memePreview.classList.remove('fade-in');
649
+ }, 500);
650
+ }
651
+
652
+ // Generate random meme
653
+ function generateRandomMeme() {
654
+ const templates = Object.keys(memeTemplates);
655
+ const randomTemplate = templates[Math.floor(Math.random() * templates.length)];
656
+
657
+ // Set random template
658
+ memeTemplate.value = randomTemplate;
659
+
660
+ // Random texts
661
+ const randomTexts = [
662
+ ['When you find money in old pants', 'But then remember it's your own money'],
663
+ ['Me trying to be productive', 'My brain', 'Everything else'],
664
+ ['Pineapple on pizza is fine', 'Change my mind'],
665
+ ['When someone says they don't like memes', 'Me', 'Preparing to fight'],
666
+ ['Yo dawg', 'I heard you like memes', 'So I put a meme in your meme'],
667
+ ['No', 'Healthy sleep schedule', 'Yes', 'Staying up until 3am'],
668
+ ['My plans for the weekend', 'Nothing', 'Me', 'Happy'],
669
+ ['When you're about to sneeze', 'But then it goes away']
670
+ ];
671
+
672
+ const randomText = randomTexts[Math.floor(Math.random() * randomTexts.length)];
673
+
674
+ if (randomTemplate === 'drake') {
675
+ topText.value = randomText[0];
676
+ bottomText.value = randomText[1];
677
+ } else if (randomTemplate === 'distracted') {
678
+ topText.value = randomText[0];
679
+ bottomText.value = randomText[1];
680
+ // For distracted boyfriend, we'd need a third text box in a real implementation
681
+ } else {
682
+ topText.value = randomText[0];
683
+ if (randomText.length > 1) {
684
+ bottomText.value = randomText[1];
685
+ } else {
686
+ bottomText.value = '';
687
+ }
688
+ }
689
+
690
+ generateMeme();
691
+ }
692
+
693
+ // Event listeners
694
+ leaderboardBtn.addEventListener('click', () => {
695
+ leaderboardModal.classList.remove('hidden');
696
+ });
697
+
698
+ closeLeaderboardBtn.addEventListener('click', () => {
699
+ leaderboardModal.classList.add('hidden');
700
+ });
701
+
702
+ startGameBtn.addEventListener('click', startReactionGame);
703
+ startGameBtn2.addEventListener('click', () => {
704
+ startGameTimer();
705
+ startTargetSpawning();
706
+ startGameBtn2.disabled = true;
707
+ });
708
+
709
+ createMemeBtn.addEventListener('click', () => {
710
+ reactionGame.classList.add('hidden');
711
+ memeGenerator.classList.remove('hidden');
712
+ memeGenerator.scrollIntoView({ behavior: 'smooth' });
713
+ });
714
+
715
+ playAgainBtn.addEventListener('click', () => {
716
+ gameOverModal.classList.add('hidden');
717
+ startGameTimer();
718
+ startTargetSpawning();
719
+ gameScore = 0;
720
+ gameScoreDisplay.textContent = gameScore;
721
+ startGameBtn2.disabled = true;
722
+ });
723
+
724
+ shareScoreBtn.addEventListener('click', () => {
725
+ alert(`I scored ${gameScore} points in MemeFrenzy Reaction Game! Can you beat me? 🚀`);
726
+ });
727
+
728
+ refreshMemesBtn.addEventListener('click', () => {
729
+ refreshMemesBtn.innerHTML = '<i class="fas fa-spinner fa-spin mr-1"></i> Refreshing';
730
+ setTimeout(() => {
731
+ loadTrendingMemes();
732
+ refreshMemesBtn.innerHTML = '<i class="fas fa-sync-alt mr-1"></i> Refresh';
733
+ addPoints(1); // Small reward for refreshing
734
+ }, 800);
735
+ });
736
+
737
+ generateMemeBtn.addEventListener('click', generateMeme);
738
+ randomMemeBtn.addEventListener('click', generateRandomMeme);
739
+
740
+ shareMemeBtn.addEventListener('click', () => {
741
+ alert('Meme shared to your social media! (This would connect to social APIs in a real app)');
742
+ addPoints(10); // Bonus for sharing
743
+ });
744
+
745
+ joinChallengeBtn.addEventListener('click', () => {
746
+ alert('Challenge accepted! Create a meme now to start your 24-hour timer.');
747
+ addPoints(5); // Small reward for joining
748
+ });
749
+
750
+ // Accessibility features
751
+ highContrastBtn.addEventListener('click', () => {
752
+ document.body.classList.toggle('high-contrast');
753
+ });
754
+
755
+ textSizeBtn.addEventListener('click', () => {
756
+ document.body.classList.toggle('text-large');
757
+ });
758
+
759
+ darkModeBtn.addEventListener('click', () => {
760
+ document.body.classList.toggle('bg-gray-900');
761
+ document.body.classList.toggle('text-white');
762
+ document.body.classList.toggle('f0f4ff');
763
+
764
+ // Toggle dark mode for specific elements
765
+ const elements = document.querySelectorAll('.bg-white, .text-gray-800');
766
+ elements.forEach(el => {
767
+ el.classList.toggle('bg-gray-800');
768
+ el.classList.toggle('text-white');
769
+ el.classList.toggle('bg-white');
770
+ el.classList.toggle('text-gray-800');
771
+ });
772
+ });
773
+
774
+ // Close modals when clicking outside
775
+ window.addEventListener('click', (e) => {
776
+ if (e.target === leaderboardModal) {
777
+ leaderboardModal.classList.add('hidden');
778
+ }
779
+ if (e.target === gameOverModal) {
780
+ gameOverModal.classList.add('hidden');
781
+ }
782
+ });
783
+ </script>
784
+ <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=arthhh1/memef" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
785
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ AN WEB APP THATS USABLE FOR EVERYONE AND HAVE AN VIRAL CONTENT THATS IMPOSSIBLE NOT TO BE ADDICTED