Aynursusuz commited on
Commit
ee6cd2a
·
verified ·
1 Parent(s): c4aa738

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +129 -61
index.html CHANGED
@@ -13,8 +13,9 @@
13
 
14
  body {
15
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, sans-serif;
16
- background: #fafafa;
17
- color: #1a1a1a;
 
18
  min-height: 100vh;
19
  }
20
 
@@ -25,50 +26,69 @@
25
 
26
  .sidebar {
27
  width: 280px;
28
- background: #ffffff;
29
- padding: 32px 24px;
30
- border-right: 1px solid #e5e5e5;
 
31
  position: fixed;
32
  height: 100vh;
33
  overflow-y: auto;
34
  }
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  .logo {
37
  font-size: 1.5rem;
38
  font-weight: 700;
39
- color: #1a1a1a;
 
 
 
40
  margin-bottom: 40px;
41
  letter-spacing: -0.5px;
42
  }
43
 
44
  .sidebar h3 {
45
- color: #737373;
46
  font-size: 0.75rem;
47
  font-weight: 600;
48
  text-transform: uppercase;
49
- letter-spacing: 0.5px;
50
  margin-bottom: 16px;
51
  }
52
 
53
  .category-item {
54
  padding: 12px 16px;
55
  margin-bottom: 4px;
56
- border-radius: 8px;
57
  cursor: pointer;
58
- transition: all 0.2s ease;
59
  display: flex;
60
  align-items: center;
61
  justify-content: space-between;
62
  font-size: 0.95rem;
 
63
  }
64
 
65
  .category-item:hover {
66
- background: #f5f5f5;
 
67
  }
68
 
69
  .category-item.active {
70
- background: #1a1a1a;
71
- color: white;
72
  }
73
 
74
  .category-name {
@@ -79,24 +99,21 @@
79
  }
80
 
81
  .category-count {
82
- background: #f5f5f5;
83
- padding: 3px 10px;
84
  border-radius: 12px;
85
  font-size: 0.7rem;
86
  font-weight: 600;
87
- color: #737373;
88
  }
89
 
90
  .category-item.active .category-count {
91
- background: rgba(255,255,255,0.15);
92
- color: rgba(255,255,255,0.9);
93
  }
94
 
95
  .main-content {
96
  flex: 1;
97
  margin-left: 280px;
98
  padding: 48px 64px;
99
- background: #fafafa;
100
  }
101
 
102
  .header {
@@ -104,35 +121,44 @@
104
  }
105
 
106
  .header h1 {
107
- font-size: 2.5rem;
108
  margin-bottom: 12px;
109
- color: #1a1a1a;
110
  font-weight: 700;
111
- letter-spacing: -1px;
 
 
 
 
112
  }
113
 
114
  .header p {
115
- color: #737373;
116
- font-size: 1rem;
117
  }
118
 
119
  .search-bar {
120
- background: #ffffff;
121
- border: 1px solid #e5e5e5;
122
- border-radius: 10px;
123
- padding: 14px 20px;
 
124
  width: 100%;
125
  max-width: 500px;
126
- color: #1a1a1a;
127
  font-size: 0.95rem;
128
  margin-top: 24px;
129
- transition: all 0.2s ease;
 
 
 
 
130
  }
131
 
132
  .search-bar:focus {
133
  outline: none;
134
- border-color: #1a1a1a;
135
- box-shadow: 0 0 0 3px rgba(0,0,0,0.05);
 
136
  }
137
 
138
  .category-header {
@@ -144,11 +170,11 @@
144
 
145
  .category-header .icon {
146
  font-size: 2.5rem;
 
147
  }
148
 
149
  .category-header h2 {
150
  font-size: 2rem;
151
- color: #1a1a1a;
152
  font-weight: 700;
153
  letter-spacing: -0.5px;
154
  }
@@ -160,20 +186,22 @@
160
  }
161
 
162
  .playlist-card {
163
- background: #ffffff;
164
- border: 1px solid #e5e5e5;
165
- border-radius: 12px;
 
166
  overflow: hidden;
167
- transition: all 0.3s ease;
168
  cursor: pointer;
169
  text-decoration: none;
170
  display: block;
171
  }
172
 
173
  .playlist-card:hover {
174
- border-color: #1a1a1a;
175
- transform: translateY(-4px);
176
- box-shadow: 0 12px 24px rgba(0,0,0,0.08);
 
177
  }
178
 
179
  .playlist-thumbnail {
@@ -181,8 +209,23 @@
181
  height: 180px;
182
  position: relative;
183
  overflow: hidden;
184
- background: #f5f5f5;
185
- border-bottom: 1px solid #e5e5e5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
187
 
188
  .thumbnail-overlay {
@@ -191,32 +234,39 @@
191
  left: 0;
192
  right: 0;
193
  bottom: 0;
194
- background: transparent;
195
  display: flex;
196
  align-items: center;
197
  justify-content: center;
 
 
 
 
 
 
198
  }
199
 
200
  .play-button {
201
- width: 56px;
202
- height: 56px;
203
- background: #1a1a1a;
204
  border-radius: 50%;
205
  display: flex;
206
  align-items: center;
207
  justify-content: center;
208
- transition: all 0.3s ease;
 
209
  }
210
 
211
  .playlist-card:hover .play-button {
212
- transform: scale(1.1);
213
- background: #000000;
 
214
  }
215
 
216
  .play-button::after {
217
  content: '▶';
218
- color: white;
219
- font-size: 18px;
220
  margin-left: 3px;
221
  }
222
 
@@ -228,19 +278,20 @@
228
  display: inline-flex;
229
  align-items: center;
230
  gap: 6px;
231
- background: #1a1a1a;
232
  color: white;
233
  padding: 6px 12px;
234
- border-radius: 6px;
235
  font-size: 0.7rem;
236
  font-weight: 600;
237
  text-transform: uppercase;
238
  letter-spacing: 0.5px;
239
  margin-bottom: 12px;
 
240
  }
241
 
242
  .playlist-title {
243
- color: #1a1a1a;
244
  font-weight: 600;
245
  font-size: 1.1rem;
246
  margin-bottom: 12px;
@@ -252,7 +303,7 @@
252
  align-items: center;
253
  gap: 12px;
254
  font-size: 0.85rem;
255
- color: #737373;
256
  }
257
 
