Update dependencies and enhance styling for improved UI

- Added `@tailwindcss/postcss` and `tailwind-merge` to package dependencies for better Tailwind CSS integration.
- Updated `tailwindcss` to version 4.1.16.
- Enhanced `TrackCard` and `TrackModal` components with new styling and functionality, including support for `lpTV` badges.
- Refactored CSS imports and layout structure in `index.css` and `page.tsx` for improved responsiveness and visual appeal.
- Updated album data in `list.ts` to reflect accurate track information and descriptions.
This commit is contained in:
m4x809 2025-10-25 10:37:07 +02:00
parent 1fe8d9850f
commit 23b8d363ec
Signed by: m4x809
SSH key fingerprint: SHA256:YCoFF78p2DUP94EnCScqLwldjkKDwdKSZq3r8p/6EiU
11 changed files with 374 additions and 208 deletions

View file

@ -10,13 +10,15 @@
"@mantine/carousel": "^8.3.5",
"@mantine/core": "^8.3.5",
"@mantine/hooks": "^8.3.5",
"@tailwindcss/postcss": "^4.1.16",
"embla-carousel": "^8.5.2",
"embla-carousel-react": "^8.5.2",
"next": "^16.0.0",
"next-view-transitions": "^0.3.4",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"tailwindcss": "^4.1.15",
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.16",
},
"devDependencies": {
"@eslint/js": "^9.36.0",
@ -39,6 +41,8 @@
},
},
"packages": {
"@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="],
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
"@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="],
@ -139,6 +143,16 @@
"@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.4", "", { "os": "win32", "cpu": "x64" }, "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig=="],
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
"@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
"@mantine/carousel": ["@mantine/carousel@8.3.5", "", { "peerDependencies": { "@mantine/core": "8.3.5", "@mantine/hooks": "8.3.5", "embla-carousel": ">=8.0.0", "embla-carousel-react": ">=8.0.0", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "sha512-TthQo7Wf4bn299wWaYCHXnhigKCZXLr7Mmt3yQkVEnf2sfj8AcbsOA6P5leOuAU84l7hTeV4+/A7+qomZdDI7Q=="],
"@mantine/core": ["@mantine/core@8.3.5", "", { "dependencies": { "@floating-ui/react": "^0.27.16", "clsx": "^2.1.1", "react-number-format": "^5.4.4", "react-remove-scroll": "^2.7.1", "react-textarea-autosize": "8.5.9", "type-fest": "^4.41.0" }, "peerDependencies": { "@mantine/hooks": "8.3.5", "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, "sha512-PdVNLMgOS2vFhOujRi6/VC9ic8w3UDyKX7ftwDeJ7yQT8CiepUxfbWWYpVpnq23bdWh/7fIT2Pn1EY8r8GOk7g=="],
@ -171,6 +185,36 @@
"@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="],
"@tailwindcss/node": ["@tailwindcss/node@4.1.16", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.16" } }, "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw=="],
"@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.16", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.16", "@tailwindcss/oxide-darwin-arm64": "4.1.16", "@tailwindcss/oxide-darwin-x64": "4.1.16", "@tailwindcss/oxide-freebsd-x64": "4.1.16", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", "@tailwindcss/oxide-linux-x64-musl": "4.1.16", "@tailwindcss/oxide-wasm32-wasi": "4.1.16", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" } }, "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg=="],
"@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.16", "", { "os": "android", "cpu": "arm64" }, "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA=="],
"@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.16", "", { "os": "darwin", "cpu": "arm64" }, "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA=="],
"@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.16", "", { "os": "darwin", "cpu": "x64" }, "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg=="],
"@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.16", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg=="],
"@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16", "", { "os": "linux", "cpu": "arm" }, "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw=="],
"@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w=="],
"@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ=="],
"@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew=="],
"@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw=="],
"@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.16", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q=="],
"@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.16", "", { "os": "win32", "cpu": "arm64" }, "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A=="],
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.16", "", { "os": "win32", "cpu": "x64" }, "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg=="],
"@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.16", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.16", "@tailwindcss/oxide": "4.1.16", "postcss": "^8.4.41", "tailwindcss": "4.1.16" } }, "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A=="],
"@types/bun": ["@types/bun@1.3.1", "", { "dependencies": { "bun-types": "1.3.1" } }, "sha512-4jNMk2/K9YJtfqwoAa28c8wK+T7nvJFOjxI4h/7sORWcypRNxBpr+TPNaCfVWq70tLCJsqoFwcf0oI0JU/fvMQ=="],
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
@ -261,6 +305,8 @@
"embla-carousel-reactive-utils": ["embla-carousel-reactive-utils@8.6.0", "", { "peerDependencies": { "embla-carousel": "8.6.0" } }, "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A=="],
"enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="],
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
"eslint": ["eslint@9.38.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.1", "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.38.0", "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw=="],
@ -309,6 +355,8 @@
"globals": ["globals@16.4.0", "", {}, "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw=="],
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
"graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="],
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
@ -341,10 +389,36 @@
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
"lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="],
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="],
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="],
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="],
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="],
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="],
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="],
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="],
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="],
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="],
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="],
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="],
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
@ -443,7 +517,11 @@
"tabbable": ["tabbable@6.2.0", "", {}, "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="],
"tailwindcss": ["tailwindcss@4.1.15", "", {}, "sha512-k2WLnWkYFkdpRv+Oby3EBXIyQC8/s1HOFMBUViwtAh6Z5uAozeUSMQlIsn/c6Q2iJzqG6aJT3wdPaRNj70iYxQ=="],
"tailwind-merge": ["tailwind-merge@3.3.1", "", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="],
"tailwindcss": ["tailwindcss@4.1.16", "", {}, "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA=="],
"tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="],
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
@ -487,6 +565,18 @@
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="],
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="],
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="],
"@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="],
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],

