From a878710e406f47f540c0a74d85ea43f70164d965 Mon Sep 17 00:00:00 2001 From: jyswee Date: Thu, 23 Jul 2026 22:13:34 +0000 Subject: [PATCH] Seed: music template (13 files) --- src/pages/Music.tsx | 128 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 src/pages/Music.tsx diff --git a/src/pages/Music.tsx b/src/pages/Music.tsx new file mode 100644 index 0000000..8fccb02 --- /dev/null +++ b/src/pages/Music.tsx @@ -0,0 +1,128 @@ +import { useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Headphones, Clock, Music, ChevronDown, ChevronUp } from "lucide-react"; +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; + +const filters = ["All", "Albums", "EPs", "Singles"]; + +const releases = [ + { + title: "Chromatic Abyss", year: "2026", type: "Albums", trackCount: 12, genre: "Synthwave", gradient: "from-purple-600 to-fuchsia-500", + tracks: [ + { n: "01", title: "Neon Requiem", dur: "4:12" }, { n: "02", title: "Violet Horizon", dur: "3:48" }, + { n: "03", title: "Pulse Decay", dur: "5:01" }, { n: "04", title: "Afterglow", dur: "3:33" }, + { n: "05", title: "Starfall", dur: "4:27" }, { n: "06", title: "Digital Mirage", dur: "3:55" }, + { n: "07", title: "Eclipse Rising", dur: "6:10" }, { n: "08", title: "Last Transmission", dur: "4:44" }, + ], + }, + { + title: "Midnight Circuits", year: "2024", type: "Albums", trackCount: 10, genre: "Electronic", gradient: "from-fuchsia-500 to-pink-500", + tracks: [ + { n: "01", title: "Wire Dreams", dur: "3:56" }, { n: "02", title: "Copper Sky", dur: "4:22" }, + { n: "03", title: "Binary Heart", dur: "3:18" }, { n: "04", title: "Flux State", dur: "5:05" }, + { n: "05", title: "Overload", dur: "4:11" }, { n: "06", title: "Midnight Run", dur: "3:40" }, + ], + }, + { + title: "Phantom Frequencies", year: "2022", type: "Albums", trackCount: 11, genre: "Darkwave", gradient: "from-violet-600 to-purple-500", + tracks: [ + { n: "01", title: "Ghost Signal", dur: "4:05" }, { n: "02", title: "Static Bloom", dur: "3:30" }, + { n: "03", title: "Void Walker", dur: "5:22" }, { n: "04", title: "Fade Pattern", dur: "3:47" }, + { n: "05", title: "Deep Frequency", dur: "4:38" }, + ], + }, + { + title: "Neon Therapy", year: "2023", type: "EPs", trackCount: 6, genre: "Ambient", gradient: "from-indigo-600 to-violet-500", + tracks: [ + { n: "01", title: "Warm Static", dur: "3:22" }, { n: "02", title: "Soft Reboot", dur: "4:10" }, + { n: "03", title: "Pastel Waves", dur: "3:55" }, { n: "04", title: "Calm Protocol", dur: "4:31" }, + { n: "05", title: "Drift Mode", dur: "3:08" }, + ], + }, + { + title: "Genesis Protocol", year: "2021", type: "EPs", trackCount: 5, genre: "Electro", gradient: "from-purple-700 to-indigo-500", + tracks: [ + { n: "01", title: "Boot Sequence", dur: "4:15" }, { n: "02", title: "Raw Input", dur: "3:42" }, + { n: "03", title: "Core Dump", dur: "5:00" }, { n: "04", title: "Voltage", dur: "3:28" }, + { n: "05", title: "First Light", dur: "4:50" }, + ], + }, + { + title: "Supernova", year: "2025", type: "Singles", trackCount: 1, genre: "Synthpop", gradient: "from-fuchsia-600 to-rose-500", + tracks: [ + { n: "01", title: "Supernova", dur: "3:45" }, + ], + }, +]; + +export default function MusicPage() { + const [filter, setFilter] = useState("All"); + const [expanded, setExpanded] = useState(null); + + const filtered = filter === "All" ? releases : releases.filter((r) => r.type === filter); + + return ( +
+
+ + {/* Hero */} +
+

Discography

+

Every record, every sound, every moment.

+
+ + {/* Filters */} +
+
+ {filters.map((f) => ( + + ))} +
+
+ + {/* Releases Grid */} +
+
+ {filtered.map((r, i) => ( + +
+ + {r.type === "Albums" ? "Album" : r.type === "EPs" ? "EP" : "Single"} +
+ +

{r.title}

+
+ {r.year} + · + {r.trackCount} tracks +
+ {r.genre} + + {expanded === i && ( +
+ {r.tracks.map((t) => ( +
+ {t.n} + {t.title} + {t.dur} +
+ ))} +
+ )} +
+
+ ))} +
+
+ +
+ ); +} \ No newline at end of file