258
  .meta-item {
@@ -264,22 +315,33 @@
264
  .loading {
265
  text-align: center;
266
  padding: 100px;
267
- color: #737373;
268
  font-size: 1.2rem;
269
  }
270
 
271
  .empty-state {
272
  text-align: center;
273
  padding: 80px 20px;
274
- color: #737373;
275
  }
276
 
277
  .empty-state h3 {
278
  font-size: 1.5rem;
279
  margin-bottom: 8px;
280
- color: #1a1a1a;
281
  }
282
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  @media (max-width: 1024px) {
284
  .main-content {
285
  padding: 32px 40px;
@@ -311,7 +373,7 @@
311
  width: 100%;
312
  height: auto;
313
  border-right: none;
314
- border-bottom: 1px solid #e5e5e5;
315
  }
316
 
317
  .main-content {
@@ -356,6 +418,12 @@
356
  let allData = null;
357
  let currentCategory = null;
358
 
 
 
 
 
 
 
359
  async function loadData() {
360
  try {
361
  const response = await fetch('playlists.json');
@@ -393,7 +461,7 @@
393
 
394
  content.innerHTML = '<div class="category-header"><span class="icon">' + category.icon + '</span><h2>' + category.name + '</h2></div><div class="playlist-grid">' +
395
  category.playlists.map((pl, index) => {
396
- return '<a href="' + pl.url + '" target="_blank" class="playlist-card"><div class="playlist-thumbnail"><div class="thumbnail-overlay"><div class="play-button"></div></div></div><div class="playlist-info"><div class="platform-badge"><span>▶</span> YouTube</div><div class="playlist-title">' + pl.title + '</div><div class="playlist-meta"><div class="meta-item"><span>📂</span><span>' + category.name + '</span></div></div></div></a>';
397
  }).join('') + '</div>';
398
  }
399
 
@@ -422,7 +490,7 @@
422
  } else {
423
  content.innerHTML = '<div class="category-header"><span class="icon">🔍</span><h2>Search Results</h2></div><div class="playlist-grid">' +
424
  results.map((result, index) => {
425
- return '<a href="' + result.url + '" target="_blank" class="playlist-card"><div class="playlist-thumbnail"><div class="thumbnail-overlay"><div class="play-button"></div></div></div><div class="playlist-info"><div class="platform-badge"><span>▶</span> YouTube</div><div class="playlist-title">' + result.title + '</div><div class="playlist-meta"><div class="meta-item"><span>' + result.category.icon + '</span><span>' + result.category.name + '</span></div></div></div></a>';
426
  }).join('') + '</div>';
427
  }
428
  });
 
13
 
14
  body {
15
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, sans-serif;
16
+ background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
17
+ background-attachment: fixed;
18
+ color: #ffffff;
19
  min-height: 100vh;
20
  }
21
 
 
26
 
27
  .sidebar {
28
  width: 280px;
29
+ background: rgba(15, 12, 41, 0.8);
30
+ backdrop-filter: blur(20px);
31
+ padding: 32px 20px;
32
+ border-right: 1px solid rgba(255, 255, 255, 0.1);
33
  position: fixed;
34
  height: 100vh;
35
  overflow-y: auto;
36
  }
37
 
38
+ .sidebar::-webkit-scrollbar {
39
+ width: 6px;
40
+ }
41
+
42
+ .sidebar::-webkit-scrollbar-track {
43
+ background: rgba(255, 255, 255, 0.05);
44
+ }
45
+
46
+ .sidebar::-webkit-scrollbar-thumb {
47
+ background: rgba(124, 58, 237, 0.5);
48
+ border-radius: 3px;
49
+ }
50
+
51
  .logo {
52
  font-size: 1.5rem;
53
  font-weight: 700;
54
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
55
+ -webkit-background-clip: text;
56
+ -webkit-text-fill-color: transparent;
57
+ background-clip: text;
58
  margin-bottom: 40px;
59
  letter-spacing: -0.5px;
60
  }
61
 
62
  .sidebar h3 {
63
+ color: rgba(255, 255, 255, 0.5);
64
  font-size: 0.75rem;
65
  font-weight: 600;
66
  text-transform: uppercase;
67
+ letter-spacing: 1px;
68
  margin-bottom: 16px;
69
  }
70
 
71
  .category-item {
72
  padding: 12px 16px;
73
  margin-bottom: 4px;
74
+ border-radius: 10px;
75
  cursor: pointer;
76
+ transition: all 0.3s ease;
77
  display: flex;
78
  align-items: center;
79
  justify-content: space-between;
80
  font-size: 0.95rem;
81
+ background: transparent;
82
  }
83
 
84
  .category-item:hover {
85
+ background: rgba(255, 255, 255, 0.08);
86
+ transform: translateX(4px);
87
  }
88
 
89
  .category-item.active {
90
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
91
+ box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
92
  }
93
 
94
  .category-name {
 
99
  }
100
 
101
  .category-count {
102
+ background: rgba(255, 255, 255, 0.1);
103
+ padding: 4px 10px;
104
  border-radius: 12px;
105
  font-size: 0.7rem;
106
  font-weight: 600;
 
107
  }
108
 
109
  .category-item.active .category-count {
110
+ background: rgba(255, 255, 255, 0.2);
 
111
  }
112
 
113
  .main-content {
114
  flex: 1;
115
  margin-left: 280px;
116
  padding: 48px 64px;
 
117
  }
118
 
119
  .header {
 
121
  }
122
 
123
  .header h1 {
124
+ font-size: 3rem;
125
  margin-bottom: 12px;
 
126
  font-weight: 700;
127
+ letter-spacing: -1.5px;
128
+ background: linear-gradient(135deg, #ffffff 0%, #a0a0a0 100%);
129
+ -webkit-background-clip: text;
130
+ -webkit-text-fill-color: transparent;
131
+ background-clip: text;
132
  }
133
 
134
  .header p {
135
+ color: rgba(255, 255, 255, 0.6);
136
+ font-size: 1.1rem;
137
  }
138
 
139
  .search-bar {
140
+ background: rgba(255, 255, 255, 0.08);
141
+ backdrop-filter: blur(10px);
142
+ border: 1px solid rgba(255, 255, 255, 0.15);
143
+ border-radius: 12px;
144
+ padding: 16px 24px;
145
  width: 100%;
146
  max-width: 500px;
147
+ color: #ffffff;
148
  font-size: 0.95rem;
149
  margin-top: 24px;
150
+ transition: all 0.3s ease;
151
+ }
152
+
153
+ .search-bar::placeholder {
154
+ color: rgba(255, 255, 255, 0.4);
155
  }
156
 
157
  .search-bar:focus {
158
  outline: none;
159
+ border-color: rgba(102, 126, 234, 0.8);
160
+ background: rgba(255, 255, 255, 0.12);
161
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.15);
162
  }
163
 
164
  .category-header {
 
170
 
171
  .category-header .icon {
172
  font-size: 2.5rem;
173
+ filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
174
  }
175
 
176
  .category-header h2 {
177
  font-size: 2rem;
 
178
  font-weight: 700;
179
  letter-spacing: -0.5px;
180
  }
 
186
  }
187
 
188
  .playlist-card {
189
+ background: rgba(255, 255, 255, 0.05);
190
+ backdrop-filter: blur(10px);
191
+ border: 1px solid rgba(255, 255, 255, 0.1);
192
+ border-radius: 16px;
193
  overflow: hidden;
194
+ transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
195
  cursor: pointer;
196
  text-decoration: none;
197
  display: block;
198
  }
199
 
200
  .playlist-card:hover {
201
+ border-color: rgba(102, 126, 234, 0.6);
202
+ transform: translateY(-8px);
203
+ box-shadow: 0 20px 40px rgba(102, 126, 234, 0.3);
204
+ background: rgba(255, 255, 255, 0.08);
205
  }
206
 
207
  .playlist-thumbnail {
 
209
  height: 180px;
210
  position: relative;
211
  overflow: hidden;
212
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
213
+ }
214
+
215
+ .thumbnail-pattern {
216
+ position: absolute;
217
+ top: 0;
218
+ left: 0;
219
+ right: 0;
220
+ bottom: 0;
221
+ background:
222
+ linear-gradient(45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%),
223
+ linear-gradient(-45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%),
224
+ linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%),
225
+ linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%);
226
+ background-size: 20px 20px;
227
+ background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
228
+ opacity: 0.3;
229
  }
