Batfly commited on
Commit
1e03ebf
·
verified ·
1 Parent(s): 95a3543

Create a fresh niche concept called “LoopLodge – A Members’ Hideout for Indie Loops & Tracks.” It focuses on indie producers sharing loop packs, stems, and full tracks. Vibe: modern, minimal, premium.

Browse files

Tech & File Structure

Pure HTML5, CSS, and vanilla JavaScript only.

All CSS in css/styles.css

All JS in js/ (use ES modules where sensible).

Provide a tidy, documented codebase.

/
index.html
explore.html
track.html (single track view)
profile.html (artist profile)
pricing.html
about.html
terms.html
privacy.html
assets/
img/ (placeholder logos, covers, avatars)
audio/ (sample demo tracks)
css/
styles.css
js/
app.js (bootstraps, routing helpers, state)
player.js (audio player component)
library.js (render grids/lists, filters, search)
modals.js (reusable dialog/toast)
mock-api.js (JSON mocks, localStorage helpers)
downloads.js (safe download handling)

Pages & Sections

Home (index.html)

Hero: brand logo, tagline, CTA buttons (Explore / Join).

Featured carousel (new & trending loops/tracks).

“Why LoopLodge” features grid (royalty terms, curated quality, creator tools).

Newsletter signup (mock).

Explore (explore.html)

Search bar with tags/filters: Genre, Mood, BPM, Key, Vocals (Y/N), License (Free/Member).

Responsive masonry/grid of releases with cover art, quick-play preview, like/save.

Sort: Trending, New, Most Downloaded, Editor’s Picks.

Track Detail (track.html)

Large cover + metadata (Artist, BPM, Key, Genre, Mood, Release date, License).

Pro Audio Player console (see “Player Features” below).

Download buttons (Full Track, Stems, Loop Pack). If membership-only, show lock UI with “Join to Download.”

Related tracks carousel.

Artist Profile (profile.html)

Banner, avatar, bio, socials, location.

Tabs: Releases, Loop Packs, Playlists, About.

Follow/Message (mock).

Pricing (pricing.html)

Free vs Member+ tiers table.

Member features: unlimited streaming, downloads of member-only packs, creator analytics (future), ad-free.

“Join Now” CTA (mock modal for signup).

About / Terms / Privacy

Professional copy skeletons; clearly mark license model (“Royalty-free for end users; creators retain ownership,” etc.—placeholder text).

Player Features (Professional Console)

Build a polished, accessible audio player component used across pages:

Large play/pause, next/prev, seek bar with waveform-style progress (CSS/Canvas faux waveform is fine—no external libs required).

Volume, mute, loop (A–B optional), shuffle, repeat.

Current time / total duration.

Keyboard shortcuts: Space (play/pause), ←/→ (seek), ↑/↓ (volume).

Playlist queue (next up), cover thumbnail, track title/artist.

Mobile-first controls (thumb-friendly).

Persist last position & volume in localStorage.

Downloads

Download buttons that:

Trigger file save for demo assets in assets/audio/.

Use download attribute and safe filename formatting.

Show a confirmation toast (“Thanks! Counting 1 download.”) and increment a local mock counter.

If user not “Member+” (mock flag), show locked state with upgrade prompt.

Membership (Front-end Mock)

Use localStorage to simulate auth + tier:

user: { id, name, avatar, tier: "free" | "member" }

“Join Now” opens a modal with email/password fields and a “Simulate Upgrade” button that sets tier to member.

If tier is free, downloads of Member-only files show locked UI; streaming always allowed.

Data Model (Mock JSON)

Create a js/mock-api.js exporting sample data:

export const tracks = [
{
id: "trk_001",
title: "Neon Alley",
artist: "Kora Vale",
bpm: 124,
key: "Am",
genre: "Synthwave",
mood: ["Driving","Retro"],
cover: "assets/img/covers/neon-alley.jpg",
audio: "assets/audio/neon-alley-demo.mp3",
stems: [
{ label: "Drums", file: "assets/audio/neon-alley-drums.mp3" },
{ label: "Bass", file: "assets/audio/neon-alley-bass.mp3" }
],
license: "member", // "free" or "member"
downloads: 1520,
likes: 342,
date: "2025-08-11"
},
// add 10–15 varied examples across genres/BPM/keys
];
export const artists = [
{ id: "art_001", name: "Kora Vale", avatar: "assets/img/avatars/kora.jpg", bio: "…" }
];

UI/UX Requirements

Design: modern, minimal, premium; glassy cards, soft shadows, rounded corners, smooth hover/focus states, micro-interactions.

Dark/Light mode toggle with prefers-color-scheme support.

Responsive from 360px up; grid/list switches gracefully.

Accessibility: semantic HTML5, aria labels for player controls, focus rings, sufficient contrast, visible skip-to-content.

Performance: lazy-load images, loading="lazy", compress demo assets, defer JS, no blocking CSS/JS.

SEO: unique titles/meta per page, Open Graph/Twitter tags, JSON-LD for MusicRecording/Person where relevant.

Analytics hooks (mock): window.llTrack(eventName, payload) called on play, pause, download, like, follow.

CSS (in css/styles.css)

Variables for color system (light/dark), spacing, radii, elevation.

Utility classes for grid, flex, buttons, badges, chips (genre/mood), cards, toasts, skeleton loaders.

Player console styles: large central controls, animated progress, accessible sliders.

JS (in js/)

app.js: router-ish helpers for page init, theme toggle, auth mock, global toasts.

player.js: class AudioPlayer(el, options) with public methods: load(track), play(), pause(), seek(seconds), setVolume(v).

library.js: render explore grid; search, filter, sort; debounce input; empty state UI.

modals.js: open/close animations, focus trap.

downloads.js: initDownloadButtons(user, track); gate by tier; increment local counters; show toast.

Inline page bootstraps should be minimal; import modules.

Nice-to-Haves (include if time permits)

Service Worker for offline caching of UI + last played track (PWA install prompt).

“Create Playlist” (local only).

Waveform preview rendered from <canvas> based on precomputed amplitude array included in mock data.

Deliverables

Fully working front-end with demo assets and mocks—no external frameworks.

Clean comments explaining where to wire real APIs later.

