mirror of
https://github.com/M4X809/list-of-lp.git
synced 2025-12-25 19:12:48 +00:00
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:
parent
1fe8d9850f
commit
23b8d363ec
11 changed files with 374 additions and 208 deletions
94
bun.lock
94
bun.lock
|
|
@ -10,13 +10,15 @@
|
||||||
"@mantine/carousel": "^8.3.5",
|
"@mantine/carousel": "^8.3.5",
|
||||||
"@mantine/core": "^8.3.5",
|
"@mantine/core": "^8.3.5",
|
||||||
"@mantine/hooks": "^8.3.5",
|
"@mantine/hooks": "^8.3.5",
|
||||||
|
"@tailwindcss/postcss": "^4.1.16",
|
||||||
"embla-carousel": "^8.5.2",
|
"embla-carousel": "^8.5.2",
|
||||||
"embla-carousel-react": "^8.5.2",
|
"embla-carousel-react": "^8.5.2",
|
||||||
"next": "^16.0.0",
|
"next": "^16.0.0",
|
||||||
"next-view-transitions": "^0.3.4",
|
"next-view-transitions": "^0.3.4",
|
||||||
"react": "^19.2.0",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
"tailwindcss": "^4.1.15",
|
"tailwind-merge": "^3.3.1",
|
||||||
|
"tailwindcss": "^4.1.16",
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.36.0",
|
"@eslint/js": "^9.36.0",
|
||||||
|
|
@ -39,6 +41,8 @@
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"packages": {
|
"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-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=="],
|
"@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=="],
|
"@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/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=="],
|
"@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=="],
|
"@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/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=="],
|
"@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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="],
|
||||||
|
|
||||||
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"@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/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=="],
|
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,15 @@
|
||||||
"@mantine/carousel": "^8.3.5",
|
"@mantine/carousel": "^8.3.5",
|
||||||
"@mantine/core": "^8.3.5",
|
"@mantine/core": "^8.3.5",
|
||||||
"@mantine/hooks": "^8.3.5",
|
"@mantine/hooks": "^8.3.5",
|
||||||
|
"@tailwindcss/postcss": "^4.1.16",
|
||||||
"embla-carousel": "^8.5.2",
|
"embla-carousel": "^8.5.2",
|
||||||
"embla-carousel-react": "^8.5.2",
|
"embla-carousel-react": "^8.5.2",
|
||||||
"next": "^16.0.0",
|
"next": "^16.0.0",
|
||||||
"next-view-transitions": "^0.3.4",
|
"next-view-transitions": "^0.3.4",
|
||||||
"react": "^19.2.0",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
"tailwindcss": "^4.1.15"
|
"tailwind-merge": "^3.3.1",
|
||||||
|
"tailwindcss": "^4.1.16"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.36.0",
|
"@eslint/js": "^9.36.0",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
|
"@tailwindcss/postcss": {},
|
||||||
"postcss-preset-mantine": {},
|
"postcss-preset-mantine": {},
|
||||||
"postcss-simple-vars": {
|
"postcss-simple-vars": {
|
||||||
variables: {
|
variables: {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { useState } from "react";
|
||||||
import type { AlbumTheme } from "@/lib/themes";
|
import type { AlbumTheme } from "@/lib/themes";
|
||||||
import type { Track } from "@/lib/ListTypes";
|
import type { Track } from "@/lib/ListTypes";
|
||||||
import TrackModal from "./TrackModal";
|
import TrackModal from "./TrackModal";
|
||||||
|
import { twMerge } from "tailwind-merge";
|
||||||
|
|
||||||
interface TrackCardProps {
|
interface TrackCardProps {
|
||||||
track: Track;
|
track: Track;
|
||||||
|
|
@ -13,23 +14,19 @@ interface TrackCardProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
||||||
const [isHovered, setIsHovered] = useState(false);
|
|
||||||
const [modalOpened, setModalOpened] = useState(false);
|
const [modalOpened, setModalOpened] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Card
|
<Card
|
||||||
onClick={() => setModalOpened(true)}
|
onClick={() => setModalOpened(true)}
|
||||||
className="backdrop-blur-sm transition-all duration-300"
|
className={twMerge(
|
||||||
style={{
|
"transition-all duration-300 hover:scale-105 hover:cursor-pointer hover:shadow-lg",
|
||||||
background: isHovered ? theme.card.backgroundHover : theme.card.background,
|
theme.card.background,
|
||||||
border: `1px solid ${isHovered ? theme.border.light : theme.card.border}`,
|
theme.card.backgroundHover,
|
||||||
cursor: "pointer",
|
theme.card.border,
|
||||||
// transform: isHovered ? "translateY(-2px)" : "translateY(0)",
|
)}
|
||||||
boxShadow: isHovered ? `0 8px 24px ${theme.primary.DEFAULT}30` : "none",
|
style={{}}
|
||||||
}}
|
|
||||||
onMouseEnter={() => setIsHovered(true)}
|
|
||||||
onMouseLeave={() => setIsHovered(false)}
|
|
||||||
>
|
>
|
||||||
<Group justify="space-between" align="center">
|
<Group justify="space-between" align="center">
|
||||||
<Group gap="md">
|
<Group gap="md">
|
||||||
|
|
@ -93,6 +90,18 @@ export default function TrackCard({ track, index, theme }: TrackCardProps) {
|
||||||
LP Live
|
LP Live
|
||||||
</Badge>
|
</Badge>
|
||||||
)}
|
)}
|
||||||
|
{track.lpTV && (
|
||||||
|
<Badge
|
||||||
|
size="sm"
|
||||||
|
variant="filled"
|
||||||
|
style={{
|
||||||
|
background: theme.badges.lpTV,
|
||||||
|
color: theme.text.contrast,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
LP TV
|
||||||
|
</Badge>
|
||||||
|
)}
|
||||||
</Group>
|
</Group>
|
||||||
<Text
|
<Text
|
||||||
size="sm"
|
size="sm"
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,43 @@ export default function TrackModal({ opened, onClose, track, theme }: TrackModal
|
||||||
</Group>
|
</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>
|
</Stack>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import "@mantine/core/styles.css";
|
|
||||||
import "../index.css";
|
import "../index.css";
|
||||||
import { MantineProvider } from "@mantine/core";
|
import { MantineProvider } from "@mantine/core";
|
||||||
import { ViewTransitions } from "next-view-transitions";
|
import { ViewTransitions } from "next-view-transitions";
|
||||||
|
|
|
||||||
|
|
@ -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 AlbumCard from "../Components/AlbumCard";
|
||||||
import { albums } from "../lib/list";
|
import { albums } from "../lib/list";
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
return (
|
return (
|
||||||
|
<>
|
||||||
<Box className="min-h-screen bg-gray-900">
|
<Box className="min-h-screen bg-gray-900">
|
||||||
<Container size="xl" className="py-12">
|
<Container size="xl" className="py-16">
|
||||||
<Box className="mb-12 text-center">
|
<Box className="mb-12 text-center text-pretty">
|
||||||
<Title
|
<Title
|
||||||
order={1}
|
order={1}
|
||||||
className="mb-4 bg-linear-to-r from-purple-400 to-pink-400 bg-clip-text text-6xl font-bold text-transparent"
|
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
|
Linkin Park Albums
|
||||||
</Title>
|
</Title>
|
||||||
<Text size="xl" className="text-gray-400">
|
<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>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
|
@ -25,5 +27,17 @@ export default function HomePage() {
|
||||||
</SimpleGrid>
|
</SimpleGrid>
|
||||||
</Container>
|
</Container>
|
||||||
</Box>
|
</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>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
|
@layer theme, base, mantine, components, utilities;
|
||||||
|
|
||||||
@import "tailwindcss";
|
@import "tailwindcss";
|
||||||
|
|
||||||
/* Dark mode base - prevent white flash */
|
@import "@mantine/core/styles.layer.css";
|
||||||
|
|
||||||
|
/* Dark mode base - prevent white flash
|
||||||
* {
|
* {
|
||||||
border-color: #1f2937;
|
border-color: #1f2937;
|
||||||
}
|
} */
|
||||||
|
|
||||||
html {
|
/* html {
|
||||||
background-color: #111827;
|
background-color: #111827;
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
@ -15,7 +19,7 @@ body {
|
||||||
color: white;
|
color: white;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
} */
|
||||||
|
|
||||||
/* Custom scrollbar */
|
/* Custom scrollbar */
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,11 @@ export type Track = {
|
||||||
location: string;
|
location: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lpTV?: null | {
|
||||||
|
url: string;
|
||||||
|
date: string;
|
||||||
|
};
|
||||||
|
|
||||||
// this is the spotify url for the album
|
// this is the spotify url for the album
|
||||||
__SPOTIFY_URL__: string;
|
__SPOTIFY_URL__: string;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
319
src/lib/list.ts
319
src/lib/list.ts
|
|
@ -2,144 +2,133 @@ import type { Album } from "./ListTypes";
|
||||||
|
|
||||||
export const albums: Album[] = [
|
export const albums: Album[] = [
|
||||||
{
|
{
|
||||||
id: "hybrid-theory",
|
id: "minutes-to-midnight",
|
||||||
label: "Hybrid Theory",
|
label: "Minutes to Midnight",
|
||||||
releaseDate: "2000-10-24",
|
releaseDate: "2007-05-14",
|
||||||
image: "/hybrid_theory.jpg",
|
image: "/minutes_to_midnight.jpg",
|
||||||
url: "/hybrid-theory",
|
url: "/minutes-to-midnight",
|
||||||
description:
|
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: [
|
tracks: [
|
||||||
{
|
{
|
||||||
id: "hybrid-theory_1",
|
id: "minutes-to-midnight_1",
|
||||||
label: "Papercut",
|
label: "Wake",
|
||||||
duration: "03:04",
|
duration: "01:40",
|
||||||
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,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_2",
|
||||||
label: "With You",
|
label: "Given Up",
|
||||||
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",
|
|
||||||
duration: "03:09",
|
duration: "03:09",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_3",
|
||||||
label: "In the End",
|
label: "Leave Out All the Rest",
|
||||||
duration: "03:36",
|
duration: "03:29",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_4",
|
||||||
label: "A Place for My Head",
|
label: "Bleed It Out",
|
||||||
duration: "03:04",
|
duration: "02:44",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_5",
|
||||||
label: "Forgotten",
|
label: "Shadow of the Day",
|
||||||
duration: "03:04",
|
duration: "04:49",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_6",
|
||||||
label: "Cure for the Itch",
|
label: "What I've Done",
|
||||||
duration: "02:37",
|
duration: "03:25",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "minutes-to-midnight_7",
|
||||||
label: "Pushing Me Away",
|
label: "Hands Held High",
|
||||||
duration: "03:11",
|
duration: "03:53",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory",
|
||||||
label: "Minutes to Midnight",
|
label: "Hybrid Theory",
|
||||||
releaseDate: "2007-05-14",
|
releaseDate: "2000-10-24",
|
||||||
image: "/minutes_to_midnight.jpg",
|
image: "/hybrid_theory.jpg",
|
||||||
url: "/minutes-to-midnight",
|
url: "/hybrid-theory",
|
||||||
description:
|
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: [
|
tracks: [
|
||||||
{
|
{
|
||||||
id: "minutes-to-midnight_1",
|
id: "hybrid-theory_1",
|
||||||
label: "Wake",
|
label: "Papercut",
|
||||||
duration: "01:40",
|
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,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_3",
|
||||||
label: "Given Up",
|
label: "With You",
|
||||||
duration: "03:09",
|
duration: "03:23",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_4",
|
||||||
label: "Leave Out All the Rest",
|
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",
|
duration: "03:29",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_6",
|
||||||
label: "Bleed It Out",
|
label: "Runaway",
|
||||||
duration: "02:44",
|
duration: "03:03",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_7",
|
||||||
label: "Shadow of the Day",
|
label: "By Myself",
|
||||||
duration: "04:49",
|
duration: "03:09",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_8",
|
||||||
label: "What I've Done",
|
label: "In the End",
|
||||||
duration: "03:25",
|
duration: "03:36",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_9",
|
||||||
label: "Hands Held High",
|
label: "A Place for My Head",
|
||||||
duration: "03:53",
|
duration: "03:04",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_10",
|
||||||
label: "No More Sorrow",
|
label: "Forgotten",
|
||||||
duration: "03:41",
|
duration: "03:04",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_11",
|
||||||
label: "Valentine's Day",
|
label: "Cure for the Itch",
|
||||||
duration: "03:16",
|
duration: "02:37",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: 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",
|
id: "hybrid-theory_12",
|
||||||
label: "In Between",
|
label: "Pushing Me Away",
|
||||||
duration: "03:16",
|
duration: "03:11",
|
||||||
studioUrl: null,
|
studioUrl: null,
|
||||||
emilyLive: null,
|
emilyLive: null,
|
||||||
lpLive: null,
|
lpLive: null,
|
||||||
|
|
||||||
__SPOTIFY_URL__: "https://open.spotify.com/track/2ysXuQd8uOfSMZcMRR5Ux4?si=3ae5e92155874795",
|
__SPOTIFY_URL__: "https://open.spotify.com/track/4HlMOXxwF9SYG1RoJxEjio?si=1b9286e4d2c947d3",
|
||||||
},
|
|
||||||
{
|
|
||||||
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",
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ export interface AlbumTheme {
|
||||||
studio: string;
|
studio: string;
|
||||||
liveEmily: string;
|
liveEmily: string;
|
||||||
liveLP: string;
|
liveLP: string;
|
||||||
|
lpTV: string;
|
||||||
};
|
};
|
||||||
// Card styling
|
// Card styling
|
||||||
card: {
|
card: {
|
||||||
|
|
@ -95,11 +96,12 @@ const themes: Record<string, AlbumTheme> = {
|
||||||
studio: "#95121d",
|
studio: "#95121d",
|
||||||
liveEmily: "#ec6672",
|
liveEmily: "#ec6672",
|
||||||
liveLP: "#8C786C",
|
liveLP: "#8C786C",
|
||||||
|
lpTV: "#C4729F",
|
||||||
},
|
},
|
||||||
card: {
|
card: {
|
||||||
background: "rgba(61, 61, 57, 0.3)",
|
background: "bg-[#3D3D39]/60",
|
||||||
backgroundHover: "rgba(71, 9, 14, 0.4)",
|
backgroundHover: "hover:bg-[#47090E]/60",
|
||||||
border: "#3D3D39",
|
border: "border-[#3D3D39] border-2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
meteora: {
|
meteora: {
|
||||||
|
|
@ -142,11 +144,12 @@ const themes: Record<string, AlbumTheme> = {
|
||||||
studio: "#8B7B65",
|
studio: "#8B7B65",
|
||||||
liveEmily: "#bbb0a1",
|
liveEmily: "#bbb0a1",
|
||||||
liveLP: "#9A8B71",
|
liveLP: "#9A8B71",
|
||||||
|
lpTV: "#F9DDFC",
|
||||||
},
|
},
|
||||||
card: {
|
card: {
|
||||||
background: "rgba(85, 73, 60, 0.3)",
|
background: "bg-[#55493C]/60",
|
||||||
backgroundHover: "rgba(139, 123, 101, 0.4)",
|
backgroundHover: "hover:bg-[#8B7B65]/30",
|
||||||
border: "#55493C",
|
border: "border-[#55493C]",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"minutes-to-midnight": {
|
"minutes-to-midnight": {
|
||||||
|
|
@ -189,11 +192,12 @@ const themes: Record<string, AlbumTheme> = {
|
||||||
studio: "#77716F",
|
studio: "#77716F",
|
||||||
liveEmily: "#928d8b",
|
liveEmily: "#928d8b",
|
||||||
liveLP: "#A09D9C",
|
liveLP: "#A09D9C",
|
||||||
|
lpTV: "#C4729F",
|
||||||
},
|
},
|
||||||
card: {
|
card: {
|
||||||
background: "rgba(71, 68, 67, 0.3)",
|
background: "bg-[#474443]/60",
|
||||||
backgroundHover: "rgba(119, 113, 111, 0.4)",
|
backgroundHover: "hover:bg-[#77716F]/30",
|
||||||
border: "#474443",
|
border: "border-[#474443]",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue