diff --git a/webui/index.html b/webui/index.html index 64e28b04..19042cae 100644 --- a/webui/index.html +++ b/webui/index.html @@ -806,6 +806,24 @@ + +
+
+ + + +
+
+
diff --git a/webui/static/style.css b/webui/static/style.css index 5028954e..f7acd6c6 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -14463,3 +14463,150 @@ body { font-size: 24px; } } + +/* ====================================== + BEATPORT NAVIGATION BUTTONS SECTION + ====================================== */ + +.beatport-nav-buttons-section { + padding: 30px 20px; + margin-bottom: 20px; +} + +.beatport-nav-buttons-container { + display: flex; + gap: 20px; + justify-content: center; + align-items: center; + max-width: 900px; + margin: 0 auto; +} + +.beatport-nav-button { + flex: 1; + max-width: 280px; + min-height: 70px; + padding: 16px 24px; + border: none; + border-radius: 12px; + background: linear-gradient(135deg, + rgba(1, 255, 149, 0.1) 0%, + rgba(0, 224, 133, 0.08) 100%); + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 20, 147, 0.4); + color: #ffffff; + font-family: inherit; + font-size: 15px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + position: relative; + overflow: hidden; +} + +.beatport-nav-button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, + transparent, + rgba(1, 255, 149, 0.1), + transparent); + transition: left 0.5s ease; +} + +.beatport-nav-button:hover { + background: linear-gradient(135deg, + rgba(1, 255, 149, 0.2) 0%, + rgba(0, 224, 133, 0.15) 100%); + border-color: rgba(255, 20, 147, 0.6); + transform: translateY(-2px); + box-shadow: 0 8px 25px rgba(138, 43, 226, 0.3); + color: #01FF95; +} + +.beatport-nav-button:hover::before { + left: 100%; +} + +.beatport-nav-button:active { + transform: translateY(0); + transition: transform 0.1s ease; +} + +.beatport-nav-icon { + width: 20px; + height: 20px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + flex-shrink: 0; + transition: all 0.3s ease; +} + +.beatport-nav-text { + font-weight: 600; + white-space: nowrap; +} + +/* Icons for navigation buttons */ +.genre-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +.top100-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +.hype-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +.beatport-nav-button:hover .genre-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +.beatport-nav-button:hover .top100-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +.beatport-nav-button:hover .hype-icon { + background-image: url('data:image/svg+xml;charset=utf-8,'); +} + +/* Responsive design for navigation buttons */ +@media (max-width: 768px) { + .beatport-nav-buttons-container { + flex-direction: column; + gap: 15px; + } + + .beatport-nav-button { + max-width: none; + width: 100%; + } +} + +@media (max-width: 600px) { + .beatport-nav-buttons-section { + padding: 20px 15px; + } + + .beatport-nav-button { + min-height: 60px; + padding: 12px 20px; + font-size: 14px; + } + + .beatport-nav-icon { + width: 18px; + height: 18px; + } +}