Compare commits
10 commits
5d04593a47
...
79430649e9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79430649e9 | ||
|
|
3e96c213eb | ||
|
|
c3a9df080e | ||
|
|
e18ed3f320 | ||
|
|
5eec62b318 | ||
|
|
2bd4e39226 | ||
|
|
ed40e2b45c | ||
|
|
95199fa473 | ||
|
|
e9f851df8e | ||
|
|
e78779f01c |
4 changed files with 156 additions and 43 deletions
|
|
@ -85,7 +85,7 @@ body {
|
||||||
padding: 4rem 2rem;
|
padding: 4rem 2rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--bg-primary);
|
background: var(--bg-primary);
|
||||||
border-bottom: 4px solid var(--accent-yellow);
|
border-bottom: 4px solid var(--accent-grey);
|
||||||
transition: background-color 0.4s ease;
|
transition: background-color 0.4s ease;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
@ -151,11 +151,37 @@ body {
|
||||||
font-family: 'Poppins', sans-serif;
|
font-family: 'Poppins', sans-serif;
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
font-size: 4rem;
|
font-size: 4rem;
|
||||||
color: var(--accent-yellow);
|
color: var(--accent-y);
|
||||||
opacity: 0.15;
|
opacity: 0.15;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#bannerino {
|
||||||
|
filter: grayscale(100%);
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
bottom:0;
|
||||||
|
z-index:0;
|
||||||
|
background-size:cover;
|
||||||
|
background-position:center;
|
||||||
|
background-attachment:fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
#texture {
|
||||||
|
filter: invert(50%) sepia(100%) saturate(100%) hue-rotate(15deg);
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
bottom:0;
|
||||||
|
z-index:1;
|
||||||
|
background-image:url('/images/texture.png');
|
||||||
|
background-size: 80%;
|
||||||
|
pointer-events:none;
|
||||||
|
}
|
||||||
|
|
||||||
/* Content sits above overlay */
|
/* Content sits above overlay */
|
||||||
.header-content {
|
.header-content {
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
|
|
@ -163,8 +189,11 @@ body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
transition: all 1s ease;
|
||||||
|
}
|
||||||
|
.header-content:hover {
|
||||||
|
transition: all 1s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Profile layout */
|
/* Profile layout */
|
||||||
.header-profile {
|
.header-profile {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -179,16 +208,21 @@ body {
|
||||||
width: 180px;
|
width: 180px;
|
||||||
height: 180px;
|
height: 180px;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
border: 4px solid var(--accent-yellow);
|
border: 4px solid var(--accent-grey);
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
box-shadow: 12px 12px 0 var(--accent-yellow);
|
box-shadow: 12px 12px 0 var(--accent-grey);
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
|
filter: grayscale(100%);
|
||||||
|
}
|
||||||
|
.profile-picture:hover {
|
||||||
|
filter: grayscale(0%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-picture:hover {
|
.profile-picture:hover {
|
||||||
transform: scale(1.02);
|
transform: scale(1.02);
|
||||||
box-shadow: 16px 16px 0 var(--accent-yellow);
|
box-shadow: 16px 16px 0 var(--accent-yellow);
|
||||||
|
border: 4px solid var(--accent-yellow);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -206,7 +240,7 @@ body {
|
||||||
font-size: 7rem;
|
font-size: 7rem;
|
||||||
letter-spacing: -2px;
|
letter-spacing: -2px;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
color: var(--accent-yellow);
|
color: var(--accent-grey);
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
text-shadow:
|
text-shadow:
|
||||||
|
|
@ -234,13 +268,13 @@ body {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
border-left: 4px solid var(--accent-yellow);
|
border: 4px solid var(--accent-grey);
|
||||||
padding: 0.5rem 1rem 1.5rem 1.5rem;
|
padding: 0.5rem 1rem 1.5rem 1.5rem;
|
||||||
letter-spacing: 0.5px;
|
letter-spacing: 0.5px;
|
||||||
background: rgba(0, 0, 0, 0.5);
|
background: rgba(0, 0, 0, 0.5);
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(20px);
|
||||||
-webkit-backdrop-filter: blur(20px);
|
-webkit-backdrop-filter: blur(20px);
|
||||||
border-radius: 0 8px 8px 0;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="dark"] .profile-about {
|
[data-theme="dark"] .profile-about {
|
||||||
|
|
@ -339,14 +373,13 @@ body {
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
background: var(--bg-primary);
|
background: #0000008a;
|
||||||
border-bottom: 3px solid var(--accent-yellow);
|
border-bottom: 3px solid var(--accent-yellow);
|
||||||
padding: 0.8rem 2rem;
|
padding: 0.8rem 2rem;
|
||||||
transform: translateY(-100%);
|
transform: translateY(-100%);
|
||||||
transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s ease;
|
transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s ease;
|
||||||
box-shadow: 0 4px 20px var(--shadow-color);
|
box-shadow: 0 4px 20px #0000008a;
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(20px);
|
||||||
-webkit-backdrop-filter: blur(10px);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sticky-nav.visible {
|
.sticky-nav.visible {
|
||||||
|
|
@ -472,7 +505,7 @@ body {
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
background: var(--accent-yellow);
|
background: var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Blog Grid - KEEP SKEW ON CARDS */
|
/* Blog Grid - KEEP SKEW ON CARDS */
|
||||||
|
|
@ -494,14 +527,14 @@ body {
|
||||||
|
|
||||||
.blog-card:hover {
|
.blog-card:hover {
|
||||||
transform: skewX(0deg) translate(-4px, -4px);
|
transform: skewX(0deg) translate(-4px, -4px);
|
||||||
box-shadow: 12px 12px 0 var(--accent-yellow);
|
box-shadow: 12px 12px 0 var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.blog-header-image {
|
.blog-header-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 220px;
|
height: 220px;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
border-bottom: 3px solid var(--accent-yellow);
|
border-bottom: 3px solid var(--accent-grey);
|
||||||
filter: grayscale(100%);
|
filter: grayscale(100%);
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
@ -553,7 +586,7 @@ button {
|
||||||
.read-more-toggle {
|
.read-more-toggle {
|
||||||
background: var(--accent-yellow);
|
background: var(--accent-yellow);
|
||||||
color: #0a0a0a !important; /* Force black */
|
color: #0a0a0a !important; /* Force black */
|
||||||
border: 2px solid var(--accent-grey);
|
border: 2px solid var(--accent-yellow);
|
||||||
padding: 0.6rem 1.5rem;
|
padding: 0.6rem 1.5rem;
|
||||||
font-family: 'Poppins', sans-serif;
|
font-family: 'Poppins', sans-serif;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
@ -566,7 +599,7 @@ button {
|
||||||
|
|
||||||
.read-more-toggle:hover {
|
.read-more-toggle:hover {
|
||||||
background: var(--accent-black);
|
background: var(--accent-black);
|
||||||
color: var(--accent-yellow) !important; /* Yellow on hover */
|
color: var(--bg-primary) !important; /* Yellow on hover */
|
||||||
border-color: var(--accent-yellow);
|
border-color: var(--accent-yellow);
|
||||||
transform: scale(1.05);
|
transform: scale(1.05);
|
||||||
}
|
}
|
||||||
|
|
@ -579,10 +612,11 @@ button {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
padding: 1.5rem;
|
padding: 1.5rem;
|
||||||
background: var(--bg-secondary);
|
background: var(--bg-secondary);
|
||||||
border-left: 4px solid var(--accent-yellow);
|
border: 1px solid var(--accent-yellow);
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
|
box-shadow: 0 10px 40px #ffd7005c
|
||||||
}
|
}
|
||||||
|
|
||||||
.blog-full-content img {
|
.blog-full-content img {
|
||||||
|
|
@ -610,14 +644,13 @@ button {
|
||||||
|
|
||||||
.music-card:hover {
|
.music-card:hover {
|
||||||
transform: skewX(0deg) translate(-4px, -4px);
|
transform: skewX(0deg) translate(-4px, -4px);
|
||||||
box-shadow: 12px 12px 0 var(--accent-yellow);
|
box-shadow: 12px 12px 0 var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.music-image {
|
.music-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
border: 2px solid var(--accent-grey);
|
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
filter: grayscale(100%);
|
filter: grayscale(100%);
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
|
@ -700,7 +733,7 @@ button {
|
||||||
.lyrics-toggle {
|
.lyrics-toggle {
|
||||||
background: var(--accent-yellow);
|
background: var(--accent-yellow);
|
||||||
color: #0a0a0a !important; /* Force black */
|
color: #0a0a0a !important; /* Force black */
|
||||||
border: 2px solid var(--accent-grey);
|
border: 2px solid var(--accent-yellow);
|
||||||
padding: 0.6rem 1.5rem;
|
padding: 0.6rem 1.5rem;
|
||||||
font-family: 'Poppins', sans-serif;
|
font-family: 'Poppins', sans-serif;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
@ -710,6 +743,7 @@ button {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
margin-top: 0.8rem;
|
margin-top: 0.8rem;
|
||||||
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lyrics-toggle:hover {
|
.lyrics-toggle:hover {
|
||||||
|
|
@ -727,13 +761,58 @@ button {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
padding: 1.5rem;
|
padding: 1.5rem;
|
||||||
background: var(--bg-secondary);
|
background: var(--bg-secondary);
|
||||||
border-left: 4px solid var(--accent-yellow);
|
border-left: 1px solid var(--accent-yellow);
|
||||||
color: var(--text-secondary);
|
color: var(--text-secondary);
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
/* Music lightbox lyrics - below controls */
|
||||||
|
.music-lightbox-lyrics {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
padding: 1.2rem 1.5rem;
|
||||||
|
background: rgba(0, 0, 0, 0.4);
|
||||||
|
border: 1px solid var(--accent-yellow);
|
||||||
|
border-radius: 0 8px 8px 0;
|
||||||
|
color: rgba(255, 255, 255, 0.85);
|
||||||
|
font-family: 'Poppins', sans-serif;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
line-height: 1.8;
|
||||||
|
max-height: 200px;
|
||||||
|
overflow-y: auto;
|
||||||
|
text-align: left;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 500px;
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
-webkit-backdrop-filter: blur(10px);
|
||||||
|
scrollbar-width: thin;
|
||||||
|
scrollbar-color: var(--accent-yellow) rgba(255, 255, 255, 0.1);
|
||||||
|
box-shadow: 0 10px 40px #ffd7005c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music-lightbox-lyrics::-webkit-scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music-lightbox-lyrics::-webkit-scrollbar-track {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music-lightbox-lyrics::-webkit-scrollbar-thumb {
|
||||||
|
background: var(--accent-yellow);
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music-lightbox-lyrics p {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music-lightbox-lyrics br {
|
||||||
|
display: block;
|
||||||
|
margin: 0.2rem 0;
|
||||||
|
}
|
||||||
/* Photo Grid - KEEP SKEW ON CARDS */
|
/* Photo Grid - KEEP SKEW ON CARDS */
|
||||||
.photo-grid {
|
.photo-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
|
@ -753,7 +832,7 @@ button {
|
||||||
|
|
||||||
.photo-item:hover {
|
.photo-item:hover {
|
||||||
transform: skewX(0deg) translate(-4px, -4px);
|
transform: skewX(0deg) translate(-4px, -4px);
|
||||||
box-shadow: 12px 12px 0 var(--accent-yellow);
|
box-shadow: 12px 12px 0 var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.photo-item img {
|
.photo-item img {
|
||||||
|
|
@ -809,14 +888,14 @@ button {
|
||||||
|
|
||||||
.video-item:hover {
|
.video-item:hover {
|
||||||
transform: skewX(0deg) translate(-4px, -4px);
|
transform: skewX(0deg) translate(-4px, -4px);
|
||||||
box-shadow: 12px 12px 0 var(--accent-yellow);
|
box-shadow: 12px 12px 0 var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.video-item video {
|
.video-item video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: var(--accent-black);
|
background: var(--accent-black);
|
||||||
display: block;
|
display: block;
|
||||||
border-bottom: 3px solid var(--accent-yellow);
|
border-bottom: 3px solid var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.video-info {
|
.video-info {
|
||||||
|
|
@ -1045,8 +1124,7 @@ button {
|
||||||
.profile-about {
|
.profile-about {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
border-left: none;
|
border: 4px solid var(--accent-grey);
|
||||||
border-top: 4px solid var(--accent-yellow);
|
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
@ -1121,7 +1199,7 @@ button {
|
||||||
.photo-item:hover,
|
.photo-item:hover,
|
||||||
.video-item:hover {
|
.video-item:hover {
|
||||||
transform: translate(-2px, -2px);
|
transform: translate(-2px, -2px);
|
||||||
box-shadow: 6px 6px 0 var(--accent-yellow);
|
box-shadow: 6px 6px 0 var(--accent-grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-lightbox-prev,
|
.custom-lightbox-prev,
|
||||||
|
|
@ -1223,8 +1301,8 @@ button {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
filter: drop-shadow(0px 0px 10px var(--accent-yellow));
|
filter: drop-shadow(0px 0px 20px var(--accent-yellow));
|
||||||
animation: glow 1s infinite alternate;
|
animation: glow 3s infinite alternate;
|
||||||
}
|
}
|
||||||
|
|
||||||
.refresh-button:hover {
|
.refresh-button:hover {
|
||||||
|
|
@ -1243,7 +1321,7 @@ button {
|
||||||
filter: drop-shadow(0px 0px 5px var(--accent-yellow));
|
filter: drop-shadow(0px 0px 5px var(--accent-yellow));
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
filter: drop-shadow(0px 0px 10px var(--accent-yellow));
|
filter: drop-shadow(0px 0px 20px var(--accent-yellow));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ============ CYBERPUNK FOOTER ============ */
|
/* ============ CYBERPUNK FOOTER ============ */
|
||||||
|
|
@ -1908,8 +1986,10 @@ button {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
background: rgba(0, 0, 0, 0.4);
|
background: rgba(0, 0, 0, 0);
|
||||||
opacity: 0;
|
background-image:url('/images/texture.png');
|
||||||
|
background-size: 70%;
|
||||||
|
opacity: 1;
|
||||||
transition: opacity 0.3s ease;
|
transition: opacity 0.3s ease;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -222,9 +222,10 @@ function renderMusicTracks(tracks, containerId, randomize = false) {
|
||||||
card.className = 'music-card clickable';
|
card.className = 'music-card clickable';
|
||||||
card.dataset.playlistIndex = index;
|
card.dataset.playlistIndex = index;
|
||||||
|
|
||||||
// Click on card opens lightbox
|
// Click on card opens lightbox (except when clicking on info button)
|
||||||
card.addEventListener('click', function(e) {
|
card.addEventListener('click', function(e) {
|
||||||
if (e.target.closest('audio') || e.target.closest('.lyrics-toggle') || e.target.closest('.lyrics')) {
|
// Don't trigger if clicking on lyrics-toggle or inside lyrics
|
||||||
|
if (e.target.closest('.lyrics-toggle') || e.target.closest('.lyrics')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const idx = parseInt(this.dataset.playlistIndex);
|
const idx = parseInt(this.dataset.playlistIndex);
|
||||||
|
|
@ -259,6 +260,7 @@ function renderMusicTracks(tracks, containerId, randomize = false) {
|
||||||
content = originalTrack.content || '';
|
content = originalTrack.content || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Build the card HTML
|
||||||
let cardHTML = `
|
let cardHTML = `
|
||||||
<div class="music-card-inner">
|
<div class="music-card-inner">
|
||||||
<div class="music-image-wrapper">
|
<div class="music-image-wrapper">
|
||||||
|
|
@ -298,7 +300,10 @@ function initMusicEventListeners() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleLyricsToggle() {
|
function handleLyricsToggle(e) {
|
||||||
|
// Stop the click from bubbling up to the card
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
const lyrics = this.nextElementSibling;
|
const lyrics = this.nextElementSibling;
|
||||||
if (lyrics && lyrics.classList.contains('lyrics')) {
|
if (lyrics && lyrics.classList.contains('lyrics')) {
|
||||||
if (lyrics.style.display === 'none') {
|
if (lyrics.style.display === 'none') {
|
||||||
|
|
@ -587,6 +592,8 @@ function openMusicLightbox(index) {
|
||||||
const progressFill = document.getElementById('musicLightboxProgressFill');
|
const progressFill = document.getElementById('musicLightboxProgressFill');
|
||||||
const playBtn2 = document.getElementById('musicLightboxPlayBtn2');
|
const playBtn2 = document.getElementById('musicLightboxPlayBtn2');
|
||||||
const playIcon2 = document.getElementById('musicPlayIcon2');
|
const playIcon2 = document.getElementById('musicPlayIcon2');
|
||||||
|
// Get the lyrics element
|
||||||
|
const lyricsDisplay = document.getElementById('musicLightboxLyrics');
|
||||||
|
|
||||||
// Set album art
|
// Set album art
|
||||||
const artUrl = track.image || '/images/default-album.jpg';
|
const artUrl = track.image || '/images/default-album.jpg';
|
||||||
|
|
@ -598,13 +605,38 @@ function openMusicLightbox(index) {
|
||||||
artist.textContent = track.artist || 'Unknown Artist';
|
artist.textContent = track.artist || 'Unknown Artist';
|
||||||
album.textContent = track.album || '';
|
album.textContent = track.album || '';
|
||||||
|
|
||||||
|
// Set lyrics - find the original track data to get content
|
||||||
|
let lyricsContent = '';
|
||||||
|
// Find the original track data
|
||||||
|
const originalTrack = window.allMusicData ? window.allMusicData.find(t => {
|
||||||
|
let url = '';
|
||||||
|
if (t.tags) {
|
||||||
|
t.tags.forEach(tag => {
|
||||||
|
if (tag[0] === 'url') url = tag[1];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return url === track.url;
|
||||||
|
}) : null;
|
||||||
|
|
||||||
|
if (originalTrack && originalTrack.content) {
|
||||||
|
lyricsContent = originalTrack.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display lyrics if they exist
|
||||||
|
if (lyricsContent) {
|
||||||
|
lyricsDisplay.innerHTML = lyricsContent.replace(/\n/g, '<br>');
|
||||||
|
lyricsDisplay.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
lyricsDisplay.style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
// Reset progress
|
// Reset progress
|
||||||
progressFill.style.width = '0%';
|
progressFill.style.width = '0%';
|
||||||
currentTimeDisplay.textContent = '0:00';
|
currentTimeDisplay.textContent = '0:00';
|
||||||
durationDisplay.textContent = track.duration ? formatTime(track.duration) : '0:00';
|
durationDisplay.textContent = track.duration ? formatTime(track.duration) : '0:00';
|
||||||
|
|
||||||
// Set play buttons to play state
|
// Set play buttons to play state
|
||||||
playIcon2.textContent = '▶️';
|
playIcon2.textContent = '▶';
|
||||||
|
|
||||||
// Create audio player
|
// Create audio player
|
||||||
musicPlayer = new Audio(track.url);
|
musicPlayer = new Audio(track.url);
|
||||||
|
|
|
||||||
|
|
@ -61,13 +61,10 @@
|
||||||
<img id="musicLightboxImage" src="" alt="Album art">
|
<img id="musicLightboxImage" src="" alt="Album art">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- In the info section -->
|
|
||||||
<div class="music-lightbox-info">
|
<div class="music-lightbox-info">
|
||||||
<h2 id="musicLightboxTitle">Title</h2>
|
<h2 id="musicLightboxTitle">Title</h2>
|
||||||
<p class="music-lightbox-artist" id="musicLightboxArtist">Artist</p>
|
<p class="music-lightbox-artist" id="musicLightboxArtist">Artist</p>
|
||||||
<p class="music-lightbox-album-name" id="musicLightboxAlbum">Album</p>
|
<p class="music-lightbox-album-name" id="musicLightboxAlbum">Album</p>
|
||||||
<!-- ... rest ... -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="music-lightbox-progress">
|
<div class="music-lightbox-progress">
|
||||||
<span class="music-lightbox-time" id="musicLightboxCurrentTime">0:00</span>
|
<span class="music-lightbox-time" id="musicLightboxCurrentTime">0:00</span>
|
||||||
|
|
@ -84,10 +81,14 @@
|
||||||
</button>
|
</button>
|
||||||
<button class="music-lightbox-control-btn" id="musicLightboxNext">⏭</button>
|
<button class="music-lightbox-control-btn" id="musicLightboxNext">⏭</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Lyrics moved here - below the controls -->
|
||||||
|
<div class="music-lightbox-lyrics" id="musicLightboxLyrics" style="display: none;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{ $js := resources.Get "js/scripts.js" | resources.Minify | fingerprint }}
|
{{ $js := resources.Get "js/scripts.js" | resources.Minify | fingerprint }}
|
||||||
<script src="{{ $js.RelPermalink }}"></script>
|
<script src="{{ $js.RelPermalink }}"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,9 @@
|
||||||
<header class="main-header" style="position:relative;overflow:hidden;">
|
<header class="main-header" style="position:relative;overflow:hidden;">
|
||||||
<!-- Background image -->
|
<!-- Background image -->
|
||||||
{{ if $banner }}
|
{{ if $banner }}
|
||||||
<div style="position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;background-image:url('{{ $banner }}');background-size:cover;background-position:center; background-attachment:fixed;"></div>
|
<div id="bannerino" style="background-image:url('{{ $banner }}');"></div>
|
||||||
<!-- Dark overlay for readability -->
|
<!-- Dark overlay for readability -->
|
||||||
<div style="position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background-image:url('/images/texture.png');pointer-events:none;"></div>
|
<div id="texture"></div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<div class="header-content">
|
<div class="header-content">
|
||||||
<div class="header-profile">
|
<div class="header-profile">
|
||||||
{{ if $picture }}
|
{{ if $picture }}
|
||||||
<img src="{{ $picture }}" alt="{{ $displayName }}" class="profile-picture" loading="lazy">
|
<img src="{{ $picture }}" alt="{{ $displayName }}'s profile picture'" class="profile-picture" loading="lazy">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="header-text">
|
<div class="header-text">
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue