From 9cb2b8337ef7f00b35a4174b4821dca866f4af79 Mon Sep 17 00:00:00 2001 From: sakrecoer Date: Sun, 16 Aug 2026 14:47:51 +0200 Subject: [PATCH] add the playlist styles --- themes/one-pager/assets/css/style.css | 420 ++++++++++++++++++++++++++ 1 file changed, 420 insertions(+) diff --git a/themes/one-pager/assets/css/style.css b/themes/one-pager/assets/css/style.css index a4186f1..964c708 100644 --- a/themes/one-pager/assets/css/style.css +++ b/themes/one-pager/assets/css/style.css @@ -2277,3 +2277,423 @@ button { } } /* //////// END PLAYLISTS ////////// */ + +/* ============================================ + * PLAYLIST LIST PAGE + * ============================================ */ + +.playlists-list .section-description { + color: var(--text-secondary); + font-size: 1.1rem; + margin-bottom: 3rem; + text-align: center; + opacity: 0.8; +} + +.playlists-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 2.5rem; +} + +.playlist-card { + background: var(--card-bg); + border: 2px solid var(--accent-grey); + overflow: hidden; + transition: all 0.3s ease; + transform: skewX(-2deg); + box-shadow: 8px 8px 0 var(--accent-grey); + position: relative; +} + +.playlist-card:hover { + transform: skewX(0deg) translate(-4px, -4px); + box-shadow: 12px 12px 0 var(--accent-yellow); +} + +.playlist-link { + display: block; + text-decoration: none; + color: inherit; +} + +.playlist-image { + width: 100%; + height: 200px; + object-fit: cover; + border-bottom: 3px solid var(--accent-yellow); + filter: grayscale(30%); + transition: all 0.3s ease; +} + +.playlist-card:hover .playlist-image { + filter: grayscale(0%); +} + +.playlist-info { + padding: 1.5rem; +} + +.playlist-info h2 { + font-family: 'Poppins', sans-serif; + font-weight: 700; + font-size: 1.3rem; + letter-spacing: -1px; + color: var(--text-primary); + margin-bottom: 0.3rem; +} + +.playlist-description { + color: var(--text-secondary); + font-size: 0.9rem; + margin-bottom: 0.5rem; +} + +.playlist-track-count { + display: inline-block; + background: var(--accent-yellow); + color: var(--accent-black); + padding: 0.2rem 0.8rem; + font-size: 0.7rem; + font-weight: 700; + letter-spacing: 1px; + border-radius: 4px; +} + +.playlist-hover-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.6); + opacity: 0; + transition: opacity 0.3s ease; + backdrop-filter: blur(4px); +} + +.playlist-card:hover .playlist-hover-overlay { + opacity: 1; +} + +.playlist-view-btn { + padding: 0.8rem 2rem; + background: var(--accent-yellow); + color: var(--accent-black); + font-family: 'Poppins', sans-serif; + font-weight: 700; + font-size: 0.8rem; + letter-spacing: 2px; + text-transform: uppercase; + border: 2px solid var(--accent-grey); + transform: skewX(-33deg); + transition: all 0.3s ease; +} + +.playlist-view-btn:hover { + transform: skewX(-33deg) scale(1.1); + background: var(--accent-black); + color: var(--accent-yellow); + border-color: var(--accent-yellow); +} + +/* ============================================ + * PLAYLIST SINGLE PAGE + * ============================================ */ + +.playlist-detail { + padding-top: 2rem; +} + +.playlist-header { + margin-bottom: 3rem; + padding: 2rem; + background: var(--bg-secondary); + border: 2px solid var(--accent-grey); + box-shadow: 8px 8px 0 var(--accent-grey); + transform: skewX(-2deg); +} + +.playlist-header-content { + display: flex; + align-items: center; + gap: 2.5rem; + flex-wrap: wrap; + transform: skewX(2deg); +} + +.playlist-header-image { + width: 200px; + height: 200px; + object-fit: cover; + border: 3px solid var(--accent-yellow); + box-shadow: 4px 4px 0 var(--accent-grey); + flex-shrink: 0; +} + +.playlist-header-info h1 { + font-family: 'Poppins', sans-serif; + font-weight: 900; + font-size: 2.8rem; + letter-spacing: -2px; + color: var(--text-primary); + text-transform: uppercase; + text-shadow: 2px 2px 0 var(--accent-yellow); +} + +.playlist-header-info .playlist-description { + font-size: 1.1rem; + color: var(--text-secondary); + margin: 0.5rem 0 1rem 0; +} + +.playlist-meta { + display: flex; + gap: 1.5rem; + flex-wrap: wrap; +} + +.playlist-meta span { + font-size: 0.85rem; + color: var(--accent-grey); + letter-spacing: 1px; +} + +/* Track list */ +.playlist-tracks-list { + display: flex; + flex-direction: column; + gap: 1rem; + margin: 2rem 0; +} + +.playlist-track-item { + display: flex; + align-items: center; + gap: 1rem; + padding: 1rem; + background: var(--card-bg); + border: 2px solid var(--accent-grey); + transition: all 0.3s ease; + transform: skewX(-2deg); + box-shadow: 4px 4px 0 var(--accent-grey); +} + +.playlist-track-item:hover { + transform: skewX(0deg) translate(-2px, -2px); + box-shadow: 6px 6px 0 var(--accent-yellow); +} + +.track-number { + font-family: 'Poppins', sans-serif; + font-weight: 700; + font-size: 1.2rem; + color: var(--accent-grey); + min-width: 30px; + text-align: center; +} + +.track-thumbnail { + width: 60px; + height: 60px; + object-fit: cover; + border: 2px solid var(--accent-grey); + border-radius: 4px; + flex-shrink: 0; +} + +.track-info { + flex: 1; + min-width: 200px; +} + +.track-title { + display: block; + font-family: 'Poppins', sans-serif; + font-weight: 600; + font-size: 1rem; + color: var(--text-primary); +} + +.track-artist { + display: block; + font-size: 0.8rem; + color: var(--accent-yellow); +} + +.track-album { + display: block; + font-size: 0.7rem; + color: var(--accent-grey); +} + +.track-duration { + font-size: 0.7rem; + color: var(--accent-grey); + background: var(--tag-bg); + padding: 0.1rem 0.5rem; + border-radius: 3px; +} + +.track-tags { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; + margin-top: 0.2rem; +} + +.track-player-wrapper { + display: flex; + align-items: center; + gap: 0.5rem; + flex-shrink: 0; +} + +.track-player { + width: 150px; + border: 1px solid var(--accent-grey); + border-radius: 4px; +} + +.track-share-btn { + background: none; + border: 1px solid var(--accent-grey); + color: var(--text-primary); + padding: 0.3rem 0.6rem; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s ease; + font-size: 0.8rem; +} + +.track-share-btn:hover { + border-color: var(--accent-yellow); + color: var(--accent-yellow); + transform: scale(1.05); +} + +/* Play all button */ +.playlist-actions { + text-align: center; + margin: 2rem 0; +} + +.playlist-play-all { + background: var(--accent-yellow); + color: var(--accent-black); + border: 2px solid var(--accent-grey); + padding: 1rem 3rem; + font-family: 'Poppins', sans-serif; + font-weight: 700; + font-size: 1rem; + letter-spacing: 3px; + text-transform: uppercase; + cursor: pointer; + transition: all 0.3s ease; + transform: skewX(-33deg); + box-shadow: 6px 6px 0 var(--accent-grey); +} + +.playlist-play-all:hover { + transform: skewX(-33deg) scale(1.05); + background: var(--accent-black); + color: var(--accent-yellow); + border-color: var(--accent-yellow); + box-shadow: 8px 8px 0 var(--accent-yellow); +} + +/* Back link */ +.playlist-back { + margin-top: 2rem; + text-align: center; +} + +.back-link { + color: var(--accent-grey); + text-decoration: none; + font-family: 'Poppins', sans-serif; + font-weight: 500; + font-size: 0.8rem; + letter-spacing: 2px; + text-transform: uppercase; + transition: all 0.3s ease; + padding: 0.5rem 1.5rem; + border: 1px solid transparent; +} + +.back-link:hover { + color: var(--accent-yellow); + border-color: var(--accent-yellow); +} + +.no-tracks { + text-align: center; + padding: 3rem; + color: var(--text-secondary); + font-size: 1.1rem; +} + +/* Responsive */ +@media (max-width: 768px) { + .playlist-header-content { + flex-direction: column; + text-align: center; + } + + .playlist-header-info h1 { + font-size: 2rem; + } + + .playlist-header-image { + width: 150px; + height: 150px; + } + + .playlist-meta { + justify-content: center; + } + + .playlist-track-item { + flex-wrap: wrap; + gap: 0.5rem; + } + + .track-player-wrapper { + width: 100%; + flex-wrap: wrap; + justify-content: center; + } + + .track-player { + width: 100%; + max-width: 300px; + } + + .playlist-play-all { + padding: 0.8rem 2rem; + font-size: 0.8rem; + } +} + +@media (max-width: 480px) { + .playlist-header-info h1 { + font-size: 1.5rem; + } + + .playlist-header-image { + width: 120px; + height: 120px; + } + + .track-thumbnail { + width: 40px; + height: 40px; + } + + .track-title { + font-size: 0.85rem; + } +}