@howssatoshi/quantumcss 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +11 -10
  2. package/dist/quantum.min.css +2 -2
  3. package/examples/admin-panel.html +317 -600
  4. package/examples/analytics-dashboard.html +130 -288
  5. package/examples/blog.css +297 -0
  6. package/examples/blog.html +216 -0
  7. package/examples/chat-messaging.html +11 -27
  8. package/examples/email-client.css +582 -0
  9. package/examples/email-client.html +432 -0
  10. package/examples/gaming-portal.css +352 -0
  11. package/examples/gaming-portal.html +239 -0
  12. package/examples/index.html +342 -232
  13. package/examples/kitchen-sink.html +284 -94
  14. package/examples/music-streaming.html +32 -91
  15. package/examples/{news-template.html → news.html} +35 -11
  16. package/examples/{portfolio-resume.html → portfolio.html} +56 -26
  17. package/examples/shopping.html +812 -0
  18. package/examples/starlight.html +7 -6
  19. package/examples/task.md +12 -0
  20. package/examples/travel.html +514 -0
  21. package/examples/video-streaming.html +303 -92
  22. package/package.json +9 -3
  23. package/src/cli.js +5 -5
  24. package/src/defaults.js +18 -16
  25. package/src/starlight.js +20 -15
  26. package/src/styles/quantum-base.css +4 -0
  27. package/src/styles/quantum-components.css +1879 -134
  28. package/src/styles/quantum-icons.css +345 -0
  29. package/src/styles/starlight.css +2606 -1186
  30. package/dist/quantum.css +0 -2374
  31. package/examples/blog-template.html +0 -288
  32. package/examples/email-template.html +0 -712
  33. package/examples/gaming-template.html +0 -471
  34. package/examples/gradient-test.html +0 -129
  35. package/examples/shopping/images/headset.jpg +0 -0
  36. package/examples/shopping/images/sneakers.jpg +0 -0
  37. package/examples/shopping/images/windbreaker.jpg +0 -0
  38. package/examples/shopping/index.html +0 -525
  39. package/examples/theme-test.html +0 -159
  40. package/examples/travel/index.html +0 -432
  41. package/examples/verify_fixes.html +0 -52
  42. package/examples/verify_presets.html +0 -32
  43. /package/examples/{shopping/nova-shop.css → nova-shop.css} +0 -0
@@ -6,26 +6,94 @@
6
6
  <title>Starlight Video - Watch</title>
7
7
  <link rel="stylesheet" href="../dist/quantum.min.css">
8
8
  <link rel="stylesheet" href="../src/styles/quantum-components.css">
9
+ <link rel="stylesheet" href="../src/styles/quantum-icons.css">
9
10
  <script src="../src/starlight.js"></script>
10
11
  <style>
11
12
  * { margin: 0; padding: 0; box-sizing: border-box; }