230
 
231
  .thumbnail-overlay {
 
234
  left: 0;
235
  right: 0;
236
  bottom: 0;
 
237
  display: flex;
238
  align-items: center;
239
  justify-content: center;
240
+ background: rgba(0, 0, 0, 0.2);
241
+ transition: all 0.3s ease;
242
+ }
243
+
244
+ .playlist-card:hover .thumbnail-overlay {
245
+ background: rgba(0, 0, 0, 0.4);
246
  }
247
 
248
  .play-button {
249
+ width: 64px;
250
+ height: 64px;
251
+ background: rgba(255, 255, 255, 0.95);
252
  border-radius: 50%;
253
  display: flex;
254
  align-items: center;
255
  justify-content: center;
256
+ transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
257
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
258
  }
259
 
260
  .playlist-card:hover .play-button {
261
+ transform: scale(1.15);
262
+ background: white;
263
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
264
  }
265
 
266
  .play-button::after {
267
  content: '▶';
268
+ color: #1a1a1a;
269
+ font-size: 20px;
270
  margin-left: 3px;
271
  }
272
 
 
278
  display: inline-flex;
279
  align-items: center;
280
  gap: 6px;
281
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
282
  color: white;
283
  padding: 6px 12px;
284
+ border-radius: 8px;
285
  font-size: 0.7rem;