View file

@ -18,13 +18,15 @@
"@mantine/carousel": "^8.3.5",
"@mantine/core": "^8.3.5",
"@mantine/hooks": "^8.3.5",
"@tailwindcss/postcss": "^4.1.16",
"embla-carousel": "^8.5.2",
"embla-carousel-react": "^8.5.2",
"next": "^16.0.0",
"next-view-transitions": "^0.3.4",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"tailwindcss": "^4.1.15"
"tailwind-merge": "^3.3.1",
"tailwindcss": "^4.1.16"
},
"devDependencies": {
"@eslint/js": "^9.36.0",

View file

@ -1,5 +1,6 @@
export default {
plugins: {
"@tailwindcss/postcss": {},
"postcss-preset-mantine": {},
"postcss-simple-vars": {
variables: {

View file

@ -5,6 +5,7 @@ import { useState } from "react";
import type { AlbumTheme } from "@/lib/themes";
import type { Track } from "@/lib/ListTypes";
import TrackModal from "./TrackModal";
import { twMerge } from "tailwind-merge";
interface TrackCardProps {
track: Track;
@ -13,23 +14,19 @@ interface TrackCardProps {
}
export default function TrackCard({ track, index, theme }: TrackCardProps) {
const [isHovered, setIsHovered] = useState(false);
const [modalOpened, setModalOpened] = useState(false);
return (
<>
<Card
onClick={() => setModalOpened(true)}
className="backdrop-blur-sm transition-all duration-300"
style={{
background: isHovered ? theme.card.backgroundHover : theme.card.background,
border: `1px solid ${isHovered ? theme.border.light : theme.card.border}`,
cursor: "pointer",
// transform: isHovered ? "translateY(-2px)" : "translateY(0)",
boxShadow: isHovered ? `0 8px 24px ${theme.primary.DEFAULT}30` : "none",
}}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
className={twMerge(
"transition-all duration-300 hover:scale-105 hover:cursor-pointer hover:shadow-lg",
theme.card.background,
theme.card.backgroundHover,
theme.card.border,
)}
style={{}}
>
<Group justify="space-between" align="center">
<Group gap="md">
@ -93,6 +90,18 @@ export default function TrackCard({ track, index, theme }: TrackCardProps) {
LP Live
</Badge>
)}
{track.lpTV && (
<Badge
size="sm"
variant="filled"
style={{
background: theme.badges.lpTV,
color: theme.text.contrast,
}}
>
LP TV
</Badge>
)}
</Group>
<Text
size="sm"

View file

@ -193,6 +193,43 @@ export default function TrackModal({ opened, onClose, track, theme }: TrackModal
</Group>
</>
)}
{track.lpTV && (
<>
<Divider
color={theme.accent.DEFAULT}
size={"lg"}
label={
<Title c={theme.accent.DEFAULT} order={3}>
LP TV
</Title>
}
/>
<Group justify="space-between" align="center">
<Box style={{ display: "flex", flexDirection: "column", gap: "4px" }}>
<Text>
{new Date(track.lpTV.date).toLocaleDateString("en-US", {
year: "numeric",
month: "long",
day: "numeric",
})}
</Text>
</Box>
<ActionIcon
tabIndex={-1}
variant="filled"
color={"#FF0000"}
size="lg"
component={Link}
href={track.lpTV.url}
target="_blank"
rel="noopener noreferrer"
>
<FontAwesomeIcon icon={faYoutube} />
</ActionIcon>
</Group>
</>
)}
</Stack>
</Modal>
);

View file

@ -1,4 +1,3 @@
import "@mantine/core/styles.css";
import "../index.css";
import { MantineProvider } from "@mantine/core";
import { ViewTransitions } from "next-view-transitions";

View file

@ -1,12 +1,13 @@
import { Box, Container, Title, Text, SimpleGrid } from "@mantine/core";
import { Box, Container, Title, Text, SimpleGrid, Center } from "@mantine/core";
import AlbumCard from "../Components/AlbumCard";
import { albums } from "../lib/list";
export default function HomePage() {
return (
<>
<Box className="min-h-screen bg-gray-900">
<Container size="xl" className="py-12">
<Box className="mb-12 text-center">
<Container size="xl" className="py-16">
<Box className="mb-12 text-center text-pretty">
<Title
order={1}
className="mb-4 bg-linear-to-r from-purple-400 to-pink-400 bg-clip-text text-6xl font-bold text-transparent"
@ -14,7 +15,8 @@ export default function HomePage() {
Linkin Park Albums
</Title>
<Text size="xl" className="text-gray-400">
Explore the complete discography of Linkin Park
On this website you can find all the albums of Linkin Park. Their new Live Versions with Emily made by fans and
the official Live Versions from the Linkin Park Youtube Channel.
</Text>
</Box>
@ -25,5 +27,17 @@ export default function HomePage() {
</SimpleGrid>
</Container>
</Box>
<Box className="bg-gray-900 pb-12">
<Center>
<Text size="sm" className="text-gray-400">
Disclaimer: This website is not affiliated with Linkin Park or any of its members. <br />
All rights reserved to the respective owners. This website is a fan-made project and is not intended to be used
for commercial purposes.
<br />
The Album Covers are the property of the respective owners.
</Text>
</Center>
</Box>
</>
);
}

View file

@ -1,11 +1,15 @@
@layer theme, base, mantine, components, utilities;
@import "tailwindcss";
/* Dark mode base - prevent white flash */
@import "@mantine/core/styles.layer.css";
/* Dark mode base - prevent white flash
* {
border-color: #1f2937;
}
} */
html {
/* html {
background-color: #111827;
scroll-behavior: smooth;
}
@ -15,7 +19,7 @@ body {
color: white;
margin: 0;
padding: 0;
}
} */
/* Custom scrollbar */
::-webkit-scrollbar {

View file

@ -17,6 +17,11 @@ export type Track = {
location: string;
};
lpTV?: null | {
url: string;
date: string;
};
// this is the spotify url for the album
__SPOTIFY_URL__: string;
};

View file

@ -2,144 +2,133 @@ import type { Album } from "./ListTypes";
export const albums: Album[] = [
{
id: "hybrid-theory",
label: "Hybrid Theory",
releaseDate: "2000-10-24",
image: "/hybrid_theory.jpg",
url: "/hybrid-theory",
id: "minutes-to-midnight",
label: "Minutes to Midnight",
releaseDate: "2007-05-14",
image: "/minutes_to_midnight.jpg",
url: "/minutes-to-midnight",
description:
"Hybrid Theory is the debut studio album by American rock band Linkin Park, released on October 24, 2000, by Warner Bros. Records. It was recorded at The Plant Studios in Sausalito, California, and produced by Don Gilmore. The album was a commercial success, reaching number one on the Billboard 200 chart and selling over 10 million copies in the United States alone.",
"Minutes to Midnight is the third studio album by American rock band Linkin Park, released on May 14, 2007, by Warner Bros. Records. The album marked a departure from the band's previous nu-metal sound, incorporating more alternative rock and experimental elements.",
tracks: [
{
id: "hybrid-theory_1",
label: "Papercut",
duration: "03:04",
studioUrl: null,
emilyLive: [
{
url: "https://youtu.be/miQ9Y5UW08g",
date: "2025-04-26",
location: "Austin, Texas, USA",
author: "Erynn Halvorson",
},
],
lpLive: {
url: "https://www.youtube.com/watch?v=DOKcCl6iKaA",
date: "2024-09-11",
location: "Los Angeles, California, USA",
},
__SPOTIFY_URL__: "https://open.spotify.com/track/4HvcbAR8LisalXKt7cpqE1?si=a736ed41b9e84ff9",
},
{
id: "hybrid-theory_2",
label: "One Step Closer",
duration: "02:35",
id: "minutes-to-midnight_1",
label: "Wake",
duration: "01:40",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/4bYLTrlcqctyHck3fjhMgW?si=dd2c47138fed4c4c",
__SPOTIFY_URL__: "https://open.spotify.com/track/0GkuKdv0osuL9QhfnXqVNP?si=0491e2d35b0a4e12",
},
{
id: "hybrid-theory_3",
label: "With You",
duration: "03:23",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/1Q9QN6dHEDeUegsySY012f?si=d4a1aca393954caa",
},
{
id: "hybrid-theory_4",
label: "Points of Authority",
duration: "03:20",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/214LJVTqrkUOGemWDGHJpr?si=749f11d7cd9a4f56",
},
{
id: "hybrid-theory_5",
label: "Crawling",
duration: "03:29",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0X576XiCW9uEtko6f6VkcU?si=0a47dc1d660b4c71",
},
{
id: "hybrid-theory_6",
label: "Runaway",
duration: "03:03",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/5tkHje8FGSF258gi869GcV?si=f69a7e1ebf0f4f31",
},
{
id: "hybrid-theory_7",
label: "By Myself",
id: "minutes-to-midnight_2",
label: "Given Up",
duration: "03:09",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/4SJoEhpI6C61wtUfxSHMGc?si=4ca78fd74ae74d6f",
__SPOTIFY_URL__: "https://open.spotify.com/track/1fLlRApgzxWweF1JTf8yM5?si=9b22e697bdd640e8",
},
{
id: "hybrid-theory_8",
label: "In the End",
duration: "03:36",
id: "minutes-to-midnight_3",
label: "Leave Out All the Rest",
duration: "03:29",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/7q115ia4fQn9zonjpexWsY?si=1e4cb0fe76244b11",
__SPOTIFY_URL__: "https://open.spotify.com/track/0sp00HSXkQyqTa6QqM0O8V?si=c9ad349e7f164919",
},
{
id: "hybrid-theory_9",
label: "A Place for My Head",
duration: "03:04",
id: "minutes-to-midnight_4",
label: "Bleed It Out",
duration: "02:44",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/1B8WdDScvobpFsZLfdmIE1?si=f1b5b6fe0abb4e23",
__SPOTIFY_URL__: "https://open.spotify.com/track/0UFDKFqW2oGspYeYqo9wjA?si=2f4e310a85674523",
},
{
id: "hybrid-theory_10",
label: "Forgotten",
duration: "03:04",
id: "minutes-to-midnight_5",
label: "Shadow of the Day",
duration: "04:49",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/3JAu2BH8sSI46rJGzQerb6?si=92186e546f0049b9",
__SPOTIFY_URL__: "https://open.spotify.com/track/0OYcEfskah1egYHjYRvbg1?si=e7fe66722b7544d9",
},
{
id: "hybrid-theory_11",
label: "Cure for the Itch",
duration: "02:37",
id: "minutes-to-midnight_6",
label: "What I've Done",
duration: "03:25",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/15voDM9pGkwEvHBUecpcmo?si=0b50fb655a2e4649",
__SPOTIFY_URL__: "https://open.spotify.com/track/18lR4BzEs7e3qzc0KVkTpU?si=f04a6e933aab4ba0",
},
{
id: "hybrid-theory_12",
label: "Pushing Me Away",
duration: "03:11",
id: "minutes-to-midnight_7",
label: "Hands Held High",
duration: "03:53",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/4HlMOXxwF9SYG1RoJxEjio?si=1b9286e4d2c947d3",
__SPOTIFY_URL__: "https://open.spotify.com/track/0m7mTaFGMiKI3rBJpYknip?si=e382b6252c7c427a",
},
{
id: "minutes-to-midnight_8",
label: "No More Sorrow",
duration: "03:41",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/4CWhc9FaMMfBTt4ANjfbOf?si=dd3a00c6453c4737",
},
{
id: "minutes-to-midnight_9",
label: "Valentine's Day",
duration: "03:16",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/2vfshZvISOKy2Je7wQBWOV?si=51d75042da314fa4",
},
{
id: "minutes-to-midnight_10",
label: "In Between",
duration: "03:16",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4?si=3ae5e92155874795",
},
{
id: "minutes-to-midnight_11",
label: "In Pieces",
duration: "03:38",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8?si=983410366a774f68",
},
{
id: "minutes-to-midnight_12",
label: "The Little Things Give You Away",
duration: "06:23",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8?si=679b76c359004769",
},
],
},
@ -284,134 +273,146 @@ export const albums: Album[] = [
},
],
},
{
id: "minutes-to-midnight",
label: "Minutes to Midnight",
releaseDate: "2007-05-14",
image: "/minutes_to_midnight.jpg",
url: "/minutes-to-midnight",
id: "hybrid-theory",
label: "Hybrid Theory",
releaseDate: "2000-10-24",
image: "/hybrid_theory.jpg",
url: "/hybrid-theory",
description:
"Minutes to Midnight is the third studio album by American rock band Linkin Park, released on May 14, 2007, by Warner Bros. Records. The album marked a departure from the band's previous nu-metal sound, incorporating more alternative rock and experimental elements.",
"Hybrid Theory is the debut studio album by American rock band Linkin Park, released on October 24, 2000, by Warner Bros. Records. It was recorded at The Plant Studios in Sausalito, California, and produced by Don Gilmore. The album was a commercial success, reaching number one on the Billboard 200 chart and selling over 10 million copies in the United States alone.",
tracks: [
{
id: "minutes-to-midnight_1",
label: "Wake",
duration: "01:40",
id: "hybrid-theory_1",
label: "Papercut",
duration: "03:04",
studioUrl: null,
emilyLive: [
{
url: "https://youtu.be/miQ9Y5UW08g",
date: "2025-04-26",
location: "Austin, Texas, USA",
author: "Erynn Halvorson",
},
],
lpLive: {
url: "https://www.youtube.com/watch?v=DOKcCl6iKaA",
date: "2024-09-11",
location: "Los Angeles, California, USA",
},
__SPOTIFY_URL__: "https://open.spotify.com/track/4HvcbAR8LisalXKt7cpqE1?si=a736ed41b9e84ff9",
},
{
id: "hybrid-theory_2",
label: "One Step Closer",
duration: "02:35",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0GkuKdv0osuL9QhfnXqVNP?si=0491e2d35b0a4e12",
__SPOTIFY_URL__: "https://open.spotify.com/track/4bYLTrlcqctyHck3fjhMgW?si=dd2c47138fed4c4c",
},
{
id: "minutes-to-midnight_2",
label: "Given Up",
duration: "03:09",
id: "hybrid-theory_3",
label: "With You",
duration: "03:23",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/1fLlRApgzxWweF1JTf8yM5?si=9b22e697bdd640e8",
__SPOTIFY_URL__: "https://open.spotify.com/track/1Q9QN6dHEDeUegsySY012f?si=d4a1aca393954caa",
},
{
id: "minutes-to-midnight_3",
label: "Leave Out All the Rest",
id: "hybrid-theory_4",
label: "Points of Authority",
duration: "03:20",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/214LJVTqrkUOGemWDGHJpr?si=749f11d7cd9a4f56",
},
{
id: "hybrid-theory_5",
label: "Crawling",
duration: "03:29",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0sp00HSXkQyqTa6QqM0O8V?si=c9ad349e7f164919",
__SPOTIFY_URL__: "https://open.spotify.com/track/0X576XiCW9uEtko6f6VkcU?si=0a47dc1d660b4c71",
},
{
id: "minutes-to-midnight_4",
label: "Bleed It Out",
duration: "02:44",
id: "hybrid-theory_6",
label: "Runaway",
duration: "03:03",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0UFDKFqW2oGspYeYqo9wjA?si=2f4e310a85674523",
__SPOTIFY_URL__: "https://open.spotify.com/track/5tkHje8FGSF258gi869GcV?si=f69a7e1ebf0f4f31",
},
{
id: "minutes-to-midnight_5",
label: "Shadow of the Day",
duration: "04:49",
id: "hybrid-theory_7",
label: "By Myself",
duration: "03:09",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0OYcEfskah1egYHjYRvbg1?si=e7fe66722b7544d9",
__SPOTIFY_URL__: "https://open.spotify.com/track/4SJoEhpI6C61wtUfxSHMGc?si=4ca78fd74ae74d6f",
},
{
id: "minutes-to-midnight_6",
label: "What I've Done",
duration: "03:25",
id: "hybrid-theory_8",
label: "In the End",
duration: "03:36",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/18lR4BzEs7e3qzc0KVkTpU?si=f04a6e933aab4ba0",
__SPOTIFY_URL__: "https://open.spotify.com/track/7q115ia4fQn9zonjpexWsY?si=1e4cb0fe76244b11",
},
{
id: "minutes-to-midnight_7",
label: "Hands Held High",
duration: "03:53",
id: "hybrid-theory_9",
label: "A Place for My Head",
duration: "03:04",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/0m7mTaFGMiKI3rBJpYknip?si=e382b6252c7c427a",
__SPOTIFY_URL__: "https://open.spotify.com/track/1B8WdDScvobpFsZLfdmIE1?si=f1b5b6fe0abb4e23",
},
{
id: "minutes-to-midnight_8",
label: "No More Sorrow",
duration: "03:41",
id: "hybrid-theory_10",
label: "Forgotten",
duration: "03:04",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/4CWhc9FaMMfBTt4ANjfbOf?si=dd3a00c6453c4737",
__SPOTIFY_URL__: "https://open.spotify.com/track/3JAu2BH8sSI46rJGzQerb6?si=92186e546f0049b9",
},
{
id: "minutes-to-midnight_9",
label: "Valentine's Day",
duration: "03:16",
id: "hybrid-theory_11",
label: "Cure for the Itch",
duration: "02:37",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/2vfshZvISOKy2Je7wQBWOV?si=51d75042da314fa4",
__SPOTIFY_URL__: "https://open.spotify.com/track/15voDM9pGkwEvHBUecpcmo?si=0b50fb655a2e4649",
},
{
id: "minutes-to-midnight_10",
label: "In Between",
duration: "03:16",
id: "hybrid-theory_12",
label: "Pushing Me Away",
duration: "03:11",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4?si=3ae5e92155874795",
},
{
id: "minutes-to-midnight_11",
label: "In Pieces",
duration: "03:38",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8?si=983410366a774f68",
},
{
id: "minutes-to-midnight_12",
label: "The Little Things Give You Away",
duration: "06:23",
studioUrl: null,
emilyLive: null,
lpLive: null,
__SPOTIFY_URL__: "https://open.spotify.com/track/7jeI6EdY0elPSNz80mAKS8?si=679b76c359004769",
__SPOTIFY_URL__: "https://open.spotify.com/track/4HlMOXxwF9SYG1RoJxEjio?si=1b9286e4d2c947d3",
},
],
},

View file

@ -45,6 +45,7 @@ export interface AlbumTheme {
studio: string;
liveEmily: string;
liveLP: string;
lpTV: string;
};
// Card styling
card: {
@ -95,11 +96,12 @@ const themes: Record<string, AlbumTheme> = {
studio: "#95121d",
liveEmily: "#ec6672",
liveLP: "#8C786C",
lpTV: "#C4729F",
},
card: {
background: "rgba(61, 61, 57, 0.3)",
backgroundHover: "rgba(71, 9, 14, 0.4)",
border: "#3D3D39",
background: "bg-[#3D3D39]/60",
backgroundHover: "hover:bg-[#47090E]/60",
border: "border-[#3D3D39] border-2",
},
},
meteora: {
@ -142,11 +144,12 @@ const themes: Record<string, AlbumTheme> = {
studio: "#8B7B65",
liveEmily: "#bbb0a1",
liveLP: "#9A8B71",
lpTV: "#F9DDFC",
},
card: {
background: "rgba(85, 73, 60, 0.3)",
backgroundHover: "rgba(139, 123, 101, 0.4)",
border: "#55493C",
background: "bg-[#55493C]/60",
backgroundHover: "hover:bg-[#8B7B65]/30",
border: "border-[#55493C]",
},
},
"minutes-to-midnight": {
@ -189,11 +192,12 @@ const themes: Record<string, AlbumTheme> = {
studio: "#77716F",
liveEmily: "#928d8b",
liveLP: "#A09D9C",
lpTV: "#C4729F",
},
card: {
background: "rgba(71, 68, 67, 0.3)",
backgroundHover: "rgba(119, 113, 111, 0.4)",
border: "#474443",
background: "bg-[#474443]/60",
backgroundHover: "hover:bg-[#77716F]/30",
border: "border-[#474443]",
},
},
};