12
13
  body {
13
- background: var(--bg-primary, #0a0a0a);
14
+ background: var(--bg-primary, #050510);
15
+ background-image:
16
+ radial-gradient(ellipse at 20% 30%, rgba(0, 212, 255, 0.08) 0%, transparent 50%),
17
+ radial-gradient(ellipse at 80% 70%, rgba(139, 92, 246, 0.06) 0%, transparent 50%),
18
+ radial-gradient(circle at 50% 50%, rgba(15, 23, 42, 1) 0%, #050510 100%);
14
19
  color: var(--text-primary, #f1f5f9);
15
20
  font-family: 'Inter', system-ui, sans-serif;
21
+ min-height: 100vh;
16
22
  }
17
23
 
18
- /* Layout */
19
- .video-app { display: grid; grid-template-rows: auto 1fr; height: 100vh; overflow: hidden; }
24
+ .stars {
25
+ position: fixed;
26
+ inset: 0;
27
+ pointer-events: none;
28
+ overflow: hidden;
29
+ z-index: 0;
30
+ }
31
+ .stars::before,
32
+ .stars::after {
33
+ content: '';
34
+ position: absolute;
35
+ width: 2px;
36
+ height: 2px;
37
+ background: white;
38
+ border-radius: 50%;
39
+ box-shadow:
40
+ 100px 50px 0 rgba(255,255,255,0.3),
41
+ 200px 150px 0 rgba(255,255,255,0.2),
42
+ 400px 80px 0 rgba(255,255,255,0.25),
43
+ 600px 200px 0 rgba(255,255,255,0.2),
44
+ 800px 100px 0 rgba(255,255,255,0.3),
45
+ 150px 300px 0 rgba(255,255,255,0.2),
46
+ 350px 350px 0 rgba(255,255,255,0.15),
47
+ 550px 400px 0 rgba(255,255,255,0.25),
48
+ 750px 450px 0 rgba(255,255,255,0.2),
49
+ 50px 500px 0 rgba(255,255,255,0.3),
50
+ 250px 550px 0 rgba(255,255,255,0.15),
51
+ 450px 600px 0 rgba(255,255,255,0.25),
52
+ 650px 650px 0 rgba(255,255,255,0.2),
53
+ 850px 700px 0 rgba(255,255,255,0.3),
54
+ 900px 250px 0 rgba(255,255,255,0.2),
55
+ 700px 300px 0 rgba(255,255,255,0.15);
56
+ animation: twinkle 4s ease-in-out infinite;
57
+ }
58
+ .stars::after {
59
+ left: 50px;
60
+ animation-delay: 2s;
61
+ box-shadow:
62
+ 80px 100px 0 rgba(255,255,255,0.2),
63
+ 180px 200px 0 rgba(255,255,255,0.3),
64
+ 320px 120px 0 rgba(255,255,255,0.2),
65
+ 520px 280px 0 rgba(255,255,255,0.25),
66
+ 720px 180px 0 rgba(255,255,255,0.2),
67
+ 920px 380px 0 rgba(255,255,255,0.3),
68
+ 120px 420px 0 rgba(255,255,255,0.2),
69
+ 380px 480px 0 rgba(255,255,255,0.25),
70
+ 580px 520px 0 rgba(255,255,255,0.15),
71
+ 780px 580px 0 rgba(255,255,255,0.2),
72
+ 980px 620px 0 rgba(255,255,255,0.3);
73
+ }
74
+ @keyframes twinkle {
75
+ 0%, 100% { opacity: 0.5; }
76
+ 50% { opacity: 1; }
77
+ }
78
+
79
+ .video-app {
80
+ display: grid;
81
+ grid-template-rows: auto 1fr;
82
+ height: 100vh;
83
+ overflow: hidden;
84
+ position: relative;
85
+ z-index: 1;
86
+ }
20
87
 
21
- /* Header */
22
88
  header {
23
89
  display: flex;
24
90
  align-items: center;
25
91
  justify-content: space-between;
26
92
  padding: 0.75rem 1.5rem;
27
- background: rgba(10, 10, 10, 0.95);
28
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
93
+ background: rgba(15, 23, 42, 0.8);
94
+ backdrop-filter: blur(16px);
95
+ -webkit-backdrop-filter: blur(16px);
96
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
29
97
  }
30
98
  .logo {
31
99
  display: flex;
@@ -33,12 +101,21 @@
33
101
  gap: 0.75rem;
34
102
  font-size: 1.5rem;
35
103
  font-weight: 700;
104
+ background: linear-gradient(135deg, #00d4ff, #8b5cf6);
105
+ -webkit-background-clip: text;
106
+ -webkit-text-fill-color: transparent;
107
+ background-clip: text;
36
108
  }
37
109
  .logo-icon {
38
110
  width: 40px; height: 40px;
39
- background: linear-gradient(135deg, #ef4444, #dc2626);
111
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.2), rgba(139, 92, 246, 0.2));
112
+ border: 1px solid rgba(0, 212, 255, 0.3);
40
113
  border-radius: 10px;
41
114
  display: flex; align-items: center; justify-content: center;
115
+ backdrop-filter: blur(10px);
116
+ }
117
+ .logo-icon .q-icon {
118
+ color: #00d4ff;
42
119
  }
43
120
  .search-bar {
44
121
  flex: 1;
@@ -56,20 +133,29 @@
56
133
  font-size: 0.9375rem;
57
134
  outline: none;
58
135
  transition: all 0.2s;
136
+ backdrop-filter: blur(10px);
59
137
  }
60
138
  .video-search-input:focus {
61
139
  border-color: var(--color-starlight, #00d4ff);
62
- background: rgba(255, 255, 255, 0.08);
63
- box-shadow: 0 0 0 2px var(--q-color-starlight-deep), 0 0 0 4px var(--q-color-starlight-blue);
140
+ background: rgba(0, 212, 255, 0.08);
141
+ box-shadow: 0 0 0 2px rgba(0, 212, 255, 0.2), 0 0 20px rgba(0, 212, 255, 0.1);
142
+ }
143
+ .video-search-input::placeholder {
144
+ color: rgba(255, 255, 255, 0.4);
64
145
  }
65
146
  .search-btn {
66
147
  padding: 0 1.25rem;
67
- background: rgba(255, 255, 255, 0.1);
68
- border: 1px solid rgba(255, 255, 255, 0.1);
148
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.15), rgba(139, 92, 246, 0.15));
149
+ border: 1px solid rgba(0, 212, 255, 0.2);
69
150
  border-left: none;
70
151
  border-radius: 0 0.5rem 0.5rem 0;
71
- color: var(--text-primary, #f1f5f9);
152
+ color: #00d4ff;
72
153
  cursor: pointer;
154
+ transition: all 0.2s;
155
+ }
156
+ .search-btn:hover {
157
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.25), rgba(139, 92, 246, 0.25));
158
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.2);
73
159
  }
74
160
  .header-actions {
75
161
  display: flex;
@@ -78,23 +164,34 @@
78
164
  }
79
165
  .icon-btn {
80
166
  width: 40px; height: 40px;
81
- border-radius: 50%;
82
- background: transparent;
83
- border: none;
167
+ border-radius: 12px;
168
+ background: rgba(255, 255, 255, 0.05);
169
+ border: 1px solid rgba(255, 255, 255, 0.1);
84
170
  color: var(--text-primary, #f1f5f9);
85
171
  cursor: pointer;
86
172
  display: flex; align-items: center; justify-content: center;
173
+ transition: all 0.2s;
174
+ backdrop-filter: blur(10px);
175
+ }
176
+ .icon-btn:hover {
177
+ background: rgba(0, 212, 255, 0.1);
178
+ border-color: rgba(0, 212, 255, 0.3);
179
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.15);
180
+ }
181
+ .icon-btn .q-icon {
182
+ width: 18px;
183
+ height: 18px;
87
184
  }
88
- .icon-btn:hover { background: rgba(255, 255, 255, 0.1); }
89
185
  .user-avatar {
90
186
  width: 36px; height: 36px;
91
187
  border-radius: 50%;
92
188
  background: linear-gradient(135deg, #3b82f6, #00d4ff);
93
189
  display: flex; align-items: center; justify-content: center;
94
190
  font-weight: 600; font-size: 0.875rem;
191
+ border: 2px solid rgba(0, 212, 255, 0.3);
192
+ box-shadow: 0 0 15px rgba(0, 212, 255, 0.2);
95
193
  }
96
194
 
97
- /* Main Content */
98
195
  .main-content {
99
196
  display: grid;
100
197
  grid-template-columns: 240px 1fr;
@@ -124,42 +221,60 @@
124
221
  }
125
222
  }
126
223
 
127
- /* Sidebar */
128
224
  .sidebar {
129
- padding: 0.75rem 0;
225
+ padding: 0.75rem;
130
226
  overflow-y: auto;
227
+ background: linear-gradient(180deg, rgba(15, 23, 42, 0.98) 0%, rgba(8, 8, 26, 0.98) 100%);
228
+ border-right: 1px solid rgba(255, 255, 255, 0.06);
131
229
  }
132
230
  .nav-item {
133
231
  display: flex;
134
232
  align-items: center;
135
233
  gap: 1.25rem;
136
- padding: 0.75rem 1.5rem;
234
+ padding: 0.75rem 1rem;
137
235
  color: var(--text-secondary, #94a3b8);
138
236
  text-decoration: none;
139
237
  font-size: 0.9375rem;
140
238
  transition: all 0.2s;
239
+ border-radius: 12px;
240
+ border: 1px solid transparent;
241
+ margin-bottom: 0.25rem;
242
+ }
243
+ .nav-item .q-icon {
244
+ width: 20px;
245
+ height: 20px;
246
+ flex-shrink: 0;
141
247
  }
142
248
  .video-app .nav-item:hover, .video-app .nav-item.active {
143
- background: rgba(255, 255, 255, 0.05);
249
+ background: rgba(0, 212, 255, 0.08);
250
+ border-color: rgba(0, 212, 255, 0.15);
144
251
  color: var(--text-primary, #f1f5f9);
145
252
  }
146
- .nav-item.active { font-weight: 600; }
253
+ .nav-item.active {
254
+ font-weight: 600;
255
+ color: #00d4ff;
256
+ }
257
+ .nav-item.active .q-icon {
258
+ color: #00d4ff;
259
+ }
147
260
  .nav-section {
148
261
  padding: 0.75rem 0;
149
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
262
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
263
+ margin-bottom: 0.5rem;
150
264
  }
151
265
  .nav-title {
152
- padding: 0.5rem 1.5rem;
153
- font-size: 0.875rem;
154
- font-weight: 600;
155
- color: var(--text-muted, #64748b);
266
+ padding: 0.5rem 1rem;
267
+ font-size: 0.75rem;
268
+ font-weight: 700;
156
269
  text-transform: uppercase;
270
+ letter-spacing: 0.1em;
271
+ color: var(--text-muted, #64748b);
157
272
  }
158
273
 
159
- /* Video Feed */
160
274
  .video-feed {
161
275
  padding: 1.5rem;
162
276
  overflow-y: auto;
277
+ background: rgba(5, 5, 16, 0.3);
163
278
  }
164
279
  .category-tabs {
165
280
  display: flex;
@@ -172,19 +287,26 @@
172
287
  padding: 0.5rem 1rem;
173
288
  background: rgba(255, 255, 255, 0.05);
174
289
  border: 1px solid rgba(255, 255, 255, 0.1);
175
- border-radius: 0.5rem;
290
+ border-radius: 9999px;
176
291
  color: var(--text-primary, #f1f5f9);
177
292
  font-size: 0.875rem;
178
293
  cursor: pointer;
179
294
  white-space: nowrap;
180
295
  transition: all 0.2s;
296
+ backdrop-filter: blur(10px);
297
+ }
298
+ .category-tab:hover {
299
+ background: rgba(0, 212, 255, 0.1);
300
+ border-color: rgba(0, 212, 255, 0.3);
301
+ color: #00d4ff;
181
302
  }
182
- .category-tab:hover, .category-tab.active {
183
- background: var(--text-primary, #f1f5f9);
184
- color: var(--bg-primary, #0a0a0a);
303
+ .category-tab.active {
304
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.2), rgba(139, 92, 246, 0.2));
305
+ border-color: rgba(0, 212, 255, 0.4);
306
+ color: #00d4ff;
307
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.15);
185
308
  }
186
309
 
187
- /* Video Grid */
188
310
  .video-grid {
189
311
  display: grid;
190
312
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
@@ -192,16 +314,26 @@
192
314
  }
193
315
  .video-card {
194
316
  cursor: pointer;
195
- transition: transform 0.2s;
317
+ transition: transform 0.3s, box-shadow 0.3s;
318
+ border-radius: 16px;
319
+ background: rgba(255, 255, 255, 0.03);
320
+ border: 1px solid rgba(255, 255, 255, 0.08);
321
+ padding: 0.75rem;
322
+ backdrop-filter: blur(10px);
323
+ }
324
+ .video-card:hover {
325
+ transform: translateY(-4px);
326
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 30px rgba(0, 212, 255, 0.1);
327
+ border-color: rgba(0, 212, 255, 0.2);
196
328
  }
197
- .video-card:hover { transform: scale(1.02); }
198
329
  .video-thumbnail {
199
330
  position: relative;
200
331
  aspect-ratio: 16/9;
201
- background: linear-gradient(135deg, #1a1a1a, #2a2a2a);
202
- border-radius: 0.75rem;
332
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(139, 92, 246, 0.1));
333
+ border-radius: 12px;
203
334
  overflow: hidden;
204
335
  margin-bottom: 0.75rem;
336
+ border: 1px solid rgba(255, 255, 255, 0.08);
205
337
  }
206
338
  .video-thumbnail img {
207
339
  width: 100%; height: 100%;
@@ -213,9 +345,11 @@
213
345
  right: 0.5rem;
214
346
  padding: 0.25rem 0.5rem;
215
347
  background: rgba(0, 0, 0, 0.8);
216
- border-radius: 0.25rem;
348
+ backdrop-filter: blur(10px);
349
+ border-radius: 6px;
217
350
  font-size: 0.75rem;
218
351
  font-weight: 600;
352
+ border: 1px solid rgba(255, 255, 255, 0.1);
219
353
  }
220
354
  .video-info {
221
355
  display: flex;
@@ -228,6 +362,8 @@
228
362
  display: flex; align-items: center; justify-content: center;
229
363
  font-weight: 600; font-size: 0.875rem;
230
364
  flex-shrink: 0;
365
+ border: 2px solid rgba(139, 92, 246, 0.3);
366
+ box-shadow: 0 0 10px rgba(139, 92, 246, 0.2);
231
367
  }
232
368
  .video-meta { flex: 1; }
233
369
  .video-title {
@@ -250,7 +386,6 @@
250
386
  color: var(--text-muted, #64748b);
251
387
  }
252
388
 
253
- /* Featured Section */
254
389
  .featured-section {
255
390
  margin-bottom: 2rem;
256
391
  }
@@ -266,15 +401,29 @@
266
401
  display: flex;
267
402
  align-items: center;
268
403
  gap: 0.5rem;
404
+ background: linear-gradient(135deg, #f1f5f9, #94a3b8);
405
+ -webkit-background-clip: text;
406
+ -webkit-text-fill-color: transparent;
407
+ background-clip: text;
408
+ }
409
+ .featured-header h2 .q-icon {
410
+ width: 22px;
411
+ height: 22px;
412
+ background: linear-gradient(135deg, #00d4ff, #f59e0b);
413
+ -webkit-mask: none;
414
+ mask: none;
269
415
  }
270
416
  .see-all {
271
417
  color: var(--color-starlight, #00d4ff);
272
418
  text-decoration: none;
273
419
  font-size: 0.875rem;
274
420
  font-weight: 500;
421
+ transition: all 0.2s;
422
+ }
423
+ .see-all:hover {
424
+ text-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
275
425
  }
276
426
 
277
- /* Shorts */
278
427
  .shorts-grid {
279
428
  display: grid;
280
429
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
@@ -282,16 +431,26 @@
282
431
  }
283
432
  .short-card {
284
433
  cursor: pointer;
285
- transition: transform 0.2s;
434
+ transition: transform 0.3s, box-shadow 0.3s;
435
+ border-radius: 16px;
436
+ background: rgba(255, 255, 255, 0.03);
437
+ border: 1px solid rgba(255, 255, 255, 0.08);
438
+ padding: 0.5rem;
439
+ backdrop-filter: blur(10px);
440
+ }
441
+ .short-card:hover {
442
+ transform: scale(1.02);
443
+ box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3), 0 0 20px rgba(139, 92, 246, 0.1);
444
+ border-color: rgba(139, 92, 246, 0.3);
286
445
  }
287
- .short-card:hover { transform: scale(1.02); }
288
446
  .short-thumbnail {
289
447
  aspect-ratio: 9/16;
290
- background: linear-gradient(135deg, #1a1a1a, #2a2a2a);
291
- border-radius: 0.75rem;
448
+ background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(236, 72, 153, 0.15));
449
+ border-radius: 12px;
292
450
  overflow: hidden;
293
451
  margin-bottom: 0.5rem;
294
452
  position: relative;
453
+ border: 1px solid rgba(255, 255, 255, 0.08);
295
454
  }
296
455
  .short-thumbnail img {
297
456
  width: 100%; height: 100%;
@@ -303,9 +462,11 @@
303
462
  left: 0.5rem;
304
463
  font-size: 0.75rem;
305
464
  font-weight: 600;
306
- background: rgba(0, 0, 0, 0.7);
465
+ background: rgba(0, 0, 0, 0.8);
466
+ backdrop-filter: blur(10px);
307
467
  padding: 0.25rem 0.5rem;
308
- border-radius: 0.25rem;
468
+ border-radius: 6px;
469
+ border: 1px solid rgba(255, 255, 255, 0.1);
309
470
  }
310
471
  .short-title {
311
472
  font-size: 0.875rem;
@@ -315,20 +476,55 @@
315
476
  -webkit-line-clamp: 2;
316
477
  -webkit-box-orient: vertical;
317
478
  overflow: hidden;
479
+ padding: 0 0.25rem;
318
480
  }
319
481
 
320
- /* Light Mode */
321
482
  html[data-theme="light"] {
322
- --bg-primary: #ffffff;
323
- --text-primary: #0f0f0f;
324
- --text-secondary: #606060;
325
- --text-muted: #909090;
326
- }
327
- html[data-theme="light"] header { background: #ffffff; border-bottom-color: #e5e5e5; }
328
- html[data-theme="light"] .nav-item:hover, html[data-theme="light"] .nav-item.active { background: #f2f2f2; }
329
- html[data-theme="light"] .category-tab { background: #f2f2f2; border-color: #e5e5e5; color: #0f0f0f; }
330
- html[data-theme="light"] .category-tab.active { background: #0f0f0f; color: #ffffff; }
331
- html[data-theme="light"] .video-thumbnail, html[data-theme="light"] .short-thumbnail { background: #f2f2f2; }
483
+ --bg-primary: #f8fafc;
484
+ --text-primary: #0f172a;
485
+ --text-secondary: #475569;
486
+ --text-muted: #94a3b8;
487
+ color-scheme: light;
488
+ }
489
+ html[data-theme="light"] body {
490
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 50%, #f1f5f9 100%);
491
+ }
492
+ html[data-theme="light"] header {
493
+ background: rgba(255, 255, 255, 0.8);
494
+ border-bottom-color: rgba(0, 0, 0, 0.08);
495
+ }
496
+ html[data-theme="light"] .sidebar {
497
+ background: rgba(255, 255, 255, 0.6);
498
+ border-right-color: rgba(0, 0, 0, 0.06);
499
+ }
500
+ html[data-theme="light"] .video-feed {
501
+ background: rgba(255, 255, 255, 0.3);
502
+ }
503
+ html[data-theme="light"] .nav-item:hover, html[data-theme="light"] .nav-item.active {
504
+ background: rgba(0, 212, 255, 0.1);
505
+ }
506
+ html[data-theme="light"] .category-tab {
507
+ background: rgba(255, 255, 255, 0.8);
508
+ border-color: rgba(0, 0, 0, 0.1);
509
+ }
510
+ html[data-theme="light"] .category-tab.active {
511
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.15), rgba(139, 92, 246, 0.15));
512
+ border-color: rgba(0, 212, 255, 0.3);
513
+ color: #2563eb;
514
+ }
515
+ html[data-theme="light"] .video-card,
516
+ html[data-theme="light"] .short-card {
517
+ background: rgba(255, 255, 255, 0.8);
518
+ border-color: rgba(0, 0, 0, 0.08);
519
+ }
520
+ html[data-theme="light"] .video-thumbnail,
521
+ html[data-theme="light"] .short-thumbnail {
522
+ background: linear-gradient(135deg, rgba(0, 212, 255, 0.05), rgba(139, 92, 246, 0.05));
523
+ }
524
+ html[data-theme="light"] .video-search-input {
525
+ background: rgba(255, 255, 255, 0.9);
526
+ border-color: rgba(0, 0, 0, 0.1);
527
+ }
332
528
 
333
529
  @media (max-width: 1024px) {
334
530
  .video-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
@@ -338,54 +534,70 @@
338
534
  .video-grid { grid-template-columns: 1fr; }
339
535
  .shorts-grid { grid-template-columns: repeat(2, 1fr); }
340
536
  }
341
- ::-webkit-scrollbar { width: 8px; height: 8px; }
342
- ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 4px; }
343
- html[data-theme="light"] ::-webkit-scrollbar-thumb { background: #ccc; }
537
+ ::-webkit-scrollbar { width: 8px; }
538
+ ::-webkit-scrollbar-track { background: transparent; }
539
+ ::-webkit-scrollbar-thumb {
540
+ background: linear-gradient(135deg, var(--q-color-starlight-peach, #f97316) 0%, var(--q-color-starlight-blue, #00d4ff) 100%);
541
+ border-radius: 10px;
542
+ border: 2px solid var(--q-bg-primary, #050510);
543
+ }
544
+ ::-webkit-scrollbar-thumb:hover {
545
+ background: linear-gradient(135deg, var(--q-color-starlight-peach, #f97316) 0%, var(--q-color-starlight-blue, #00d4ff) 100%);
546
+ }
547
+ html[data-theme="light"] ::-webkit-scrollbar-thumb {
548
+ background: linear-gradient(135deg, var(--q-color-starlight-peach, #f97316) 40%, var(--q-color-starlight-blue, #00d4ff) 100%);
549
+ border-color: var(--q-light-bg, #f1f5f9);
550
+ }
551
+
552
+ .hidden { display: none !important; }
344
553
  </style>
345
554
  </head>
346
555
  <body>
556
+ <div class="stars"></div>
347
557
  <div class="video-app">
348
558
  <header>
349
559
  <div class="logo">
350
- <div class="logo-icon">▶️</div>
560
+ <div class="logo-icon">
561
+ <span class="q-icon q-icon-play-fill"></span>
562
+ </div>
351
563
  <span>Starlight</span>
352
564
  </div>
353
565
  <div class="search-bar">
354
- <input type="text" class="video-search-input" placeholder="Search">
355
- <button class="search-btn">🔍</button>
566
+ <input type="text" class="video-search-input" placeholder="Search videos...">
567
+ <button class="search-btn"><span class="q-icon q-icon-search"></span></button>
356
568
  </div>
357
569
  <div class="header-actions">
358
- <button class="icon-btn icon-btn-circle">📹</button>
359
- <button class="icon-btn icon-btn-circle" style="position: relative;">
360
- 🔔
570
+ <button class="icon-btn"><span class="q-icon q-icon-video"></span></button>
571
+ <button class="icon-btn" style="position: relative;">
572
+ <span class="q-icon q-icon-notification"></span>
361
573
  <span class="notification-dot"></span>
362
574
  </button>
363
- <button class="icon-btn icon-btn-circle" onclick="toggleTheme()">🌓</button>
364
- <div class="avatar avatar-sm">U</div>
575
+ <button class="icon-btn theme-toggle"><span class="q-icon q-icon-sun sun-icon hidden"></span><span class="q-icon q-icon-moon moon-icon hidden"></span><span class="q-icon q-icon-display auto-icon"></span></button>
576
+ <div class="user-avatar">U</div>
365
577
  </div>
366
578
  </header>
367
579
 
368
580
  <div class="main-content">
369
581
  <aside class="sidebar">
370
582
  <div class="nav-section">
371
- <a href="#" class="nav-item active"><span>🏠</span> <span>Home</span></a>
372
- <a href="#" class="nav-item"><span>🔥</span> <span>Shorts</span></a>
373
- <a href="#" class="nav-item"><span>📺</span> <span>Subscriptions</span></a>
583
+ <a href="#" class="nav-item active"><span class="q-icon q-icon-home-fill"></span> <span>Home</span></a>
584
+ <a href="#" class="nav-item"><span class="q-icon q-icon-grid"></span> <span>Shorts</span></a>
585
+ <a href="#" class="nav-item"><span class="q-icon q-icon-users"></span> <span>Subscriptions</span></a>
374
586
  </div>
375
587
  <div class="nav-section">
376
- <div class="nav-section-title">You</div>
377
- <a href="#" class="nav-item"><span>📃</span> <span>History</span></a>
378
- <a href="#" class="nav-item"><span>📁</span> <span>Playlists</span></a>
379
- <a href="#" class="nav-item"><span>👁️</span> <span>Your videos</span></a>
380
- <a href="#" class="nav-item"><span>⏰</span> <span>Watch later</span></a>
381
- <a href="#" class="nav-item"><span>👍</span> <span>Liked videos</span></a>
588
+ <div class="nav-title">You</div>
589
+ <a href="#" class="nav-item"><span class="q-icon q-icon-clock-fill"></span> <span>History</span></a>
590
+ <a href="#" class="nav-item"><span class="q-icon q-icon-content"></span> <span>Playlists</span></a>
591
+ <a href="#" class="nav-item"><span class="q-icon q-icon-eye-fill"></span> <span>Your videos</span></a>
592
+ <a href="#" class="nav-item"><span class="q-icon q-icon-clock-fill"></span> <span>Watch later</span></a>
593
+ <a href="#" class="nav-item"><span class="q-icon q-icon-heart-fill"></span> <span>Liked videos</span></a>
382
594
  </div>
383
595
  <div class="nav-section">
384
- <div class="nav-section-title">Subscriptions</div>
385
- <a href="#" class="nav-item"><span>🎮</span> <span>Gaming Channel</span></a>
386
- <a href="#" class="nav-item"><span>💻</span> <span>Tech Review</span></a>
387
- <a href="#" class="nav-item"><span>🎵</span> <span>Music Studio</span></a>
388
- <a href="#" class="nav-item"><span>🎬</span> <span>Film Makers</span></a>
596
+ <div class="nav-title">Subscriptions</div>
597
+ <a href="#" class="nav-item"><span class="q-icon q-icon-grid"></span> <span>Gaming Channel</span></a>
598
+ <a href="#" class="nav-item"><span class="q-icon q-icon-display"></span> <span>Tech Review</span></a>
599
+ <a href="#" class="nav-item"><span class="q-icon q-icon-music"></span> <span>Music Studio</span></a>
600
+ <a href="#" class="nav-item"><span class="q-icon q-icon-play-fill"></span> <span>Film Makers</span></a>
389
601
  </div>
390
602
  </aside>
391
603
 
@@ -405,7 +617,7 @@
405
617
 
406
618
  <section class="featured-section">
407
619
  <div class="featured-header">
408
- <h2>🔥 Trending Now</h2>
620
+ <h2><span class="q-icon q-icon-trend-up"></span> Trending Now</h2>
409
621
  <a href="#" class="see-all">See all</a>
410
622
  </div>
411
623
  <div class="video-grid">
@@ -470,7 +682,7 @@
470
682
 
471
683
  <section class="featured-section">
472
684
  <div class="featured-header">
473
- <h2>⚡ Shorts</h2>
685
+ <h2><span class="q-icon q-icon-grid"></span> Shorts</h2>
474
686
  <a href="#" class="see-all">See all</a>
475
687
  </div>
476
688
  <div class="shorts-grid">
@@ -479,49 +691,49 @@
479
691
  <img src="https://images.unsplash.com/photo-1611162617474-5b21e879e113?w=400&h=711&fit=crop" alt="Short">
480
692
  <span class="short-views">1.2M views</span>
481
693
  </div>
482
- <h3 class="short-title">This trick will change your life! 😱</h3>
694
+ <h3 class="short-title">This trick will change your life!</h3>
483
695
  </div>
484
696
  <div class="short-card">
485
697
  <div class="short-thumbnail">
486
698
  <img src="https://images.unsplash.com/photo-1550745165-9bc0b252726f?w=400&h=711&fit=crop" alt="Short">
487
699
  <span class="short-views">890K views</span>
488
700
  </div>
489
- <h3 class="short-title">Gaming setup tour 2024 🎮</h3>
701
+ <h3 class="short-title">Gaming setup tour 2024</h3>
490
702
  </div>
491
703
  <div class="short-card">
492
704
  <div class="short-thumbnail">
493
705
  <img src="https://images.unsplash.com/photo-1496181133206-80ce9b88a853?w=400&h=711&fit=crop" alt="Short">
494
706
  <span class="short-views">2.5M views</span>
495
707
  </div>
496
- <h3 class="short-title">Mac vs PC - The Truth 💻</h3>
708
+ <h3 class="short-title">Mac vs PC - The Truth</h3>
497
709
  </div>
498
710
  <div class="short-card">
499
711
  <div class="short-thumbnail">
500
712
  <img src="https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?w=400&h=711&fit=crop" alt="Short">
501
713
  <span class="short-views">650K views</span>
502
714
  </div>
503
- <h3 class="short-title">Music production tips 🎵</h3>
715
+ <h3 class="short-title">Music production tips</h3>
504
716
  </div>
505
717
  <div class="short-card">
506
718
  <div class="short-thumbnail">
507
719
  <img src="https://images.unsplash.com/photo-1485827404703-89b55fcc595e?w=400&h=711&fit=crop" alt="Short">
508
720
  <span class="short-views">3.2M views</span>
509
721
  </div>
510
- <h3 class="short-title">AI Robot Does Backflip! 🤖</h3>
722
+ <h3 class="short-title">AI Robot Does Backflip!</h3>
511
723
  </div>
512
724
  <div class="short-card">
513
725
  <div class="short-thumbnail">
514
726
  <img src="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=400&h=711&fit=crop" alt="Short">
515
727
  <span class="short-views">1.8M views</span>
516
728
  </div>
517
- <h3 class="short-title">Epic drone footage 🏔️</h3>
729
+ <h3 class="short-title">Epic drone footage</h3>
518
730
  </div>
519
731
  </div>
520
732
  </section>
521
733
 
522
734
  <section>
523
735
  <div class="featured-header">
524
- <h2>📺 Recommended</h2>
736
+ <h2><span class="q-icon q-icon-star"></span> Recommended</h2>
525
737
  </div>
526
738
  <div class="video-grid">
527
739
  <div class="video-card">
@@ -573,7 +785,6 @@
573
785
  </div>
574
786
 
575
787
  <script>
576
-
577
788
  document.querySelectorAll('.category-tab').forEach(tab => {
578
789
  tab.addEventListener('click', function() {
579
790
  document.querySelectorAll('.category-tab').forEach(t => t.classList.remove('active'));