286
  font-weight: 600;
287
  text-transform: uppercase;
288
  letter-spacing: 0.5px;
289
  margin-bottom: 12px;
290
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
291
  }
292
 
293
  .playlist-title {
294
+ color: #ffffff;
295
  font-weight: 600;
296
  font-size: 1.1rem;
297
  margin-bottom: 12px;
 
303
  align-items: center;
304
  gap: 12px;
305
  font-size: 0.85rem;
306
+ color: rgba(255, 255, 255, 0.6);
307
  }
308
 
309
  .meta-item {
 
315
  .loading {
316
  text-align: center;
317
  padding: 100px;
318
+ color: rgba(255, 255, 255, 0.6);
319
  font-size: 1.2rem;
320
  }
321
 
322
  .empty-state {
323
  text-align: center;
324
  padding: 80px 20px;
 
325
  }
326
 
327
  .empty-state h3 {
328
  font-size: 1.5rem;
329
  margin-bottom: 8px;
330
+ color: #ffffff;
331
  }
332
 
333
+ .empty-state p {
334
+ color: rgba(255, 255, 255, 0.6);
335
+ }
336
+
337
+ /* Gradient variations for thumbnails */
338
+ .gradient-1 { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
339
+ .gradient-2 { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
340
+ .gradient-3 { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); }
341
+ .gradient-4 { background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); }
342
+ .gradient-5 { background: linear-gradient(135deg, #fa709a 0%, #fee140 100%); }
343
+ .gradient-6 { background: linear-gradient(135deg, #30cfd0 0%, #330867 100%); }
344
+
345
  @media (max-width: 1024px) {
346
  .main-content {
347
  padding: 32px 40px;
 
373
  width: 100%;
374
  height: auto;
375
  border-right: none;
376
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
377
  }
378
 
379
  .main-content {
 
418
  let allData = null;
419
  let currentCategory = null;
420
 
421
+ const gradientClasses = ['gradient-1', 'gradient-2', 'gradient-3', 'gradient-4', 'gradient-5', 'gradient-6'];
422
+
423
+ function getGradientClass(index) {
424
+ return gradientClasses[index % gradientClasses.length];
425
+ }
426
+
427
  async function loadData() {
428
  try {
429
  const response = await fetch('playlists.json');
 
461
 
462
  content.innerHTML = '<div class="category-header"><span class="icon">' + category.icon + '</span><h2>' + category.name + '</h2></div><div class="playlist-grid">' +
463
  category.playlists.map((pl, index) => {
464
+ return '<a href="' + pl.url + '" target="_blank" class="playlist-card"><div class="playlist-thumbnail ' + getGradientClass(index) + '"><div class="thumbnail-pattern"></div><div class="thumbnail-overlay"><div class="play-button"></div></div></div><div class="playlist-info"><div class="platform-badge"><span>▶</span> YouTube</div><div class="playlist-title">' + pl.title + '</div><div class="playlist-meta"><div class="meta-item"><span>📂</span><span>' + category.name + '</span></div></div></div></a>';
465
  }).join('') + '</div>';
466
  }
467
 
 
490
  } else {
491
  content.innerHTML = '<div class="category-header"><span class="icon">🔍</span><h2>Search Results</h2></div><div class="playlist-grid">' +
492
  results.map((result, index) => {
493
+ return '<a href="' + result.url + '" target="_blank" class="playlist-card"><div class="playlist-thumbnail ' + getGradientClass(index) + '"><div class="thumbnail-pattern"></div><div class="thumbnail-overlay"><div class="play-button"></div></div></div><div class="playlist-info"><div class="platform-badge"><span>▶</span> YouTube</div><div class="playlist-title">' + result.title + '</div><div class="playlist-meta"><div class="meta-item"><span>' + result.category.icon + '</span><span>' + result.category.name + '</span></div></div></div></a>';
494
  }).join('') + '</div>';
495
  }
496
  });