sh20raj commited on
Commit
9aa4a82
·
verified ·
1 Parent(s): 379c832

undefined - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +6 -4
  2. index.html +434 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Stream
3
- emoji: 👁
4
  colorFrom: blue
5
- colorTo: indigo
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: stream
3
+ emoji: 🐳
4
  colorFrom: blue
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,434 @@
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>Streamer Overlay</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <style>
9
+ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Rajdhani:wght@500;700&display=swap');
10
+
11
+ :root {
12
+ --neon-cyan: #0ff0fc;
13
+ --neon-pink: #ff2ced;
14
+ --neon-purple: #9600ff;
15
+ --dark-bg: #0a0a12;
16
+ }
17
+
18
+ body {
19
+ font-family: 'Rajdhani', sans-serif;
20
+ background-color: var(--dark-bg);
21
+ color: white;
22
+ overflow: hidden;
23
+ height: 100vh;
24
+ width: 100vw;
25
+ margin: 0;
26
+ padding: 0;
27
+ }
28
+
29
+ .screen {
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ width: 100%;
34
+ height: 100%;
35
+ display: flex;
36
+ flex-direction: column;
37
+ justify-content: center;
38
+ align-items: center;
39
+ opacity: 0;
40
+ transition: opacity 0.5s ease;
41
+ pointer-events: none;
42
+ background: radial-gradient(circle at center, rgba(10, 10, 30, 0.7) 0%, rgba(0, 0, 20, 0.9) 100%);
43
+ }
44
+
45
+ .screen.active {
46
+ opacity: 1;
47
+ pointer-events: auto;
48
+ }
49
+
50
+ .title {
51
+ font-family: 'Orbitron', sans-serif;
52
+ font-weight: 700;
53
+ font-size: 4rem;
54
+ text-transform: uppercase;
55
+ letter-spacing: 0.3em;
56
+ margin-bottom: 2rem;
57
+ text-shadow: 0 0 10px var(--neon-cyan),
58
+ 0 0 20px var(--neon-pink),
59
+ 0 0 30px var(--neon-purple);
60
+ animation: glow 2s ease-in-out infinite alternate;
61
+ }
62
+
63
+ .subtitle {
64
+ font-size: 1.5rem;
65
+ max-width: 600px;
66
+ text-align: center;
67
+ line-height: 1.6;
68
+ margin-bottom: 3rem;
69
+ color: rgba(255, 255, 255, 0.8);
70
+ }
71
+
72
+ .card {
73
+ background: rgba(20, 20, 40, 0.4);
74
+ backdrop-filter: blur(10px);
75
+ border: 1px solid rgba(255, 255, 255, 0.1);
76
+ border-radius: 1rem;
77
+ padding: 2rem 3rem;
78
+ box-shadow: 0 0 30px rgba(15, 240, 252, 0.2),
79
+ inset 0 0 20px rgba(255, 44, 237, 0.1);
80
+ position: relative;
81
+ overflow: hidden;
82
+ }
83
+
84
+ .card::before {
85
+ content: '';
86
+ position: absolute;
87
+ top: -2px;
88
+ left: -2px;
89
+ right: -2px;
90
+ bottom: -2px;
91
+ background: linear-gradient(45deg, var(--neon-cyan), var(--neon-pink), var(--neon-purple));
92
+ z-index: -1;
93
+ border-radius: 1rem;
94
+ opacity: 0.3;
95
+ }
96
+
97
+ .controls {
98
+ position: fixed;
99
+ bottom: 2rem;
100
+ left: 50%;
101
+ transform: translateX(-50%);
102
+ display: flex;
103
+ gap: 1rem;
104
+ z-index: 100;
105
+ }
106
+
107
+ .control-btn {
108
+ background: rgba(20, 20, 40, 0.6);
109
+ border: 1px solid var(--neon-cyan);
110
+ color: white;
111
+ padding: 0.75rem 1.5rem;
112
+ border-radius: 0.5rem;
113
+ cursor: pointer;
114
+ font-family: 'Orbitron', sans-serif;
115
+ font-weight: 500;
116
+ letter-spacing: 0.1em;
117
+ transition: all 0.3s ease;
118
+ box-shadow: 0 0 15px rgba(15, 240, 252, 0.3);
119
+ }
120
+
121
+ .control-btn:hover {
122
+ background: rgba(15, 240, 252, 0.2);
123
+ box-shadow: 0 0 20px rgba(15, 240, 252, 0.5);
124
+ transform: translateY(-2px);
125
+ }
126
+
127
+ .control-btn.active {
128
+ background: var(--neon-cyan);
129
+ color: var(--dark-bg);
130
+ font-weight: 700;
131
+ }
132
+
133
+ .clock {
134
+ position: fixed;
135
+ top: 2rem;
136
+ right: 2rem;
137
+ font-family: 'Orbitron', sans-serif;
138
+ font-size: 1.2rem;
139
+ color: var(--neon-cyan);
140
+ text-shadow: 0 0 10px rgba(15, 240, 252, 0.7);
141
+ z-index: 100;
142
+ }
143
+
144
+ /* Background effects */
145
+ .bg-effect {
146
+ position: absolute;
147
+ top: 0;
148
+ left: 0;
149
+ width: 100%;
150
+ height: 100%;
151
+ z-index: -1;
152
+ opacity: 0.1;
153
+ }
154
+
155
+ .scanlines {
156
+ background: linear-gradient(
157
+ to bottom,
158
+ transparent 95%,
159
+ rgba(255, 255, 255, 0.05) 96%
160
+ );
161
+ background-size: 100% 4px;
162
+ animation: scanline 8s linear infinite;
163
+ }
164
+
165
+ .noise {
166
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.15'/%3E%3C/svg%3E");
167
+ animation: noise 0.2s infinite;
168
+ }
169
+
170
+ .particles {
171
+ position: absolute;
172
+ width: 100%;
173
+ height: 100%;
174
+ }
175
+
176
+ .particle {
177
+ position: absolute;
178
+ width: 2px;
179
+ height: 2px;
180
+ background-color: var(--neon-cyan);
181
+ border-radius: 50%;
182
+ opacity: 0.5;
183
+ animation: float 15s infinite linear;
184
+ }
185
+
186
+ /* Animations */
187
+ @keyframes glow {
188
+ from {
189
+ text-shadow: 0 0 10px var(--neon-cyan),
190
+ 0 0 20px var(--neon-pink),
191
+ 0 0 30px var(--neon-purple);
192
+ }
193
+ to {
194
+ text-shadow: 0 0 15px var(--neon-cyan),
195
+ 0 0 25px var(--neon-pink),
196
+ 0 0 35px var(--neon-purple);
197
+ }
198
+ }
199
+
200
+ @keyframes scanline {
201
+ 0% {
202
+ background-position: 0 0;
203
+ }
204
+ 100% {
205
+ background-position: 0 100%;
206
+ }
207
+ }
208
+
209
+ @keyframes noise {
210
+ 0% {
211
+ background-position: 0 0;
212
+ }
213
+ 100% {
214
+ background-position: 100% 100%;
215
+ }
216
+ }
217
+
218
+ @keyframes float {
219
+ 0% {
220
+ transform: translateY(0) translateX(0);
221
+ opacity: 0;
222
+ }
223
+ 10% {
224
+ opacity: 0.5;
225
+ }
226
+ 90% {
227
+ opacity: 0.5;
228
+ }
229
+ 100% {
230
+ transform: translateY(-100vh) translateX(20vw);
231
+ opacity: 0;
232
+ }
233
+ }
234
+
235
+ /* Glitch effect */
236
+ .glitch {
237
+ position: relative;
238
+ }
239
+
240
+ .glitch::before, .glitch::after {
241
+ content: attr(data-text);
242
+ position: absolute;
243
+ top: 0;
244
+ left: 0;
245
+ width: 100%;
246
+ height: 100%;
247
+ opacity: 0.8;
248
+ }
249
+
250
+ .glitch::before {
251
+ color: var(--neon-pink);
252
+ animation: glitch-effect 3s infinite;
253
+ clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
254
+ transform: translate(-2px, -2px);
255
+ }
256
+
257
+ .glitch::after {
258
+ color: var(--neon-cyan);
259
+ animation: glitch-effect 2s infinite reverse;
260
+ clip-path: polygon(0 60%, 100% 60%, 100% 100%, 0 100%);
261
+ transform: translate(2px, 2px);
262
+ }
263
+
264
+ @keyframes glitch-effect {
265
+ 0% {
266
+ transform: translate(0);
267
+ }
268
+ 20% {
269
+ transform: translate(-3px, 3px);
270
+ }
271
+ 40% {
272
+ transform: translate(-3px, -3px);
273
+ }
274
+ 60% {
275
+ transform: translate(3px, 3px);
276
+ }
277
+ 80% {
278
+ transform: translate(3px, -3px);
279
+ }
280
+ 100% {
281
+ transform: translate(0);
282
+ }
283
+ }
284
+
285
+ /* Responsive adjustments */
286
+ @media (max-width: 768px) {
287
+ .title {
288
+ font-size: 2.5rem;
289
+ letter-spacing: 0.2em;
290
+ }
291
+
292
+ .subtitle {
293
+ font-size: 1.2rem;
294
+ max-width: 90%;
295
+ }
296
+
297
+ .card {
298
+ padding: 1.5rem;
299
+ width: 90%;
300
+ }
301
+
302
+ .controls {
303
+ flex-direction: column;
304
+ bottom: 1rem;
305
+ }
306
+ }
307
+ </style>
308
+ </head>
309
+ <body>
310
+ <!-- Background effects -->
311
+ <div class="bg-effect scanlines"></div>
312
+ <div class="bg-effect noise"></div>
313
+ <div class="particles" id="particles"></div>
314
+
315
+ <!-- Digital clock -->
316
+ <div class="clock" id="clock">00:00:00</div>
317
+
318
+ <!-- Screens -->
319
+ <div class="screen active" id="starting-soon">
320
+ <div class="card">
321
+ <h1 class="title glitch" data-text="STREAM STARTING SOON">STREAM STARTING SOON</h1>
322
+ <p class="subtitle">The stream will begin shortly. Grab some snacks, get comfortable, and prepare for an awesome time!</p>
323
+ </div>
324
+ </div>
325
+
326
+ <div class="screen" id="be-right-back">
327
+ <div class="card">
328
+ <h1 class="title glitch" data-text="BE RIGHT BACK">BE RIGHT BACK</h1>
329
+ <p class="subtitle">Taking a quick break! The stream will resume in a few minutes. Stay tuned!</p>
330
+ </div>
331
+ </div>
332
+
333
+ <div class="screen" id="stream-ended">
334
+ <div class="card">
335
+ <h1 class="title glitch" data-text="STREAM ENDED">STREAM ENDED</h1>
336
+ <p class="subtitle">Thanks for watching! Follow to get notified when we go live next time. See you soon!</p>
337
+ </div>
338
+ </div>
339
+
340
+ <!-- Controls -->
341
+ <div class="controls">
342
+ <button class="control-btn active" data-screen="starting-soon">1. Starting Soon</button>
343
+ <button class="control-btn" data-screen="be-right-back">2. Be Right Back</button>
344
+ <button class="control-btn" data-screen="stream-ended">3. Stream Ended</button>
345
+ </div>
346
+
347
+ <script>
348
+ // Screen switching
349
+ const screens = document.querySelectorAll('.screen');
350
+ const controlBtns = document.querySelectorAll('.control-btn');
351
+
352
+ function switchScreen(screenId) {
353
+ screens.forEach(screen => {
354
+ screen.classList.remove('active');
355
+ if (screen.id === screenId) {
356
+ screen.classList.add('active');
357
+ }
358
+ });
359
+
360
+ controlBtns.forEach(btn => {
361
+ btn.classList.remove('active');
362
+ if (btn.dataset.screen === screenId) {
363
+ btn.classList.add('active');
364
+ }
365
+ });
366
+ }
367
+
368
+ controlBtns.forEach(btn => {
369
+ btn.addEventListener('click', () => {
370
+ switchScreen(btn.dataset.screen);
371
+ });
372
+ });
373
+
374
+ // Keyboard shortcuts
375
+ document.addEventListener('keydown', (e) => {
376
+ if (e.key === '1') switchScreen('starting-soon');
377
+ if (e.key === '2') switchScreen('be-right-back');
378
+ if (e.key === '3') switchScreen('stream-ended');
379
+ });
380
+
381
+ // Digital clock
382
+ function updateClock() {
383
+ const now = new Date();
384
+ const hours = now.getHours().toString().padStart(2, '0');
385
+ const minutes = now.getMinutes().toString().padStart(2, '0');
386
+ const seconds = now.getSeconds().toString().padStart(2, '0');
387
+ document.getElementById('clock').textContent = `${hours}:${minutes}:${seconds}`;
388
+ }
389
+
390
+ setInterval(updateClock, 1000);
391
+ updateClock();
392
+
393
+ // Create particles
394
+ function createParticles() {
395
+ const particlesContainer = document.getElementById('particles');
396
+ const particleCount = 50;
397
+
398
+ for (let i = 0; i < particleCount; i++) {
399
+ const particle = document.createElement('div');
400
+ particle.classList.add('particle');
401
+
402
+ // Random position
403
+ const posX = Math.random() * 100;
404
+ const posY = Math.random() * 100;
405
+
406
+ // Random size
407
+ const size = Math.random() * 3 + 1;
408
+
409
+ // Random animation duration
410
+ const duration = Math.random() * 20 + 10;
411
+
412
+ // Random delay
413
+ const delay = Math.random() * 10;
414
+
415
+ particle.style.left = `${posX}vw`;
416
+ particle.style.top = `${posY}vh`;
417
+ particle.style.width = `${size}px`;
418
+ particle.style.height = `${size}px`;
419
+ particle.style.animationDuration = `${duration}s`;
420
+ particle.style.animationDelay = `-${delay}s`;
421
+
422
+ // Random color
423
+ const colors = ['var(--neon-cyan)', 'var(--neon-pink)', 'var(--neon-purple)'];
424
+ const randomColor = colors[Math.floor(Math.random() * colors.length)];
425
+ particle.style.backgroundColor = randomColor;
426
+
427
+ particlesContainer.appendChild(particle);
428
+ }
429
+ }
430
+
431
+ createParticles();
432
+ </script>
433
+ <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=sh20raj/stream" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
434
+ </html>