fLausch commited on
Commit
63df5e9
·
verified ·
1 Parent(s): e07cc2c

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +485 -19
index.html CHANGED
@@ -1,19 +1,485 @@
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>VStream - Modern Video Platform</title>
7
+
8
+ <!-- Icons: FontAwesome for UI elements -->
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+
11
+ <style>
12
+ :root {
13
+ --bg-dark: #0f0f11;
14
+ --bg-card: #1a1a1d;
15
+ --primary: #ff4757;
16
+ --primary-hover: #ff6b81;
17
+ --text-main: #ffffff;
18
+ --text-secondary: #a1a1a6;
19
+ --border-color: #2f2f35;
20
+ --transition: all 0.3s ease;
21
+ }
22
+
23
+ * {
24
+ margin: 0;
25
+ padding: 0;
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ body {
30
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
31
+ background-color: var(--bg-dark);
32
+ color: var(--text-main);
33
+ line-height: 1.6;
34
+ overflow-x: hidden;
35
+ }
36
+
37
+ a { text-decoration: none; color: inherit; }
38
+ ul { list-style: none; }
39
+
40
+ /* --- Header / Navbar --- */
41
+ header {
42
+ position: sticky;
43
+ top: 0;
44
+ z-index: 1000;
45
+ background-color: rgba(15, 15, 17, 0.95);
46
+ backdrop-filter: blur(10px);
47
+ padding: 1rem 2rem;
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ border-bottom: 1px solid var(--border-color);
52
+ }
53
+
54
+ .logo {
55
+ font-size: 1.8rem;
56
+ font-weight: 800;
57
+ color: var(--text-main);
58
+ display: flex;
59
+ align-items: center;
60
+ gap: 10px;
61
+ }
62
+
63
+ .logo span { color: var(--primary); }
64
+
65
+ .search-bar {
66
+ display: flex;
67
+ background: var(--bg-card);
68
+ border-radius: 50px;
69
+ padding: 10px 20px;
70
+ align-items: center;
71
+ border: 1px solid var(--border-color);
72
+ width: 40%;
73
+ transition: var(--transition);
74
+ }
75
+
76
+ .search-bar:focus-within {
77
+ border-color: var(--primary);
78
+ box-shadow: 0 0 15px rgba(255, 71, 87, 0.2);
79
+ }
80
+
81
+ .search-bar input {
82
+ background: transparent;
83
+ border: none;
84
+ color: var(--text-main);
85
+ margin-left: 15px;
86
+ width: 100%;
87
+ outline: none;
88
+ font-size: 1rem;
89
+ }
90
+
91
+ .nav-actions {
92
+ display: flex;
93
+ align-items: center;
94
+ gap: 20px;
95
+ }
96
+
97
+ .icon-btn {
98
+ background: none;
99
+ border: none;
100
+ color: var(--text-main);
101
+ font-size: 1.2rem;
102
+ cursor: pointer;
103
+ transition: var(--transition);
104
+ position: relative;
105
+ }
106
+
107
+ .icon-btn:hover { color: var(--primary); }
108
+
109
+ .user-avatar {
110
+ width: 40px;
111
+ height: 40px;
112
+ border-radius: 50%;
113
+ background: linear-gradient(45deg, var(--primary), #2ed573);
114
+ display: flex;
115
+ justify-content: center;
116
+ align-items: center;
117
+ font-weight: bold;
118
+ cursor: pointer;
119
+ }
120
+
121
+ /* --- Hero Section --- */
122
+ .hero {
123
+ height: 60vh;
124
+ background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.9)), url('https://picsum.photos/id/1018/1920/1080') center/cover no-repeat;
125
+ display: flex;
126
+ flex-direction: column;
127
+ justify-content: center;
128
+ align-items: center;
129
+ text-align: center;
130
+ padding: 2rem;
131
+ position: relative;
132
+ }
133
+
134
+ .hero-content {
135
+ max-width: 700px;
136
+ z-index: 2;
137
+ }
138
+
139
+ .hero h1 {
140
+ font-size: 3.5rem;
141
+ margin-bottom: 1rem;
142
+ line-height: 1.1;
143
+ font-weight: 800;
144
+ }
145
+
146
+ .hero p {
147
+ font-size: 1.2rem;
148
+ color: var(--text-secondary);
149
+ margin-bottom: 2rem;
150
+ }
151
+
152
+ .btn-primary {
153
+ background-color: var(--primary);
154
+ color: white;
155
+ padding: 15px 40px;
156
+ border-radius: 50px;
157
+ font-weight: 600;
158
+ font-size: 1.1rem;
159
+ transition: var(--transition);
160
+ cursor: pointer;
161
+ border: none;
162
+ display: inline-flex;
163
+ align-items: center;
164
+ gap: 10px;
165
+ }
166
+
167
+ .btn-primary:hover {
168
+ background-color: var(--primary-hover);
169
+ transform: translateY(-2px);
170
+ box-shadow: 0 10px 20px rgba(255, 71, 87, 0.3);
171
+ }
172
+
173
+ /* --- Main Content --- */
174
+ main {
175
+ padding: 3rem 2rem;
176
+ max-width: 1400px;
177
+ margin: 0 auto;
178
+ }
179
+
180
+ .section-title {
181
+ font-size: 1.8rem;
182
+ margin-bottom: 2rem;
183
+ border-left: 5px solid var(--primary);
184
+ padding-left: 15px;
185
+ display: inline-block;
186
+ }
187
+
188
+ /* Video Grid */
189
+ .video-grid {
190
+ display: grid;
191
+ grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
192
+ gap: 2rem;
193
+ }
194
+
195
+ .video-card {
196
+ background-color: var(--bg-card);
197
+ border-radius: 12px;
198
+ overflow: hidden;
199
+ transition: var(--transition);
200
+ cursor: pointer;
201
+ group: "card";
202
+ }
203
+
204
+ .video-card:hover {
205
+ transform: translateY(-5px);
206
+ box-shadow: 0 15px 30px rgba(0,0,0,0.5);
207
+ }
208
+
209
+ .thumb-container {
210
+ position: relative;
211
+ width: 100%;
212
+ padding-top: 56.25%; /* 16:9 Aspect Ratio */
213
+ background-color: #000;
214
+ }
215
+
216
+ .thumb-container img {
217
+ position: absolute;
218
+ top: 0;
219
+ left: 0;
220
+ width: 100%;
221
+ height: 100%;
222
+ object-fit: cover;
223
+ transition: transform 0.3s ease;
224
+ }
225
+
226
+ .video-card:hover .thumb-container img {
227
+ transform: scale(1.05);
228
+ }
229
+
230
+ .duration {
231
+ position: absolute;
232
+ bottom: 10px;
233
+ right: 10px;
234
+ background: rgba(0,0,0,0.8);
235
+ padding: 4px 8px;
236
+ border-radius: 4px;
237
+ font-size: 0.85rem;
238
+ font-weight: 600;
239
+ color: white;
240
+ }
241
+
242
+ .video-info {
243
+ padding: 15px;
244
+ display: flex;
245
+ gap: 15px;
246
+ }
247
+
248
+ .channel-icon {
249
+ width: 45px;
250
+ height: 45px;
251
+ border-radius: 50%;
252
+ object-fit: cover;
253
+ }
254
+
255
+ .video-details {
256
+ display: flex;
257
+ flex-direction: column;
258
+ }
259
+
260
+ .video-title {
261
+ font-size: 1.1rem;
262
+ font-weight: 600;
263
+ margin-bottom: 5px;
264
+ color: var(--text-main);
265
+ display: -webkit-box;
266
+ -webkit-line-clamp: 2;
267
+ -webkit-box-orient: vertical;
268
+ overflow: hidden;
269
+ }
270
+
271
+ .channel-name {
272
+ font-size: 0.9rem;
273
+ color: var(--text-secondary);
274
+ margin-bottom: 3px;
275
+ }
276
+
277
+ .video-meta {
278
+ font-size: 0.85rem;
279
+ color: #777;
280
+ }
281
+
282
+ /* --- Footer --- */
283
+ footer {
284
+ background-color: #0a0a0c;
285
+ padding: 4rem 2rem;
286
+ margin-top: 4rem;
287
+ border-top: 1px solid var(--border-color);
288
+ text-align: center;
289
+ }
290
+
291
+ .footer-content {
292
+ max-width: 1000px;
293
+ margin: 0 auto;
294
+ }
295
+
296
+ .footer-logo {
297
+ font-size: 2rem;
298
+ font-weight: 800;
299
+ margin-bottom: 1rem;
300
+ display: inline-block;
301
+ }
302
+
303
+ .footer-links {
304
+ display: flex;
305
+ justify-content: center;
306
+ gap: 30px;
307
+ margin-bottom: 2rem;
308
+ flex-wrap: wrap;
309
+ }
310
+
311
+ .footer-links a { color: var(--text-secondary); transition: color 0.3s; }
312
+ .footer-links a:hover { color: var(--primary); }
313
+
314
+ .copyright {
315
+ color: #555;
316
+ font-size: 0.9rem;
317
+ }
318
+
319
+ .anycoder-link {
320
+ margin-top: 20px;
321
+ display: inline-block;
322
+ color: #555;
323
+ font-size: 0.8rem;
324
+ text-decoration: underline;
325
+ }
326
+ .anycoder-link:hover { color: var(--primary); }
327
+
328
+ /* Responsive */
329
+ @media (max-width: 768px) {
330
+ .hero h1 { font-size: 2.5rem; }
331
+ .search-bar { width: 100%; display: none; } /* Hidden on mobile for simplicity */
332
+ .video-grid { grid-template-columns: 1fr; }
333
+ .nav-actions .icon-btn:last-child { display: none; }
334
+ }
335
+ </style>
336
+ </head>
337
+ <body>
338
+
339
+ <!-- Header -->
340
+ <header>
341
+ <div class="logo">
342
+ <i class="fa-solid fa-video" style="color: var(--primary);"></i>
343
+ V<span>Stream</span>
344
+ </div>
345
+
346
+ <div class="search-bar">
347
+ <i class="fa-solid fa-search" style="color: var(--text-secondary);"></i>
348
+ <input type="text" placeholder="Search for movies, series, or creators...">
349
+ </div>
350
+
351
+ <div class="nav-actions">
352
+ <button class="icon-btn" title="Create Video"><i class="fa-solid fa-circle-plus"></i></button>
353
+ <button class="icon-btn" title="Notifications"><i class="fa-solid fa-bell"></i></button>
354
+ <button class="icon-btn" title="Library"><i class="fa-solid fa-book"></i></button>
355
+ <div class="user-avatar">JS</div>
356
+ </div>
357
+ </header>
358
+
359
+ <!-- Hero Section -->
360
+ <section class="hero">
361
+ <div class="hero-content">
362
+ <h1>Unlimited Entertainment<br>At Your Fingertips</h1>
363
+ <p>Watch the latest blockbusters, exclusive series, and trending content anytime, anywhere. Join millions of viewers today.</p>
364
+ <button class="btn-primary" onclick="playHeroVideo()">
365
+ <i class="fa-solid fa-play"></i> Start Watching Free
366
+ </button>
367
+ </div>
368
+ </section>
369
+
370
+ <!-- Main Content -->
371
+ <main>
372
+ <div class="section-title">Trending Now</div>
373
+
374
+ <div class="video-grid" id="videoGrid">
375
+ <!-- Videos will be injected here via JavaScript -->
376
+ </div>
377
+
378
+ <div style="margin-top: 4rem;" class="section-title">New Releases</div>
379
+ <div class="video-grid" id="newReleasesGrid">
380
+ <!-- More videos injected here -->
381
+ </div>
382
+ </main>
383
+
384
+ <!-- Footer -->
385
+ <footer>
386
+ <div class="footer-content">
387
+ <div class="footer-logo">V<span>Stream</span></div>
388
+ <div class="footer-links">
389
+ <a href="#">Home</a>
390
+ <a href="#">Movies</a>
391
+ <a href="#">TV Shows</a>
392
+ <a href="#">My List</a>
393
+ <a href="#">Premium</a>
394
+ <a href="#">Help</a>
395
+ </div>
396
+ <p class="copyright">&copy; 2023 VStream Inc. All rights reserved.</p>
397
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="anycoder-link" target="_blank">Built with anycoder</a>
398
+ </div>
399
+ </footer>
400
+
401
+ <script>
402
+ // Mock Data for Videos
403
+ const videos = [
404
+ { title: "Amazing Nature: 4K Landscape Collection", channel: "Earth Scapes", views: "1.2M views", time: "2 days ago", duration: "10:05", img: "https://picsum.photos/id/1015/400/225" },
405
+ { title: "Top 10 Tech Gadgets You Need in 2024", channel: "Tech Insider", views: "850K views", time: "1 week ago", duration: "14:20", img: "https://picsum.photos/id/1048/400/225" },
406
+ { title: "Learn JavaScript in 30 Minutes - Crash Course", channel: "Code Master", views: "2.4M views", time: "3 months ago", duration: "30:00", img: "https://picsum.photos/id/1039/400/225" },
407
+ { title: "Ultimate Home Workout - No Equipment", channel: "Fitness Pro", views: "500K views", time: "5 days ago", duration: "22:15", img: "https://picsum.photos/id/1069/400/225" },
408
+ { title: "Travel Guide: Hidden Gems of Japan", channel: "Wanderlust", views: "3.1M views", time: "1 year ago", duration: "18:45", img: "https://picsum.photos/id/1064/400/225" },
409
+ { title: "Cinematic Lo-Fi Beats to Study/Relax", channel: "Chill Hop", views: "10M views", time: "Live", duration: "LIVE", img: "https://picsum.photos/id/103/400/225" },
410
+ { title: "Advanced CSS Grid Layouts Tutorial", channel: "Web Dev Simplified", views: "150K views", time: "2 weeks ago", duration: "45:30", img: "https://picsum.photos/id/1011/400/225" },
411
+ { title: "Best Street Food in Thailand", channel: "Foodie Adventures", views: "900K views", time: "3 weeks ago", duration: "12:10", img: "https://picsum.photos/id/1059/400/225" },
412
+ { title: "Sci-Fi Movie Review: The New Frontier", channel: "Cinema Review", views: "450K views", time: "1 day ago", duration: "15:00", img: "https://picsum.photos/id/1033/400/225" }
413
+ ];
414
+
415
+ // Function to generate HTML for video cards
416
+ function generateVideoCards(videoData, containerId) {
417
+ const container = document.getElementById(containerId);
418
+ let htmlContent = '';
419
+
420
+ videoData.forEach(video => {
421
+ htmlContent += `
422
+ <div class="video-card" onclick="playVideo('${video.title}')">
423
+ <div class="thumb-container">
424
+ <img src="${video.img}" alt="${video.title}">
425
+ <div class="duration">${video.duration}</div>
426
+ </div>
427
+ <div class="video-info">
428
+ <i class="fa-solid fa-circle-user" style="font-size: 1.5rem; color: #777;"></i>
429
+ <div class="video-details">
430
+ <h3 class="video-title">${video.title}</h3>
431
+ <div class="channel-name">${video.channel}</div>
432
+ <div class="video-meta">${video.views} • ${video.time}</div>
433
+ </div>
434
+ <button class="icon-btn" style="margin-left: auto;" onclick="event.stopPropagation(); toggleLike(this)">
435
+ <i class="fa-regular fa-heart"></i>
436
+ </button>
437
+ </div>
438
+ </div>`;
439
+ });
440
+
441
+ container.innerHTML = htmlContent;
442
+ }
443
+
444
+ // Initialize the app
445
+ document.addEventListener('DOMContentLoaded', () => {
446
+ generateVideoCards(videos, 'videoGrid');
447
+ generateVideoCards(videos.slice(0, 5), 'newReleasesGrid');
448
+ });
449
+
450
+ // Interactive Functions
451
+ function playHeroVideo() {
452
+ alert("Playing featured content... (Simulation)");
453
+ }
454
+
455
+ function playVideo(title) {
456
+ // In a real app, this would redirect to a player page
457
+ console.log(`Playing: ${title}`);
458
+ alert(`Playing: ${title} (Simulation)`);
459
+ }
460
+
461
+ function toggleLike(btn) {
462
+ const icon = btn.querySelector('i');
463
+ if (icon.classList.contains('fa-heart')) {
464
+ icon.classList.remove('fa-regular', 'fa-heart');
465
+ icon.classList.add('fa-solid', 'fa-heart');
466
+ icon.style.color = '#ff4757';
467
+ } else {
468
+ icon.classList.remove('fa-solid', 'fa-heart');
469
+ icon.classList.add('fa-regular', 'fa-heart');
470
+ icon.style.color = 'inherit';
471
+ }
472
+ }
473
+
474
+ // Add simple hover effect for buttons
475
+ document.querySelectorAll('.icon-btn').forEach(btn => {
476
+ btn.addEventListener('click', function() {
477
+ this.style.transform = 'scale(0.95)';
478
+ setTimeout(() => {
479
+ this.style.transform = 'scale(1)';
480
+ }, 100);
481
+ });
482
+ });
483
+ </script>
484
+ </body>
485
+ </html>