Enderchef commited on
Commit
a2bb0e0
·
verified ·
1 Parent(s): 1518f78

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +290 -19
  3. prompts.txt +3 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Memeboard
3
- emoji:
4
- colorFrom: indigo
5
  colorTo: blue
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: memeboard
3
+ emoji: 🐳
4
+ colorFrom: pink
5
  colorTo: blue
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,290 @@
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
+ <meta http-equiv="Permissions-Policy" content="interest-cohort=()">
7
+ <title>Meme Soundboard</title>
8
+ <script src="https://cdn.tailwindcss.com?plugins=forms,aspect-ratio"></script>
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+ <style>
11
+ @import url('https://fonts.googleapis.com/css2?family=Comic+Neue:wght@400;700&display=swap');
12
+
13
+ body {
14
+ font-family: 'Comic Neue', cursive;
15
+ background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
16
+ min-height: 100vh;
17
+ }
18
+
19
+ .sound-btn {
20
+ transition: all 0.3s ease;
21
+ transform: scale(1);
22
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
23
+ }
24
+
25
+ .sound-btn:hover {
26
+ transform: scale(1.05);
27
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
28
+ }
29
+
30
+ .sound-btn:active {
31
+ transform: scale(0.98);
32
+ }
33
+
34
+ .playing {
35
+ animation: pulse 0.5s infinite alternate;
36
+ border-color: #3b82f6 !important;
37
+ }
38
+
39
+ @keyframes pulse {
40
+ from {
41
+ box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
42
+ }
43
+ to {
44
+ box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
45
+ }
46
+ }
47
+
48
+ .volume-slider {
49
+ -webkit-appearance: none;
50
+ width: 100%;
51
+ height: 8px;
52
+ border-radius: 4px;
53
+ background: #d1d5db;
54
+ outline: none;
55
+ }
56
+
57
+ .volume-slider::-webkit-slider-thumb {
58
+ -webkit-appearance: none;
59
+ appearance: none;
60
+ width: 20px;
61
+ height: 20px;
62
+ border-radius: 50%;
63
+ background: #3b82f6;
64
+ cursor: pointer;
65
+ }
66
+
67
+ .error-message {
68
+ display: none;
69
+ position: fixed;
70
+ top: 20px;
71
+ left: 50%;
72
+ transform: translateX(-50%);
73
+ background-color: #ef4444;
74
+ color: white;
75
+ padding: 12px 24px;
76
+ border-radius: 8px;
77
+ z-index: 100;
78
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
79
+ }
80
+ </style>
81
+ </head>
82
+ <body class="p-4 md:p-8">
83
+ <div class="error-message" id="errorMessage">
84
+ <i class="fas fa-exclamation-triangle mr-2"></i>
85
+ <span id="errorText">Sound could not be loaded. Please try again.</span>
86
+ </div>
87
+
88
+ <div class="max-w-4xl mx-auto">
89
+ <header class="text-center mb-8">
90
+ <h1 class="text-4xl md:text-5xl font-bold text-gray-800 mb-2">Meme Soundboard</h1>
91
+ <p class="text-lg text-gray-600">Press the buttons to play legendary meme sounds</p>
92
+
93
+ <div class="mt-6 flex items-center justify-center space-x-4">
94
+ <i class="fas fa-volume-up text-blue-500 text-xl"></i>
95
+ <input type="range" min="0" max="1" step="0.01" value="0.5" class="volume-slider w-48" id="volumeControl">
96
+ <span class="text-gray-700 font-medium" id="volumeValue">50%</span>
97
+ </div>
98
+ </header>
99
+
100
+ <div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4" id="soundboard">
101
+ <!-- Sound buttons will be added here by JavaScript -->
102
+ </div>
103
+
104
+ <div class="mt-12 text-center">
105
+ <button id="stopAllBtn" class="px-6 py-3 bg-red-500 text-white rounded-full font-bold hover:bg-red-600 transition">
106
+ <i class="fas fa-stop mr-2"></i> Stop All Sounds
107
+ </button>
108
+ </div>
109
+ </div>
110
+
111
+ <!-- Audio elements with fallback sources -->
112
+ <audio id="yodelAudio" preload="auto">
113
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-yodel-voice-sound-2223.mp3" type="audio/mpeg">
114
+ <source src="https://www.soundjay.com/misc/sounds/yodel-01.mp3" type="audio/mpeg">
115
+ </audio>
116
+ <audio id="wompWompAudio" preload="auto">
117
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-sad-trombone-2817.mp3" type="audio/mpeg">
118
+ <source src="https://www.soundjay.com/misc/sounds/sad-trombone-01.mp3" type="audio/mpeg">
119
+ </audio>
120
+ <audio id="rickrollAudio" preload="auto">
121
+ <source src="https://www.soundjay.com/misc/sounds/never-gonna-give-you-up-01.mp3" type="audio/mpeg">
122
+ </audio>
123
+ <audio id="sadViolinAudio" preload="auto">
124
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-sad-violin-1491.mp3" type="audio/mpeg">
125
+ <source src="https://www.soundjay.com/misc/sounds/sad-violin-01.mp3" type="audio/mpeg">
126
+ </audio>
127
+ <audio id="bruhAudio" preload="auto">
128
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-funny-fart-2885.mp3" type="audio/mpeg">
129
+ <source src="https://www.soundjay.com/misc/sounds/bruh-sound-01.mp3" type="audio/mpeg">
130
+ </audio>
131
+ <audio id="airhornAudio" preload="auto">
132
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-air-horn-2915.mp3" type="audio/mpeg">
133
+ <source src="https://www.soundjay.com/misc/sounds/air-horn-01.mp3" type="audio/mpeg">
134
+ </audio>
135
+ <audio id="oofAudio" preload="auto">
136
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-video-game-falling-2819.mp3" type="audio/mpeg">
137
+ <source src="https://www.soundjay.com/misc/sounds/roblox-oof-01.mp3" type="audio/mpeg">
138
+ </audio>
139
+ <audio id="windowsErrorAudio" preload="auto">
140
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-windows-7-error-sound-2572.mp3" type="audio/mpeg">
141
+ <source src="https://www.soundjay.com/misc/sounds/windows-error-01.mp3" type="audio/mpeg">
142
+ </audio>
143
+ <audio id="tacoBellAudio" preload="auto">
144
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-bell-notification-933.mp3" type="audio/mpeg">
145
+ <source src="https://www.soundjay.com/misc/sounds/taco-bell-01.mp3" type="audio/mpeg">
146
+ </audio>
147
+ <audio id="cricketAudio" preload="auto">
148
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-crickets-and-insects-in-the-wild-1254.mp3" type="audio/mpeg">
149
+ <source src="https://www.soundjay.com/misc/sounds/crickets-01.mp3" type="audio/mpeg">
150
+ </audio>
151
+ <audio id="mlgAirhornAudio" preload="auto">
152
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-horn-call-2916.mp3" type="audio/mpeg">
153
+ <source src="https://www.soundjay.com/misc/sounds/mlg-airhorn-01.mp3" type="audio/mpeg">
154
+ </audio>
155
+ <audio id="vineBoomAudio" preload="auto">
156
+ <source src="https://assets.mixkit.co/sfx/preview/mixkit-explosion-impact-1680.mp3" type="audio/mpeg">
157
+ <source src="https://www.soundjay.com/misc/sounds/vine-boom-01.mp3" type="audio/mpeg">
158
+ </audio>
159
+
160
+ <script>
161
+ document.addEventListener('DOMContentLoaded', function() {
162
+ // Add Permissions Policy to prevent warnings
163
+ const meta = document.createElement('meta');
164
+ meta.httpEquiv = 'Permissions-Policy';
165
+ meta.content = 'interest-cohort=()';
166
+ document.head.appendChild(meta);
167
+
168
+ const sounds = [
169
+ { id: 'yodelAudio', name: 'Yodeling Kid', icon: 'fa-music', color: 'bg-yellow-400', border: 'border-yellow-500' },
170
+ { id: 'wompWompAudio', name: 'Womp Womp', icon: 'fa-face-sad-cry', color: 'bg-purple-400', border: 'border-purple-500' },
171
+ { id: 'rickrollAudio', name: 'Rickroll', icon: 'fa-user-secret', color: 'bg-blue-400', border: 'border-blue-500' },
172
+ { id: 'sadViolinAudio', name: 'Sad Violin', icon: 'fa-violin', color: 'bg-indigo-400', border: 'border-indigo-500' },
173
+ { id: 'bruhAudio', name: 'Bruh Sound', icon: 'fa-face-grin-squint-tears', color: 'bg-green-400', border: 'border-green-500' },
174
+ { id: 'airhornAudio', name: 'Airhorn', icon: 'fa-bullhorn', color: 'bg-red-400', border: 'border-red-500' },
175
+ { id: 'oofAudio', name: 'Roblox Oof', icon: 'fa-gamepad', color: 'bg-orange-400', border: 'border-orange-500' },
176
+ { id: 'windowsErrorAudio', name: 'Windows Error', icon: 'fa-window-restore', color: 'bg-gray-400', border: 'border-gray-500' },
177
+ { id: 'tacoBellAudio', name: 'Taco Bell Bong', icon: 'fa-bell', color: 'bg-pink-400', border: 'border-pink-500' },
178
+ { id: 'cricketAudio', name: 'Cricket Sounds', icon: 'fa-bug', color: 'bg-lime-400', border: 'border-lime-500' },
179
+ { id: 'mlgAirhornAudio', name: 'MLG Airhorn', icon: 'fa-glasses', color: 'bg-cyan-400', border: 'border-cyan-500' },
180
+ { id: 'vineBoomAudio', name: 'Vine Boom', icon: 'fa-burst', color: 'bg-amber-400', border: 'border-amber-500' }
181
+ ];
182
+
183
+ const soundboard = document.getElementById('soundboard');
184
+ const errorMessage = document.getElementById('errorMessage');
185
+ const errorText = document.getElementById('errorText');
186
+
187
+ sounds.forEach(sound => {
188
+ const soundBtn = document.createElement('button');
189
+ soundBtn.className = `sound-btn ${sound.color} ${sound.border} border-2 rounded-xl p-4 flex flex-col items-center justify-center h-32`;
190
+ soundBtn.innerHTML = `
191
+ <i class="fas ${sound.icon} text-3xl mb-2"></i>
192
+ <span class="font-bold text-gray-800">${sound.name}</span>
193
+ `;
194
+
195
+ soundBtn.addEventListener('click', function() {
196
+ playSound(sound.id, soundBtn);
197
+ });
198
+
199
+ soundboard.appendChild(soundBtn);
200
+ });
201
+
202
+ const volumeControl = document.getElementById('volumeControl');
203
+ const volumeValue = document.getElementById('volumeValue');
204
+ const stopAllBtn = document.getElementById('stopAllBtn');
205
+
206
+ // Get all audio elements
207
+ const allAudioElements = document.querySelectorAll('audio');
208
+
209
+ // Set initial volume
210
+ allAudioElements.forEach(audio => {
211
+ audio.volume = volumeControl.value;
212
+
213
+ // Add error handling for each audio element
214
+ audio.addEventListener('error', function() {
215
+ showError(`Failed to load ${audio.id.replace('Audio', '')} sound`);
216
+ });
217
+ });
218
+
219
+ // Update volume when slider changes
220
+ volumeControl.addEventListener('input', function() {
221
+ const volume = this.value;
222
+ volumeValue.textContent = `${Math.round(volume * 100)}%`;
223
+
224
+ allAudioElements.forEach(audio => {
225
+ audio.volume = volume;
226
+ });
227
+ });
228
+
229
+ // Stop all sounds
230
+ stopAllBtn.addEventListener('click', function() {
231
+ allAudioElements.forEach(audio => {
232
+ audio.pause();
233
+ audio.currentTime = 0;
234
+ });
235
+
236
+ // Remove playing class from all buttons
237
+ document.querySelectorAll('.sound-btn').forEach(btn => {
238
+ btn.classList.remove('playing');
239
+ });
240
+ });
241
+
242
+ function playSound(soundId, button) {
243
+ // Stop all sounds first
244
+ allAudioElements.forEach(audio => {
245
+ audio.pause();
246
+ audio.currentTime = 0;
247
+ });
248
+
249
+ // Remove playing class from all buttons
250
+ document.querySelectorAll('.sound-btn').forEach(btn => {
251
+ btn.classList.remove('playing');
252
+ });
253
+
254
+ // Play the selected sound
255
+ const audio = document.getElementById(soundId);
256
+
257
+ try {
258
+ audio.currentTime = 0;
259
+ const playPromise = audio.play();
260
+
261
+ if (playPromise !== undefined) {
262
+ playPromise.catch(error => {
263
+ showError("Couldn't play sound. Try clicking again or check your browser permissions.");
264
+ });
265
+ }
266
+
267
+ // Add playing class to the clicked button
268
+ button.classList.add('playing');
269
+
270
+ // Remove playing class when sound ends
271
+ audio.addEventListener('ended', function() {
272
+ button.classList.remove('playing');
273
+ });
274
+ } catch (error) {
275
+ showError("Error playing sound. Please try again.");
276
+ }
277
+ }
278
+
279
+ function showError(message) {
280
+ errorText.textContent = message;
281
+ errorMessage.style.display = 'block';
282
+
283
+ setTimeout(() => {
284
+ errorMessage.style.display = 'none';
285
+ }, 3000);
286
+ }
287
+ });
288
+ </script>
289
+ <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=Enderchef/memeboard" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
290
+ </html>
prompts.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Meme soundboard with yodeling, womp womp, rickroll and more.
2
+ I cannot hear it.
3
+ Unrecognized feature: 'ambient-light-sensor'. deepsite:256 Unrecognized feature: 'battery'. deepsite:256 Unrecognized feature: 'document-domain'. deepsite:256 Unrecognized feature: 'layout-animations'. deepsite:256 Unrecognized feature: 'legacy-image-formats'. deepsite:256 Unrecognized feature: 'oversized-images'. deepsite:256 Unrecognized feature: 'vr'. deepsite:256 Unrecognized feature: 'wake-lock'. 236(index):64 cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation (anonymous) @ (index):64 14about:srcdoc:186 Uncaught (in promise) NotSupportedError: The element has no supported sources. (index):64 cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation (anonymous) @ (index):64 about:srcdoc:186 Uncaught (in promise) NotSupportedError: The element has no supported sources. 190(index):64 cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation (anonymous) @ (index):64 (index):64 cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation (anonymous) @ (index):64 3about:srcdoc:189 Uncaught (in promise) NotSupportedError: The element has no supported sources. Microsoft Edge is moving towards a new experience that allows users to choose to browse without third-party cookies. [NEW] Explain Console errors by using Copilot in Edge: click to explain an error. Learn more Don't show again Microsoft Edge is moving towards a new experience that allows users to choose to browse without third-party cookies.