Spaces:
Running
Running
dont use red and blue for the colores, of player highlights. only one color is enough
Browse files- components/footer.js +5 -8
- components/navigation.js +4 -8
- index.html +13 -13
- script.js +10 -11
- style.css +5 -10
components/footer.js
CHANGED
|
@@ -31,18 +31,16 @@ class CustomFooter extends HTMLElement {
|
|
| 31 |
.footer-grid {
|
| 32 |
grid-template-columns: repeat(3, 1fr);
|
| 33 |
}
|
| 34 |
-
|
| 35 |
.footer-section h4 {
|
| 36 |
font-size: 1.125rem;
|
| 37 |
font-weight: 600;
|
| 38 |
margin-bottom: 1rem;
|
| 39 |
-
background: linear-gradient(135deg, #0ea5e9 0%, #
|
| 40 |
-webkit-background-clip: text;
|
| 41 |
-webkit-text-fill-color: transparent;
|
| 42 |
background-clip: text;
|
| 43 |
}
|
| 44 |
-
|
| 45 |
-
.footer-links {
|
| 46 |
display: flex;
|
| 47 |
flex-direction: column;
|
| 48 |
gap: 0.5rem;
|
|
@@ -80,12 +78,11 @@ class CustomFooter extends HTMLElement {
|
|
| 80 |
color: rgba(255, 255, 255, 0.6);
|
| 81 |
transition: all 0.3s ease;
|
| 82 |
}
|
| 83 |
-
.social-link:hover {
|
| 84 |
-
background: linear-gradient(135deg, #0ea5e9 0%, #
|
| 85 |
color: white;
|
| 86 |
}
|
| 87 |
-
|
| 88 |
-
.copyright {
|
| 89 |
color: rgba(255, 255, 255, 0.5);
|
| 90 |
font-size: 0.875rem;
|
| 91 |
}
|
|
|
|
| 31 |
.footer-grid {
|
| 32 |
grid-template-columns: repeat(3, 1fr);
|
| 33 |
}
|
|
|
|
| 34 |
.footer-section h4 {
|
| 35 |
font-size: 1.125rem;
|
| 36 |
font-weight: 600;
|
| 37 |
margin-bottom: 1rem;
|
| 38 |
+
background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
|
| 39 |
-webkit-background-clip: text;
|
| 40 |
-webkit-text-fill-color: transparent;
|
| 41 |
background-clip: text;
|
| 42 |
}
|
| 43 |
+
.footer-links {
|
|
|
|
| 44 |
display: flex;
|
| 45 |
flex-direction: column;
|
| 46 |
gap: 0.5rem;
|
|
|
|
| 78 |
color: rgba(255, 255, 255, 0.6);
|
| 79 |
transition: all 0.3s ease;
|
| 80 |
}
|
| 81 |
+
.social-link:hover {
|
| 82 |
+
background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
|
| 83 |
color: white;
|
| 84 |
}
|
| 85 |
+
.copyright {
|
|
|
|
| 86 |
color: rgba(255, 255, 255, 0.5);
|
| 87 |
font-size: 0.875rem;
|
| 88 |
}
|
components/navigation.js
CHANGED
|
@@ -35,17 +35,15 @@ class CustomNavigation extends HTMLElement {
|
|
| 35 |
gap: 0.75rem;
|
| 36 |
text-decoration: none;
|
| 37 |
}
|
| 38 |
-
|
| 39 |
.logo-text {
|
| 40 |
font-size: 1.5rem;
|
| 41 |
font-weight: 800;
|
| 42 |
-
background: linear-gradient(135deg, #0ea5e9 0%, #
|
| 43 |
-webkit-background-clip: text;
|
| 44 |
-webkit-text-fill-color: transparent;
|
| 45 |
background-clip: text;
|
| 46 |
}
|
| 47 |
-
|
| 48 |
-
.nav-actions {
|
| 49 |
display: flex;
|
| 50 |
align-items: center;
|
| 51 |
gap: 1rem;
|
|
@@ -74,7 +72,6 @@ class CustomNavigation extends HTMLElement {
|
|
| 74 |
position: relative;
|
| 75 |
cursor: pointer;
|
| 76 |
}
|
| 77 |
-
|
| 78 |
.theme-toggle::before {
|
| 79 |
content: '';
|
| 80 |
position: absolute;
|
|
@@ -82,12 +79,11 @@ class CustomNavigation extends HTMLElement {
|
|
| 82 |
left: 1px;
|
| 83 |
width: 16px;
|
| 84 |
height: 16px;
|
| 85 |
-
background: linear-gradient(135deg, #0ea5e9 0%, #
|
| 86 |
border-radius: 9999px;
|
| 87 |
transition: transform 0.3s ease;
|
| 88 |
}
|
| 89 |
-
|
| 90 |
-
:host-context(.dark) .theme-toggle::before {
|
| 91 |
transform: translateX(18px);
|
| 92 |
}
|
| 93 |
@media (max-width: 768px) {
|
|
|
|
| 35 |
gap: 0.75rem;
|
| 36 |
text-decoration: none;
|
| 37 |
}
|
|
|
|
| 38 |
.logo-text {
|
| 39 |
font-size: 1.5rem;
|
| 40 |
font-weight: 800;
|
| 41 |
+
background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
|
| 42 |
-webkit-background-clip: text;
|
| 43 |
-webkit-text-fill-color: transparent;
|
| 44 |
background-clip: text;
|
| 45 |
}
|
| 46 |
+
.nav-actions {
|
|
|
|
| 47 |
display: flex;
|
| 48 |
align-items: center;
|
| 49 |
gap: 1rem;
|
|
|
|
| 72 |
position: relative;
|
| 73 |
cursor: pointer;
|
| 74 |
}
|
|
|
|
| 75 |
.theme-toggle::before {
|
| 76 |
content: '';
|
| 77 |
position: absolute;
|
|
|
|
| 79 |
left: 1px;
|
| 80 |
width: 16px;
|
| 81 |
height: 16px;
|
| 82 |
+
background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
|
| 83 |
border-radius: 9999px;
|
| 84 |
transition: transform 0.3s ease;
|
| 85 |
}
|
| 86 |
+
:host-context(.dark) .theme-toggle::before {
|
|
|
|
| 87 |
transform: translateX(18px);
|
| 88 |
}
|
| 89 |
@media (max-width: 768px) {
|
index.html
CHANGED
|
@@ -87,8 +87,8 @@
|
|
| 87 |
<p class="text-lg text-gray-300 max-w-2xl mx-auto mb-8">
|
| 88 |
A curated archive of transcendent fLau & blauschig DJ sets. Dive into sonic journeys that defined nights of pure musical euphoria.
|
| 89 |
</p>
|
| 90 |
-
<a href="main.html" class="inline-flex items-center gap-2 bg-gradient-to-r from-primary-600 to-
|
| 91 |
-
|
| 92 |
Return to Main Hub
|
| 93 |
</a>
|
| 94 |
</header>
|
|
@@ -102,8 +102,8 @@
|
|
| 102 |
<div class="flex items-center justify-between mb-6">
|
| 103 |
<h2 class="text-2xl font-bold flex items-center gap-3">
|
| 104 |
<i data-feather="play-circle" class="text-primary-400"></i>
|
| 105 |
-
|
| 106 |
-
|
| 107 |
<div class="flex items-center gap-2">
|
| 108 |
<div class="w-3 h-3 rounded-full bg-primary-500 animate-pulse"></div>
|
| 109 |
<span class="text-sm font-medium text-primary-300">LIVE</span>
|
|
@@ -135,9 +135,9 @@
|
|
| 135 |
<div class="space-y-6">
|
| 136 |
<!-- Progress Bar -->
|
| 137 |
<div class="space-y-2">
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
</div>
|
| 142 |
</div>
|
| 143 |
<div class="flex justify-between text-sm text-gray-400">
|
|
@@ -153,8 +153,8 @@
|
|
| 153 |
<button class="control-btn text-gray-400 hover:text-primary-400">
|
| 154 |
<i data-feather="skip-back"></i>
|
| 155 |
</button>
|
| 156 |
-
<button class="control-btn bg-gradient-to-r from-primary-600 to-
|
| 157 |
-
|
| 158 |
</button>
|
| 159 |
<button class="control-btn text-gray-400 hover:text-primary-400">
|
| 160 |
<i data-feather="skip-forward"></i>
|
|
@@ -168,8 +168,8 @@
|
|
| 168 |
<div class="flex items-center gap-3">
|
| 169 |
<i data-feather="volume-2" class="text-primary-400 w-4 h-4"></i>
|
| 170 |
<div class="w-24 h-2 bg-gray-800 rounded-full overflow-hidden">
|
| 171 |
-
<div class="h-full w-3/4 bg-gradient-to-r from-primary-400 to-
|
| 172 |
-
|
| 173 |
<div class="flex items-center gap-2">
|
| 174 |
<button class="player-control-btn text-gray-400 hover:text-primary-400">
|
| 175 |
<i data-feather="heart" class="w-4 h-4"></i>
|
|
@@ -192,8 +192,8 @@
|
|
| 192 |
<section class="bg-gradient-to-br from-gray-800/50 to-black/50 backdrop-blur-xl rounded-3xl p-8 border border-gray-700/50">
|
| 193 |
<h2 class="text-2xl font-bold mb-6 flex items-center gap-3">
|
| 194 |
<i data-feather="music" class="text-primary-400"></i>
|
| 195 |
-
<span class="bg-gradient-to-r from-primary-300 to-
|
| 196 |
-
|
| 197 |
<p class="text-gray-400 mb-6">
|
| 198 |
Select a sonic journey from the archive below. Each set is a timestamped memory of pure vibration.
|
| 199 |
</p>
|
|
|
|
| 87 |
<p class="text-lg text-gray-300 max-w-2xl mx-auto mb-8">
|
| 88 |
A curated archive of transcendent fLau & blauschig DJ sets. Dive into sonic journeys that defined nights of pure musical euphoria.
|
| 89 |
</p>
|
| 90 |
+
<a href="main.html" class="inline-flex items-center gap-2 bg-gradient-to-r from-primary-600 to-primary-700 hover:from-primary-700 hover:to-primary-800 text-white font-medium px-4 py-2 rounded-full transition-all duration-300 hover:scale-105 hover:shadow-2xl hover:shadow-primary-500/30 text-sm">
|
| 91 |
+
<i data-feather="home" class="w-4 h-4"></i>
|
| 92 |
Return to Main Hub
|
| 93 |
</a>
|
| 94 |
</header>
|
|
|
|
| 102 |
<div class="flex items-center justify-between mb-6">
|
| 103 |
<h2 class="text-2xl font-bold flex items-center gap-3">
|
| 104 |
<i data-feather="play-circle" class="text-primary-400"></i>
|
| 105 |
+
<span class="bg-gradient-to-r from-primary-300 to-primary-400 bg-clip-text text-transparent">Now Playing</span>
|
| 106 |
+
</h2>
|
| 107 |
<div class="flex items-center gap-2">
|
| 108 |
<div class="w-3 h-3 rounded-full bg-primary-500 animate-pulse"></div>
|
| 109 |
<span class="text-sm font-medium text-primary-300">LIVE</span>
|
|
|
|
| 135 |
<div class="space-y-6">
|
| 136 |
<!-- Progress Bar -->
|
| 137 |
<div class="space-y-2">
|
| 138 |
+
<div class="h-2 bg-gray-800 rounded-full overflow-hidden">
|
| 139 |
+
<div class="h-full w-1/3 bg-gradient-to-r from-primary-500 to-primary-600 rounded-full relative">
|
| 140 |
+
<div class="absolute -right-2 top-1/2 -translate-y-1/2 w-4 h-4 bg-white rounded-full shadow-lg"></div>
|
| 141 |
</div>
|
| 142 |
</div>
|
| 143 |
<div class="flex justify-between text-sm text-gray-400">
|
|
|
|
| 153 |
<button class="control-btn text-gray-400 hover:text-primary-400">
|
| 154 |
<i data-feather="skip-back"></i>
|
| 155 |
</button>
|
| 156 |
+
<button class="control-btn bg-gradient-to-r from-primary-600 to-primary-700 text-white p-3 rounded-full hover:shadow-2xl hover:shadow-primary-500/50 hover:scale-105 transition-all duration-300 shadow-lg">
|
| 157 |
+
<i data-feather="play" class="w-5 h-5"></i>
|
| 158 |
</button>
|
| 159 |
<button class="control-btn text-gray-400 hover:text-primary-400">
|
| 160 |
<i data-feather="skip-forward"></i>
|
|
|
|
| 168 |
<div class="flex items-center gap-3">
|
| 169 |
<i data-feather="volume-2" class="text-primary-400 w-4 h-4"></i>
|
| 170 |
<div class="w-24 h-2 bg-gray-800 rounded-full overflow-hidden">
|
| 171 |
+
<div class="h-full w-3/4 bg-gradient-to-r from-primary-400 to-primary-600 rounded-full"></div>
|
| 172 |
+
</div>
|
| 173 |
<div class="flex items-center gap-2">
|
| 174 |
<button class="player-control-btn text-gray-400 hover:text-primary-400">
|
| 175 |
<i data-feather="heart" class="w-4 h-4"></i>
|
|
|
|
| 192 |
<section class="bg-gradient-to-br from-gray-800/50 to-black/50 backdrop-blur-xl rounded-3xl p-8 border border-gray-700/50">
|
| 193 |
<h2 class="text-2xl font-bold mb-6 flex items-center gap-3">
|
| 194 |
<i data-feather="music" class="text-primary-400"></i>
|
| 195 |
+
<span class="bg-gradient-to-r from-primary-300 to-primary-400 bg-clip-text text-transparent">The Vault</span>
|
| 196 |
+
</h2>
|
| 197 |
<p class="text-gray-400 mb-6">
|
| 198 |
Select a sonic journey from the archive below. Each set is a timestamped memory of pure vibration.
|
| 199 |
</p>
|
script.js
CHANGED
|
@@ -285,8 +285,8 @@ function updateVolume(volume) {
|
|
| 285 |
function showNotification(message) {
|
| 286 |
// Create notification element
|
| 287 |
const notification = document.createElement('div');
|
| 288 |
-
notification.className = 'fixed bottom-4 right-4 bg-gradient-to-r from-primary-800 to-
|
| 289 |
-
|
| 290 |
notification.innerHTML = `
|
| 291 |
<div class="flex items-center gap-3">
|
| 292 |
<i data-feather="bell" class="w-5 h-5"></i>
|
|
@@ -403,15 +403,14 @@ function initializeMandelbrotBackground() {
|
|
| 403 |
zx2 = tmp;
|
| 404 |
i++;
|
| 405 |
}
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
}
|
| 415 |
}
|
| 416 |
|
| 417 |
if(zoom > 30) { // EXTREM LANG: 15x länger als Original
|
|
|
|
| 285 |
function showNotification(message) {
|
| 286 |
// Create notification element
|
| 287 |
const notification = document.createElement('div');
|
| 288 |
+
notification.className = 'fixed bottom-4 right-4 bg-gradient-to-r from-primary-800 to-primary-900 text-white px-6 py-3 rounded-xl shadow-2xl transform transition-all duration-300';
|
| 289 |
+
notification.style.zIndex = '1000';
|
| 290 |
notification.innerHTML = `
|
| 291 |
<div class="flex items-center gap-3">
|
| 292 |
<i data-feather="bell" class="w-5 h-5"></i>
|
|
|
|
| 403 |
zx2 = tmp;
|
| 404 |
i++;
|
| 405 |
}
|
| 406 |
+
if(i < 20) {
|
| 407 |
+
const hue = 200 + (i * 5 + time * 20) % 40; // Blue range only
|
| 408 |
+
const textPosition = Math.floor((x + y + time * 100) / density) % chars.length;
|
| 409 |
+
const char = chars[textPosition];
|
| 410 |
+
ctx.fillStyle = `hsla(${hue}, 100%, 70%, ${i/20 * 0.8})`;
|
| 411 |
+
ctx.fillText(char, x, y);
|
| 412 |
+
}
|
| 413 |
+
}
|
|
|
|
| 414 |
}
|
| 415 |
|
| 416 |
if(zoom > 30) { // EXTREM LANG: 15x länger als Original
|
style.css
CHANGED
|
@@ -24,14 +24,13 @@ body {
|
|
| 24 |
background: rgba(15, 23, 42, 0.5);
|
| 25 |
border-radius: 5px;
|
| 26 |
}
|
| 27 |
-
|
| 28 |
::-webkit-scrollbar-thumb {
|
| 29 |
-
background: linear-gradient(to bottom, #0ea5e9, #
|
| 30 |
border-radius: 5px;
|
| 31 |
}
|
| 32 |
|
| 33 |
::-webkit-scrollbar-thumb:hover {
|
| 34 |
-
background: linear-gradient(to bottom, #0284c7, #
|
| 35 |
}
|
| 36 |
/* Player Control Button Styles */
|
| 37 |
.control-btn {
|
|
@@ -67,7 +66,7 @@ body {
|
|
| 67 |
}
|
| 68 |
.filter-btn:hover,
|
| 69 |
.filter-btn.active {
|
| 70 |
-
background: linear-gradient(135deg, rgba(14, 165, 233, 0.2), rgba(
|
| 71 |
border-color: rgba(14, 165, 233, 0.4);
|
| 72 |
color: white;
|
| 73 |
box-shadow: 0 5px 15px rgba(14, 165, 233, 0.2);
|
|
@@ -83,7 +82,6 @@ body {
|
|
| 83 |
border-color: rgba(14, 165, 233, 0.3);
|
| 84 |
transform: translateX(4px);
|
| 85 |
}
|
| 86 |
-
|
| 87 |
/* Audio Wave Animation */
|
| 88 |
.audio-wave {
|
| 89 |
display: flex;
|
|
@@ -95,11 +93,10 @@ body {
|
|
| 95 |
|
| 96 |
.audio-wave-bar {
|
| 97 |
width: 4px;
|
| 98 |
-
background: linear-gradient(to top, #0ea5e9, #
|
| 99 |
border-radius: 2px;
|
| 100 |
animation: wave 1.2s ease-in-out infinite;
|
| 101 |
}
|
| 102 |
-
|
| 103 |
.audio-wave-bar:nth-child(2) { animation-delay: 0.1s; }
|
| 104 |
.audio-wave-bar:nth-child(3) { animation-delay: 0.2s; }
|
| 105 |
.audio-wave-bar:nth-child(4) { animation-delay: 0.3s; }
|
|
@@ -124,7 +121,6 @@ body {
|
|
| 124 |
.glow-secondary {
|
| 125 |
box-shadow: 0 0 30px rgba(217, 70, 239, 0.3);
|
| 126 |
}
|
| 127 |
-
|
| 128 |
/* Gradient Border */
|
| 129 |
.gradient-border {
|
| 130 |
position: relative;
|
|
@@ -138,12 +134,11 @@ body {
|
|
| 138 |
left: -2px;
|
| 139 |
right: -2px;
|
| 140 |
bottom: -2px;
|
| 141 |
-
background: linear-gradient(45deg, #0ea5e9, #
|
| 142 |
border-radius: 18px;
|
| 143 |
z-index: -1;
|
| 144 |
opacity: 0.5;
|
| 145 |
}
|
| 146 |
-
|
| 147 |
/* Loading Animation */
|
| 148 |
.loading-pulse {
|
| 149 |
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
|
|
| 24 |
background: rgba(15, 23, 42, 0.5);
|
| 25 |
border-radius: 5px;
|
| 26 |
}
|
|
|
|
| 27 |
::-webkit-scrollbar-thumb {
|
| 28 |
+
background: linear-gradient(to bottom, #0ea5e9, #0284c7);
|
| 29 |
border-radius: 5px;
|
| 30 |
}
|
| 31 |
|
| 32 |
::-webkit-scrollbar-thumb:hover {
|
| 33 |
+
background: linear-gradient(to bottom, #0284c7, #0369a1);
|
| 34 |
}
|
| 35 |
/* Player Control Button Styles */
|
| 36 |
.control-btn {
|
|
|
|
| 66 |
}
|
| 67 |
.filter-btn:hover,
|
| 68 |
.filter-btn.active {
|
| 69 |
+
background: linear-gradient(135deg, rgba(14, 165, 233, 0.2), rgba(14, 165, 233, 0.3));
|
| 70 |
border-color: rgba(14, 165, 233, 0.4);
|
| 71 |
color: white;
|
| 72 |
box-shadow: 0 5px 15px rgba(14, 165, 233, 0.2);
|
|
|
|
| 82 |
border-color: rgba(14, 165, 233, 0.3);
|
| 83 |
transform: translateX(4px);
|
| 84 |
}
|
|
|
|
| 85 |
/* Audio Wave Animation */
|
| 86 |
.audio-wave {
|
| 87 |
display: flex;
|
|
|
|
| 93 |
|
| 94 |
.audio-wave-bar {
|
| 95 |
width: 4px;
|
| 96 |
+
background: linear-gradient(to top, #0ea5e9, #0284c7);
|
| 97 |
border-radius: 2px;
|
| 98 |
animation: wave 1.2s ease-in-out infinite;
|
| 99 |
}
|
|
|
|
| 100 |
.audio-wave-bar:nth-child(2) { animation-delay: 0.1s; }
|
| 101 |
.audio-wave-bar:nth-child(3) { animation-delay: 0.2s; }
|
| 102 |
.audio-wave-bar:nth-child(4) { animation-delay: 0.3s; }
|
|
|
|
| 121 |
.glow-secondary {
|
| 122 |
box-shadow: 0 0 30px rgba(217, 70, 239, 0.3);
|
| 123 |
}
|
|
|
|
| 124 |
/* Gradient Border */
|
| 125 |
.gradient-border {
|
| 126 |
position: relative;
|
|
|
|
| 134 |
left: -2px;
|
| 135 |
right: -2px;
|
| 136 |
bottom: -2px;
|
| 137 |
+
background: linear-gradient(45deg, #0ea5e9, #0284c7, #0ea5e9);
|
| 138 |
border-radius: 18px;
|
| 139 |
z-index: -1;
|
| 140 |
opacity: 0.5;
|
| 141 |
}
|
|
|
|
| 142 |
/* Loading Animation */
|
| 143 |
.loading-pulse {
|
| 144 |
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|