A brief README (top of index.html as an HTML comment is fine) describing setup and structure.

Remember: - Initial Deployment

Files changed (3) hide show
  1. README.md +7 -5
  2. explore.html +505 -0
  3. index.html +481 -18
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Looplodge
3
- emoji: 🏢
4
- colorFrom: pink
5
- colorTo: red
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: looplodge
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: blue
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
explore.html ADDED
@@ -0,0 +1,505 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Explore - LoopLodge</title>
7
+ <meta name="description" content="Browse our collection of indie loops, stems, and full tracks. Filter by genre, mood, BPM and more.">
8
+ <link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <link href="/css/styles.css" rel="stylesheet">
13
+ <script>
14
+ tailwind.config = {
15
+ darkMode: 'class',
16
+ theme: {
17
+ extend: {
18
+ colors: {
19
+ primary: {
20
+ 50: '#f0f9ff',
21
+ 100: '#e0f2fe',
22
+ 200: '#bae6fd',
23
+ 300: '#7dd3fc',
24
+ 400: '#38bdf8',
25
+ 500: '#0ea5e9',
26
+ 600: '#0284c7',
27
+ 700: '#0369a1',
28
+ 800: '#075985',
29
+ 900: '#0c4a6e',
30
+ },
31
+ dark: {
32
+ 800: '#1e293b',
33
+ 900: '#0f172a',
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+ </script>
40
+ </head>
41
+ <body class="bg-gray-50 dark:bg-dark-900 text-gray-800 dark:text-gray-200 min-h-screen flex flex-col">
42
+ <!-- Navigation -->
43
+ <nav class="bg-white dark:bg-dark-800 shadow-sm">
44
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
45
+ <div class="flex justify-between h-16">
46
+ <div class="flex items-center">
47
+ <a href="/" class="flex items-center space-x-2">
48
+ <svg class="w-8 h-8 text-primary-600" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
49
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2"/>
50
+ <path d="M8 16C8 16 9.5 14 12 14C14.5 14 16 16 16 16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
51
+ <path d="M8 8H8.01M16 8H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
52
+ </svg>
53
+ <span class="text-xl font-bold text-primary-600">LoopLodge</span>
54
+ </a>
55
+ </div>
56
+ <div class="hidden md:flex items-center space-x-8">
57
+ <a href="/explore.html" class="text-primary-600 dark:text-primary-400 px-3 py-2 text-sm font-medium border-b-2 border-primary-600">Explore</a>
58
+ <a href="/pricing.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Pricing</a>
59
+ <a href="/about.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">About</a>
60
+ <button id="theme-toggle" class="p-2 rounded-full hover:bg-gray-100 dark:hover:bg-dark-700">
61
+ <i data-feather="moon" class="hidden dark:block"></i>
62
+ <i data-feather="sun" class="dark:hidden"></i>
63
+ </button>
64
+ <a href="#" class="bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-md text-sm font-medium">Sign In</a>
65
+ </div>
66
+ <div class="md:hidden flex items-center">
67
+ <button id="mobile-menu-button" class="p-2 rounded-md hover:bg-gray-100 dark:hover:bg-dark-700">
68
+ <i data-feather="menu"></i>
69
+ </button>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <!-- Mobile menu -->
74
+ <div id="mobile-menu" class="hidden md:hidden bg-white dark:bg-dark-800 pb-3 px-4">
75
+ <div class="pt-2 space-y-1">
76
+ <a href="/explore.html" class="block px-3 py-2 text-base font-medium text-primary-600 dark:text-primary-400 bg-primary-50 dark:bg-primary-900 rounded">Explore</a>
77
+ <a href="/pricing.html" class="block px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Pricing</a>
78
+ <a href="/about.html" class="block px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">About</a>
79
+ <button id="mobile-theme-toggle" class="w-full text-left px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 flex items-center">
80
+ <span class="mr-2">Toggle Theme</span>
81
+ <i data-feather="moon" class="hidden dark:block"></i>
82
+ <i data-feather="sun" class="dark:hidden"></i>
83
+ </button>
84
+ <a href="#" class="block w-full text-center bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-md text-base font-medium mt-2">Sign In</a>
85
+ </div>
86
+ </div>
87
+ </nav>
88
+
89
+ <!-- Main Content -->
90
+ <main class="flex-grow">
91
+ <!-- Search & Filters -->
92
+ <section class="bg-white dark:bg-dark-800 shadow-sm">
93
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
94
+ <div class="flex flex-col md:flex-row justify-between items-start md:items-center space-y-4 md:space-y-0">
95
+ <h1 class="text-2xl font-bold">Explore Library</h1>
96
+ <div class="relative w-full md:w-64">
97
+ <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
98
+ <i data-feather="search" class="w-5 h-5 text-gray-400"></i>
99
+ </div>
100
+ <input type="text" placeholder="Search tracks..." class="block w-full pl-10 pr-3 py-2 border border-gray-300 dark:border-dark-700 rounded-md leading-5 bg-white dark:bg-dark-800 placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent">
101
+ </div>
102
+ </div>
103
+
104
+ <div class="mt-6">
105
+ <div class="flex flex-wrap gap-2">
106
+ <button class="px-3 py-1 bg-primary-600 text-white text-sm rounded-full flex items-center">
107
+ <span>All</span>
108
+ </button>
109
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
110
+ <span>Synthwave</span>
111
+ </button>
112
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
113
+ <span>Lo-fi</span>
114
+ </button>
115
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
116
+ <span>Hip Hop</span>
117
+ </button>
118
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
119
+ <span>EDM</span>
120
+ </button>
121
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
122
+ <span>Ambient</span>
123
+ </button>
124
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
125
+ <span>Jazz</span>
126
+ </button>
127
+ <button class="px-3 py-1 bg-gray-100 dark:bg-dark-700 text-gray-800 dark:text-gray-200 text-sm rounded-full flex items-center hover:bg-gray-200 dark:hover:bg-dark-600">
128
+ <span>Rock</span>
129
+ </button>
130
+ </div>
131
+
132
+ <div class="mt-4 flex flex-wrap items-center gap-4">
133
+ <div class="flex items-center space-x-2">
134
+ <span class="text-sm text-gray-600 dark:text-gray-400">BPM:</span>
135
+ <select class="block w-24 pl-3 pr-10 py-2 text-base border border-gray-300 dark:border-dark-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent sm:text-sm rounded-md bg-white dark:bg-dark-800">
136
+ <option>Any</option>
137
+ <option>60-80</option>
138
+ <option>80-100</option>
139
+ <option>100-120</option>
140
+ <option>120-140</option>
141
+ <option>140+</option>
142
+ </select>
143
+ </div>
144
+ <div class="flex items-center space-x-2">
145
+ <span class="text-sm text-gray-600 dark:text-gray-400">Key:</span>
146
+ <select class="block w-24 pl-3 pr-10 py-2 text-base border border-gray-300 dark:border-dark-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent sm:text-sm rounded-md bg-white dark:bg-dark-800">
147
+ <option>Any</option>
148
+ <option>C</option>
149
+ <option>C#</option>
150
+ <option>D</option>
151
+ <option>D#</option>
152
+ <option>E</option>
153
+ <option>F</option>
154
+ <option>F#</option>
155
+ <option>G</option>
156
+ <option>G#</option>
157
+ <option>A</option>
158
+ <option>A#</option>
159
+ <option>B</option>
160
+ </select>
161
+ </div>
162
+ <div class="flex items-center space-x-2">
163
+ <span class="text-sm text-gray-600 dark:text-gray-400">License:</span>
164
+ <select class="block w-24 pl-3 pr-10 py-2 text-base border border-gray-300 dark:border-dark-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent sm:text-sm rounded-md bg-white dark:bg-dark-800">
165
+ <option>Any</option>
166
+ <option>Free</option>
167
+ <option>Member</option>
168
+ </select>
169
+ </div>
170
+ <div class="flex items-center space-x-2">
171
+ <span class="text-sm text-gray-600 dark:text-gray-400">Sort by:</span>
172
+ <select class="block w-32 pl-3 pr-10 py-2 text-base border border-gray-300 dark:border-dark-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent sm:text-sm rounded-md bg-white dark:bg-dark-800">
173
+ <option>Trending</option>
174
+ <option>Newest</option>
175
+ <option>Most Downloads</option>
176
+ <option>Editor's Picks</option>
177
+ </select>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ </section>
183
+
184
+ <!-- Tracks Grid -->
185
+ <section class="py-8">
186
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
187
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
188
+ <!-- Track Card 1 -->
189
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
190
+ <div class="relative">
191
+ <img src="https://source.unsplash.com/random/400x400/?music,synthwave" alt="Track cover" class="w-full h-48 object-cover">
192
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
193
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
194
+ </button>
195
+ </div>
196
+ <div class="p-4">
197
+ <h3 class="font-bold text-lg mb-1">Midnight Drive</h3>
198
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Nova Beats</p>
199
+ <div class="flex justify-between items-center">
200
+ <div class="flex space-x-2">
201
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Synthwave</span>
202
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">128 BPM</span>
203
+ </div>
204
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
205
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
206
+ <span>1.2K</span>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <!-- Track Card 2 -->
213
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
214
+ <div class="relative">
215
+ <img src="https://source.unsplash.com/random/400x400/?music,lofi" alt="Track cover" class="w-full h-48 object-cover">
216
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
217
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
218
+ </button>
219
+ </div>
220
+ <div class="p-4">
221
+ <h3 class="font-bold text-lg mb-1">Coffee Shop</h3>
222
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Chill Pill</p>
223
+ <div class="flex justify-between items-center">
224
+ <div class="flex space-x-2">
225
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Lo-fi</span>
226
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">85 BPM</span>
227
+ </div>
228
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
229
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
230
+ <span>856</span>
231
+ </div>
232
+ </div>
233
+ </div>
234
+ </div>
235
+
236
+ <!-- Track Card 3 -->
237
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
238
+ <div class="relative">
239
+ <img src="https://source.unsplash.com/random/400x400/?music,hiphop" alt="Track cover" class="w-full h-48 object-cover">
240
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
241
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
242
+ </button>
243
+ </div>
244
+ <div class="p-4">
245
+ <h3 class="font-bold text-lg mb-1">Urban Flow</h3>
246
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Metro Sounds</p>
247
+ <div class="flex justify-between items-center">
248
+ <div class="flex space-x-2">
249
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Hip Hop</span>
250
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">95 BPM</span>
251
+ </div>
252
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
253
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
254
+ <span>1.5K</span>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ </div>
259
+
260
+ <!-- Track Card 4 -->
261
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
262
+ <div class="relative">
263
+ <img src="https://source.unsplash.com/random/400x400/?music,electronic" alt="Track cover" class="w-full h-48 object-cover">
264
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
265
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
266
+ </button>
267
+ </div>
268
+ <div class="p-4">
269
+ <h3 class="font-bold text-lg mb-1">Digital Dreams</h3>
270
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Electro Nova</p>
271
+ <div class="flex justify-between items-center">
272
+ <div class="flex space-x-2">
273
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">EDM</span>
274
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">128 BPM</span>
275
+ </div>
276
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
277
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
278
+ <span>2.1K</span>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+ <!-- Track Card 5 -->
285
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
286
+ <div class="relative">
287
+ <img src="https://source.unsplash.com/random/400x400/?music,ambient" alt="Track cover" class="w-full h-48 object-cover">
288
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
289
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
290
+ </button>
291
+ </div>
292
+ <div class="p-4">
293
+ <h3 class="font-bold text-lg mb-1">Floating Clouds</h3>
294
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Aether</p>
295
+ <div class="flex justify-between items-center">
296
+ <div class="flex space-x-2">
297
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Ambient</span>
298
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">60 BPM</span>
299
+ </div>
300
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
301
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
302
+ <span>723</span>
303
+ </div>
304
+ </div>
305
+ </div>
306
+ </div>
307
+
308
+ <!-- Track Card 6 -->
309
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
310
+ <div class="relative">
311
+ <img src="https://source.unsplash.com/random/400x400/?music,jazz" alt="Track cover" class="w-full h-48 object-cover">
312
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
313
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
314
+ </button>
315
+ </div>
316
+ <div class="p-4">
317
+ <h3 class="font-bold text-lg mb-1">Smooth Groove</h3>
318
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Jazz Cat</p>
319
+ <div class="flex justify-between items-center">
320
+ <div class="flex space-x-2">
321
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Jazz</span>
322
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">90 BPM</span>
323
+ </div>
324
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
325
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
326
+ <span>612</span>
327
+ </div>
328
+ </div>
329
+ </div>
330
+ </div>
331
+
332
+ <!-- Track Card 7 -->
333
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
334
+ <div class="relative">
335
+ <img src="https://source.unsplash.com/random/400x400/?music,rock" alt="Track cover" class="w-full h-48 object-cover">
336
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
337
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
338
+ </button>
339
+ </div>
340
+ <div class="p-4">
341
+ <h3 class="font-bold text-lg mb-1">Electric Storm</h3>
342
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Rock Titan</p>
343
+ <div class="flex justify-between items-center">
344
+ <div class="flex space-x-2">
345
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Rock</span>
346
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">140 BPM</span>
347
+ </div>
348
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
349
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
350
+ <span>932</span>
351
+ </div>
352
+ </div>
353
+ </div>
354
+ </div>
355
+
356
+ <!-- Track Card 8 -->
357
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
358
+ <div class="relative">
359
+ <img src="https://source.unsplash.com/random/400x400/?music,pop" alt="Track cover" class="w-full h-48 object-cover">
360
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
361
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
362
+ </button>
363
+ </div>
364
+ <div class="p-4">
365
+ <h3 class="font-bold text-lg mb-1">Summer Vibes</h3>
366
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Pop Star</p>
367
+ <div class="flex justify-between items-center">
368
+ <div class="flex space-x-2">
369
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Pop</span>
370
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">100 BPM</span>
371
+ </div>
372
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
373
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
374
+ <span>1.8K</span>
375
+ </div>
376
+ </div>
377
+ </div>
378
+ </div>
379
+ </div>
380
+
381
+ <!-- Pagination -->
382
+ <div class="mt-10 flex justify-center">
383
+ <nav class="flex items-center space-x-2">
384
+ <button class="px-3 py-1 rounded border border-gray-300 dark:border-dark-700 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-dark-700">
385
+ <i data-feather="chevron-left" class="w-4 h-4"></i>
386
+ </button>
387
+ <button class="px-3 py-1 rounded bg-primary-600 text-white">1</button>
388
+ <button class="px-3 py-1 rounded border border-gray-300 dark:border-dark-700 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-dark-700">2</button>
389
+ <button class="px-3 py-1 rounded border border-gray-300 dark:border-dark-700 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-dark-700">3</button>
390
+ <span class="px-2 text-gray-500">...</span>
391
+ <button class="px-3 py-1 rounded border border-gray-300 dark:border-dark-700 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-dark-700">8</button>
392
+ <button class="px-3 py-1 rounded border border-gray-300 dark:border-dark-700 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-dark-700">
393
+ <i data-feather="chevron-right" class="w-4 h-4"></i>
394
+ </button>
395
+ </nav>
396
+ </div>
397
+ </div>
398
+ </section>
399
+ </main>
400
+
401
+ <!-- Footer -->
402
+ <footer class="bg-white dark:bg-dark-800 border-t border-gray-200 dark:border-dark-700 mt-auto">
403
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
404
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-8">
405
+ <div class="col-span-2">
406
+ <a href="/" class="flex items-center space-x-2">
407
+ <svg class="w-8 h-8 text-primary-600" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
408
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2"/>
409
+ <path d="M8 16C8 16 9.5 14 12 14C14.5 14 16 16 16 16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
410
+ <path d="M8 8H8.01M16 8H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
411
+ </svg>
412
+ <span class="text-xl font-bold text-primary-600">LoopLodge</span>
413
+ </a>
414
+ <p class="mt-4 text-gray-600 dark:text-gray-400 max-w-xs">
415
+ A members' hideout for indie producers to share loops, stems, and tracks.
416
+ </p>
417
+ </div>
418
+ <div>
419
+ <h3 class="text-sm font-semibold text-gray-500 dark:text-gray-400 tracking-wider uppercase">Explore</h3>
420
+ <ul class="mt-4 space-y-2">
421
+ <li><a href="/explore.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Browse Library</a></li>
422
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Top Charts</a></li>
423
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">New Releases</a></li>
424
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Genres</a></li>
425
+ </ul>
426
+ </div>
427
+ <div>
428
+ <h3 class="text-sm font-semibold text-gray-500 dark:text-gray-400 tracking-wider uppercase">Company</h3>
429
+ <ul class="mt-4 space-y-2">
430
+ <li><a href="/about.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">About</a></li>
431
+ <li><a href="/pricing.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Pricing</a></li>
432
+ <li><a href="/terms.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Terms</a></li>
433
+ <li><a href="/privacy.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Privacy</a></li>
434
+ </ul>
435
+ </div>
436
+ </div>
437
+ <div class="mt-12 border-t border-gray-200 dark:border-dark-700 pt-8 flex flex-col md:flex-row justify-between items-center">
438
+ <p class="text-gray-500 dark:text-gray-400 text-sm">&copy; 2023 LoopLodge. All rights reserved.</p>
439
+ <div class="mt-4 md:mt-0 flex space-x-6">
440
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
441
+ <i data-feather="twitter" class="w-5 h-5"></i>
442
+ </a>
443
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
444
+ <i data-feather="instagram" class="w-5 h-5"></i>
445
+ </a>
446
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
447
+ <i data-feather="facebook" class="w-5 h-5"></i>
448
+ </a>
449
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
450
+ <i data-feather="youtube" class="w-5 h-5"></i>
451
+ </a>
452
+ </div>
453
+ </div>
454
+ </div>
455
+ </footer>
456
+
457
+ <!-- Audio Player (fixed to bottom) -->
458
+ <div class="fixed bottom-0 left-0 right-0 bg-white dark:bg-dark-800 shadow-lg border-t border-gray-200 dark:border-dark-700">
459
+ <div class="max-w-7xl mx-auto px-4 py-2">
460
+ <div class="flex items-center justify-between">
461
+ <div class="flex items-center space-x-4 w-1/4">
462
+ <img src="https://source.unsplash.com/random/80x80/?music" alt="Now playing" class="w-12 h-12 rounded">
463
+ <div>
464
+ <h4 class="font-medium text-sm">Neon Dreams</h4>
465
+ <p class="text-xs text-gray-500 dark:text-gray-400">Kora Vale</p>
466
+ </div>
467
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
468
+ <i data-feather="heart" class="w-4 h-4"></i>
469
+ </button>
470
+ </div>
471
+ <div class="flex-1 max-w-2xl">
472
+ <div class="flex items-center justify-center space-x-6">
473
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
474
+ <i data-feather="shuffle" class="w-4 h-4"></i>
475
+ </button>
476
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
477
+ <i data-feather="skip-back" class="w-4 h-4"></i>
478
+ </button>
479
+ <button class="w-10 h-10 bg-primary-600 hover:bg-primary-700 rounded-full flex items-center justify-center">
480
+ <i data-feather="play" class="w-5 h-5 text-white"></i>
481
+ </button>
482
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
483
+ <i data-feather="skip-forward" class="w-4 h-4"></i>
484
+ </button>
485
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
486
+ <i data-feather="repeat" class="w-4 h-4"></i>
487
+ </button>
488
+ </div>
489
+ <div class="flex items-center mt-2 space-x-3">
490
+ <span class="text-xs text-gray-500 dark:text-gray-400 w-10">1:24</span>
491
+ <div class="flex-1 h-1 bg-gray-200 dark:bg-dark-700 rounded-full overflow-hidden">
492
+ <div class="h-full bg-primary-600 w-1/3"></div>
493
+ </div>
494
+ <span class="text-xs text-gray-500 dark:text-gray-400 w-10">3:45</span>
495
+ </div>
496
+ </div>
497
+ <div class="flex items-center space-x-4 w-1/4 justify-end">
498
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
499
+ <i data-feather="list" class="w-4 h-4"></i>
500
+ </button>
501
+ <div class="flex items-center space-x-2">
502
+ <i data-feather="volume-2" class="w-4 h-4 text-gray-500 dark:text-gray-400"></i>
503
+ <div class="w-20 h-1 bg-gray-200 dark:bg-dark-700 rounded-full overflow-hidden">
504
+ </body>
505
+ </html>
index.html CHANGED
@@ -1,19 +1,482 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>LoopLodge A Members' Hideout for Indie Loops & Tracks</title>
7
+ <meta name="description" content="Premium platform for indie producers to share loop packs, stems, and full tracks. Join our creative community.">
8
+ <link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <link href="/css/styles.css" rel="stylesheet">
13
+ <script>
14
+ tailwind.config = {
15
+ darkMode: 'class',
16
+ theme: {
17
+ extend: {
18
+ colors: {
19
+ primary: {
20
+ 50: '#f0f9ff',
21
+ 100: '#e0f2fe',
22
+ 200: '#bae6fd',
23
+ 300: '#7dd3fc',
24
+ 400: '#38bdf8',
25
+ 500: '#0ea5e9',
26
+ 600: '#0284c7',
27
+ 700: '#0369a1',
28
+ 800: '#075985',
29
+ 900: '#0c4a6e',
30
+ },
31
+ dark: {
32
+ 800: '#1e293b',
33
+ 900: '#0f172a',
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+ </script>
40
+ </head>
41
+ <body class="bg-gray-50 dark:bg-dark-900 text-gray-800 dark:text-gray-200 min-h-screen flex flex-col">
42
+ <!-- Navigation -->
43
+ <nav class="bg-white dark:bg-dark-800 shadow-sm">
44
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
45
+ <div class="flex justify-between h-16">
46
+ <div class="flex items-center">
47
+ <a href="/" class="flex items-center space-x-2">
48
+ <svg class="w-8 h-8 text-primary-600" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
49
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2"/>
50
+ <path d="M8 16C8 16 9.5 14 12 14C14.5 14 16 16 16 16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
51
+ <path d="M8 8H8.01M16 8H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
52
+ </svg>
53
+ <span class="text-xl font-bold text-primary-600">LoopLodge</span>
54
+ </a>
55
+ </div>
56
+ <div class="hidden md:flex items-center space-x-8">
57
+ <a href="/explore.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Explore</a>
58
+ <a href="/pricing.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">Pricing</a>
59
+ <a href="/about.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 px-3 py-2 text-sm font-medium">About</a>
60
+ <button id="theme-toggle" class="p-2 rounded-full hover:bg-gray-100 dark:hover:bg-dark-700">
61
+ <i data-feather="moon" class="hidden dark:block"></i>
62
+ <i data-feather="sun" class="dark:hidden"></i>
63
+ </button>
64
+ <a href="#" class="bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-md text-sm font-medium">Sign In</a>
65
+ </div>
66
+ <div class="md:hidden flex items-center">
67
+ <button id="mobile-menu-button" class="p-2 rounded-md hover:bg-gray-100 dark:hover:bg-dark-700">
68
+ <i data-feather="menu"></i>
69
+ </button>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <!-- Mobile menu -->
74
+ <div id="mobile-menu" class="hidden md:hidden bg-white dark:bg-dark-800 pb-3 px-4">
75
+ <div class="pt-2 space-y-1">
76
+ <a href="/explore.html" class="block px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Explore</a>
77
+ <a href="/pricing.html" class="block px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Pricing</a>
78
+ <a href="/about.html" class="block px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">About</a>
79
+ <button id="mobile-theme-toggle" class="w-full text-left px-3 py-2 text-base font-medium text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 flex items-center">
80
+ <span class="mr-2">Toggle Theme</span>
81
+ <i data-feather="moon" class="hidden dark:block"></i>
82
+ <i data-feather="sun" class="dark:hidden"></i>
83
+ </button>
84
+ <a href="#" class="block w-full text-center bg-primary-600 hover:bg-primary-700 text-white px-4 py-2 rounded-md text-base font-medium mt-2">Sign In</a>
85
+ </div>
86
+ </div>
87
+ </nav>
88
+
89
+ <!-- Hero Section -->
90
+ <section class="bg-gradient-to-br from-primary-500 to-primary-700 text-white py-20">
91
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
92
+ <div class="flex flex-col md:flex-row items-center justify-between">
93
+ <div class="md:w-1/2 mb-10 md:mb-0">
94
+ <h1 class="text-4xl md:text-5xl font-bold mb-6">Your Creative Hideout for Indie Loops & Tracks</h1>
95
+ <p class="text-xl mb-8 opacity-90">Discover, share, and collaborate with a community of passionate producers. Royalty-free samples, stems, and full tracks at your fingertips.</p>
96
+ <div class="flex flex-col sm:flex-row space-y-3 sm:space-y-0 sm:space-x-4">
97
+ <a href="/explore.html" class="bg-white text-primary-600 hover:bg-gray-100 px-6 py-3 rounded-md text-lg font-semibold text-center">Explore Library</a>
98
+ <a href="/pricing.html" class="bg-transparent border-2 border-white hover:bg-white hover:bg-opacity-10 px-6 py-3 rounded-md text-lg font-semibold text-center">Join Membership</a>
99
+ </div>
100
+ </div>
101
+ <div class="md:w-1/2 flex justify-center">
102
+ <div class="relative w-full max-w-md">
103
+ <div class="absolute -top-6 -left-6 w-32 h-32 bg-primary-400 rounded-lg opacity-20 animate-pulse"></div>
104
+ <div class="absolute -bottom-6 -right-6 w-32 h-32 bg-primary-400 rounded-lg opacity-20 animate-pulse"></div>
105
+ <div class="relative bg-white dark:bg-dark-800 rounded-xl shadow-xl overflow-hidden">
106
+ <div class="h-48 bg-gradient-to-r from-purple-500 to-pink-500"></div>
107
+ <div class="p-6">
108
+ <div class="flex justify-between items-start mb-4">
109
+ <div>
110
+ <h3 class="text-lg font-bold text-gray-900 dark:text-white">Neon Dreams</h3>
111
+ <p class="text-gray-600 dark:text-gray-300">by Kora Vale</p>
112
+ </div>
113
+ <div class="flex space-x-2">
114
+ <button class="p-2 rounded-full hover:bg-gray-100 dark:hover:bg-dark-700">
115
+ <i data-feather="heart" class="w-5 h-5"></i>
116
+ </button>
117
+ <button class="p-2 rounded-full hover:bg-gray-100 dark:hover:bg-dark-700">
118
+ <i data-feather="more-vertical" class="w-5 h-5"></i>
119
+ </button>
120
+ </div>
121
+ </div>
122
+ <div class="flex items-center justify-between">
123
+ <div class="flex space-x-4">
124
+ <button class="w-12 h-12 bg-primary-600 hover:bg-primary-700 rounded-full flex items-center justify-center">
125
+ <i data-feather="play" class="w-5 h-5 text-white"></i>
126
+ </button>
127
+ </div>
128
+ <div class="flex-1 mx-4">
129
+ <div class="h-1 bg-gray-200 dark:bg-dark-700 rounded-full overflow-hidden">
130
+ <div class="h-full bg-primary-600 w-1/3"></div>
131
+ </div>
132
+ </div>
133
+ <span class="text-sm text-gray-500">1:24 / 3:45</span>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </div>
141
+ </section>
142
+
143
+ <!-- Featured Section -->
144
+ <section class="py-16 bg-gray-50 dark:bg-dark-900">
145
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
146
+ <div class="flex justify-between items-center mb-10">
147
+ <h2 class="text-2xl font-bold">Featured This Week</h2>
148
+ <a href="/explore.html" class="text-primary-600 hover:text-primary-800 dark:hover:text-primary-400 font-medium flex items-center">
149
+ View all <i data-feather="chevron-right" class="w-4 h-4 ml-1"></i>
150
+ </a>
151
+ </div>
152
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
153
+ <!-- Track Card 1 -->
154
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
155
+ <div class="relative">
156
+ <img src="https://source.unsplash.com/random/400x400/?music,synthwave" alt="Track cover" class="w-full h-48 object-cover">
157
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
158
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
159
+ </button>
160
+ </div>
161
+ <div class="p-4">
162
+ <h3 class="font-bold text-lg mb-1">Midnight Drive</h3>
163
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Nova Beats</p>
164
+ <div class="flex justify-between items-center">
165
+ <div class="flex space-x-2">
166
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Synthwave</span>
167
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">128 BPM</span>
168
+ </div>
169
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
170
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
171
+ <span>1.2K</span>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+
177
+ <!-- Track Card 2 -->
178
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
179
+ <div class="relative">
180
+ <img src="https://source.unsplash.com/random/400x400/?music,lofi" alt="Track cover" class="w-full h-48 object-cover">
181
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
182
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
183
+ </button>
184
+ </div>
185
+ <div class="p-4">
186
+ <h3 class="font-bold text-lg mb-1">Coffee Shop</h3>
187
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Chill Pill</p>
188
+ <div class="flex justify-between items-center">
189
+ <div class="flex space-x-2">
190
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Lo-fi</span>
191
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">85 BPM</span>
192
+ </div>
193
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
194
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
195
+ <span>856</span>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- Track Card 3 -->
202
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
203
+ <div class="relative">
204
+ <img src="https://source.unsplash.com/random/400x400/?music,hiphop" alt="Track cover" class="w-full h-48 object-cover">
205
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
206
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
207
+ </button>
208
+ </div>
209
+ <div class="p-4">
210
+ <h3 class="font-bold text-lg mb-1">Urban Flow</h3>
211
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Metro Sounds</p>
212
+ <div class="flex justify-between items-center">
213
+ <div class="flex space-x-2">
214
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">Hip Hop</span>
215
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">95 BPM</span>
216
+ </div>
217
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
218
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
219
+ <span>1.5K</span>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ </div>
224
+
225
+ <!-- Track Card 4 -->
226
+ <div class="bg-white dark:bg-dark-800 rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300">
227
+ <div class="relative">
228
+ <img src="https://source.unsplash.com/random/400x400/?music,electronic" alt="Track cover" class="w-full h-48 object-cover">
229
+ <button class="absolute bottom-4 right-4 w-10 h-10 bg-white dark:bg-dark-700 rounded-full shadow-md flex items-center justify-center hover:bg-gray-100 dark:hover:bg-dark-600">
230
+ <i data-feather="play" class="w-4 h-4 text-primary-600"></i>
231
+ </button>
232
+ </div>
233
+ <div class="p-4">
234
+ <h3 class="font-bold text-lg mb-1">Digital Dreams</h3>
235
+ <p class="text-gray-600 dark:text-gray-400 text-sm mb-3">by Electro Nova</p>
236
+ <div class="flex justify-between items-center">
237
+ <div class="flex space-x-2">
238
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">EDM</span>
239
+ <span class="text-xs px-2 py-1 bg-gray-100 dark:bg-dark-700 rounded-full">128 BPM</span>
240
+ </div>
241
+ <div class="flex items-center text-gray-500 dark:text-gray-400 text-sm">
242
+ <i data-feather="download" class="w-4 h-4 mr-1"></i>
243
+ <span>2.1K</span>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </section>
251
+
252
+ <!-- Features Section -->
253
+ <section class="py-16 bg-white dark:bg-dark-800">
254
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
255
+ <div class="text-center mb-16">
256
+ <h2 class="text-3xl font-bold mb-4">Why Choose LoopLodge</h2>
257
+ <p class="text-lg text-gray-600 dark:text-gray-400 max-w-3xl mx-auto">A platform built by producers, for producers. We're redefining how indie creators share and monetize their work.</p>
258
+ </div>
259
+ <div class="grid md:grid-cols-3 gap-8">
260
+ <!-- Feature 1 -->
261
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
262
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
263
+ <i data-feather="shield" class="w-6 h-6 text-primary-600"></i>
264
+ </div>
265
+ <h3 class="text-xl font-bold mb-3">Clear Licensing</h3>
266
+ <p class="text-gray-600 dark:text-gray-400">All tracks come with royalty-free licenses. Creators retain ownership while users get clear usage rights.</p>
267
+ </div>
268
+
269
+ <!-- Feature 2 -->
270
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
271
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
272
+ <i data-feather="star" class="w-6 h-6 text-primary-600"></i>
273
+ </div>
274
+ <h3 class="text-xl font-bold mb-3">Curated Quality</h3>
275
+ <p class="text-gray-600 dark:text-gray-400">Every submission is reviewed by our team to ensure professional quality standards.</p>
276
+ </div>
277
+
278
+ <!-- Feature 3 -->
279
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
280
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
281
+ <i data-feather="layers" class="w-6 h-6 text-primary-600"></i>
282
+ </div>
283
+ <h3 class="text-xl font-bold mb-3">Stems & Loops</h3>
284
+ <p class="text-gray-600 dark:text-gray-400">Get full track stems and isolated loops for ultimate flexibility in your productions.</p>
285
+ </div>
286
+
287
+ <!-- Feature 4 -->
288
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
289
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
290
+ <i data-feather="trending-up" class="w-6 h-6 text-primary-600"></i>
291
+ </div>
292
+ <h3 class="text-xl font-bold mb-3">Creator Analytics</h3>
293
+ <p class="text-gray-600 dark:text-gray-400">Detailed stats on plays, downloads, and earnings help you understand your audience.</p>
294
+ </div>
295
+
296
+ <!-- Feature 5 -->
297
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
298
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
299
+ <i data-feather="users" class="w-6 h-6 text-primary-600"></i>
300
+ </div>
301
+ <h3 class="text-xl font-bold mb-3">Collaborative</h3>
302
+ <p class="text-gray-600 dark:text-gray-400">Connect with other producers, remix tracks, and collaborate on new projects.</p>
303
+ </div>
304
+
305
+ <!-- Feature 6 -->
306
+ <div class="bg-gray-50 dark:bg-dark-900 p-6 rounded-xl">
307
+ <div class="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mb-4">
308
+ <i data-feather="dollar-sign" class="w-6 h-6 text-primary-600"></i>
309
+ </div>
310
+ <h3 class="text-xl font-bold mb-3">Fair Earnings</h3>
311
+ <p class="text-gray-600 dark:text-gray-400">We take the smallest cut in the industry so you keep more of your hard-earned revenue.</p>
312
+ </div>
313
+ </div>
314
+ </div>
315
+ </section>
316
+
317
+ <!-- Newsletter Section -->
318
+ <section class="py-16 bg-primary-50 dark:bg-primary-900 bg-opacity-50">
319
+ <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
320
+ <div class="bg-white dark:bg-dark-800 rounded-xl shadow-md p-8 md:p-10">
321
+ <h2 class="text-2xl font-bold mb-4">Stay in the Loop</h2>
322
+ <p class="text-gray-600 dark:text-gray-400 mb-8">Subscribe to our newsletter for new releases, producer spotlights, and exclusive member content.</p>
323
+ <form class="flex flex-col sm:flex-row gap-4 max-w-md mx-auto">
324
+ <input type="email" placeholder="Your email address" class="flex-grow px-4 py-3 rounded-md border border-gray-300 dark:border-dark-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent">
325
+ <button type="submit" class="bg-primary-600 hover:bg-primary-700 text-white px-6 py-3 rounded-md font-medium">Subscribe</button>
326
+ </form>
327
+ <p class="text-xs text-gray-500 dark:text-gray-400 mt-4">We respect your privacy. Unsubscribe at any time.</p>
328
+ </div>
329
+ </div>
330
+ </section>
331
+
332
+ <!-- Footer -->
333
+ <footer class="bg-white dark:bg-dark-800 border-t border-gray-200 dark:border-dark-700 mt-auto">
334
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
335
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-8">
336
+ <div class="col-span-2">
337
+ <a href="/" class="flex items-center space-x-2">
338
+ <svg class="w-8 h-8 text-primary-600" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
339
+ <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2"/>
340
+ <path d="M8 16C8 16 9.5 14 12 14C14.5 14 16 16 16 16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
341
+ <path d="M8 8H8.01M16 8H16.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
342
+ </svg>
343
+ <span class="text-xl font-bold text-primary-600">LoopLodge</span>
344
+ </a>
345
+ <p class="mt-4 text-gray-600 dark:text-gray-400 max-w-xs">
346
+ A members' hideout for indie producers to share loops, stems, and tracks.
347
+ </p>
348
+ </div>
349
+ <div>
350
+ <h3 class="text-sm font-semibold text-gray-500 dark:text-gray-400 tracking-wider uppercase">Explore</h3>
351
+ <ul class="mt-4 space-y-2">
352
+ <li><a href="/explore.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Browse Library</a></li>
353
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Top Charts</a></li>
354
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">New Releases</a></li>
355
+ <li><a href="#" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Genres</a></li>
356
+ </ul>
357
+ </div>
358
+ <div>
359
+ <h3 class="text-sm font-semibold text-gray-500 dark:text-gray-400 tracking-wider uppercase">Company</h3>
360
+ <ul class="mt-4 space-y-2">
361
+ <li><a href="/about.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">About</a></li>
362
+ <li><a href="/pricing.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Pricing</a></li>
363
+ <li><a href="/terms.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Terms</a></li>
364
+ <li><a href="/privacy.html" class="text-gray-600 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400">Privacy</a></li>
365
+ </ul>
366
+ </div>
367
+ </div>
368
+ <div class="mt-12 border-t border-gray-200 dark:border-dark-700 pt-8 flex flex-col md:flex-row justify-between items-center">
369
+ <p class="text-gray-500 dark:text-gray-400 text-sm">&copy; 2023 LoopLodge. All rights reserved.</p>
370
+ <div class="mt-4 md:mt-0 flex space-x-6">
371
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
372
+ <i data-feather="twitter" class="w-5 h-5"></i>
373
+ </a>
374
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
375
+ <i data-feather="instagram" class="w-5 h-5"></i>
376
+ </a>
377
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
378
+ <i data-feather="facebook" class="w-5 h-5"></i>
379
+ </a>
380
+ <a href="#" class="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
381
+ <i data-feather="youtube" class="w-5 h-5"></i>
382
+ </a>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ </footer>
387
+
388
+ <!-- Audio Player (fixed to bottom) -->
389
+ <div class="fixed bottom-0 left-0 right-0 bg-white dark:bg-dark-800 shadow-lg border-t border-gray-200 dark:border-dark-700">
390
+ <div class="max-w-7xl mx-auto px-4 py-2">
391
+ <div class="flex items-center justify-between">
392
+ <div class="flex items-center space-x-4 w-1/4">
393
+ <img src="https://source.unsplash.com/random/80x80/?music" alt="Now playing" class="w-12 h-12 rounded">
394
+ <div>
395
+ <h4 class="font-medium text-sm">Neon Dreams</h4>
396
+ <p class="text-xs text-gray-500 dark:text-gray-400">Kora Vale</p>
397
+ </div>
398
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
399
+ <i data-feather="heart" class="w-4 h-4"></i>
400
+ </button>
401
+ </div>
402
+ <div class="flex-1 max-w-2xl">
403
+ <div class="flex items-center justify-center space-x-6">
404
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
405
+ <i data-feather="shuffle" class="w-4 h-4"></i>
406
+ </button>
407
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
408
+ <i data-feather="skip-back" class="w-4 h-4"></i>
409
+ </button>
410
+ <button class="w-10 h-10 bg-primary-600 hover:bg-primary-700 rounded-full flex items-center justify-center">
411
+ <i data-feather="play" class="w-5 h-5 text-white"></i>
412
+ </button>
413
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
414
+ <i data-feather="skip-forward" class="w-4 h-4"></i>
415
+ </button>
416
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
417
+ <i data-feather="repeat" class="w-4 h-4"></i>
418
+ </button>
419
+ </div>
420
+ <div class="flex items-center mt-2 space-x-3">
421
+ <span class="text-xs text-gray-500 dark:text-gray-400 w-10">1:24</span>
422
+ <div class="flex-1 h-1 bg-gray-200 dark:bg-dark-700 rounded-full overflow-hidden">
423
+ <div class="h-full bg-primary-600 w-1/3"></div>
424
+ </div>
425
+ <span class="text-xs text-gray-500 dark:text-gray-400 w-10">3:45</span>
426
+ </div>
427
+ </div>
428
+ <div class="flex items-center space-x-4 w-1/4 justify-end">
429
+ <button class="text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400">
430
+ <i data-feather="list" class="w-4 h-4"></i>
431
+ </button>
432
+ <div class="flex items-center space-x-2">
433
+ <i data-feather="volume-2" class="w-4 h-4 text-gray-500 dark:text-gray-400"></i>
434
+ <div class="w-20 h-1 bg-gray-200 dark:bg-dark-700 rounded-full overflow-hidden">
435
+ <div class="h-full bg-primary-600 w-3/4"></div>
436
+ </div>
437
+ </div>
438
+ </div>
439
+ </div>
440
+ </div>
441
+ </div>
442
+
443
+ <!-- Scripts -->
444
+ <script src="/js/app.js"></script>
445
+ <script>
446
+ // Initialize feather icons
447
+ feather.replace();
448
+
449
+ // Mobile menu toggle
450
+ document.getElementById('mobile-menu-button').addEventListener('click', function() {
451
+ const menu = document.getElementById('mobile-menu');
452
+ menu.classList.toggle('hidden');
453
+ });
454
+
455
+ // Theme toggle
456
+ const themeToggle = document.getElementById('theme-toggle');
457
+ const mobileThemeToggle = document.getElementById('mobile-theme-toggle');
458
+
459
+ function toggleTheme() {
460
+ const html = document.documentElement;
461
+ if (html.classList.contains('dark')) {
462
+ html.classList.remove('dark');
463
+ localStorage.setItem('theme', 'light');
464
+ } else {
465
+ html.classList.add('dark');
466
+ localStorage.setItem('theme', 'dark');
467
+ }
468
+ feather.replace();
469
+ }
470
+
471
+ themeToggle.addEventListener('click', toggleTheme);
472
+ mobileThemeToggle.addEventListener('click', toggleTheme);
473
+
474
+ // Check for saved theme preference
475
+ if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
476
+ document.documentElement.classList.add('dark');
477
+ } else {
478
+ document.documentElement.classList.remove('dark');
479
+ }
480
+ </script>
481
+ </body>
482
  </html>