From 595e4e62415bf9a55dbfe241f028e93d1d2a0c58 Mon Sep 17 00:00:00 2001 From: MNAth_ Date: Wed, 21 Feb 2024 22:38:11 +0300 Subject: [PATCH] feat: make the home tv 3D ### Description - New 3D model based on the tv image - Threejs dependency addition - Old channel reception effect - Channel & volume controls - 3D Responsive based on the viewport --- app/components/ui/cathode-tv.svelte | 456 ++++++++++++++++++++++++++++ app/main.ts | 1 + layouts/home.html | 16 +- package-lock.json | 86 ++++++ package.json | 2 + static/3d/tv.glb | Bin 0 -> 53052 bytes 6 files changed, 547 insertions(+), 14 deletions(-) create mode 100644 app/components/ui/cathode-tv.svelte create mode 100644 static/3d/tv.glb diff --git a/app/components/ui/cathode-tv.svelte b/app/components/ui/cathode-tv.svelte new file mode 100644 index 000000000..59f982dce --- /dev/null +++ b/app/components/ui/cathode-tv.svelte @@ -0,0 +1,456 @@ + + + + +
+ + + -
- - + @@ -116,7 +104,7 @@

L - + diff --git a/package-lock.json b/package-lock.json index 412fdbc59..2974bf699 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@sveltejs/vite-plugin-svelte": "^1.0.1", "@tailwindcss/typography": "^0.5.4", "@tsconfig/svelte": "^2.0.1", + "@types/three": "^0.161.0", "@types/vimeo__player": "^2.16.3", "@types/youtube-player": "^5.5.6", "@typescript-eslint/eslint-plugin": "^5.36.2", @@ -32,6 +33,7 @@ "svelte-check": "^2.2.7", "svelte-preprocess": "^4.10.7", "tailwindcss": "^3.1.8", + "three": "^0.161.0", "tslib": "^2.3.1", "typescript": "^4.5.4", "vite": "^3.0.5", @@ -2978,12 +2980,36 @@ "@types/node": "*" } }, + "node_modules/@types/stats.js": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true + }, + "node_modules/@types/three": { + "version": "0.161.2", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.161.2.tgz", + "integrity": "sha512-DazpZ+cIfBzbW/p0zm6G8CS03HBMd748A3R1ZOXHpqaXZLv2I5zNgQUrRG//UfJ6zYFp2cUoCQaOLaz8ubH07w==", + "dev": true, + "dependencies": { + "@types/stats.js": "*", + "@types/webxr": "*", + "fflate": "~0.6.10", + "meshoptimizer": "~0.18.1" + } + }, "node_modules/@types/vimeo__player": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/@types/vimeo__player/-/vimeo__player-2.16.3.tgz", "integrity": "sha512-hsOe6CZFTNyfjRjQUrNHBF4LDmjvjcU2yQIPWp5AglKeGxt11JYGToQhKUPM876gBXggqR6rMQ0/sNI06ec2Rg==", "dev": true }, + "node_modules/@types/webxr": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.14.tgz", + "integrity": "sha512-UEMMm/Xn3DtEa+gpzUrOcDj+SJS1tk5YodjwOxcqStNhCfPcwgyC5Srg2ToVKyg2Fhq16Ffpb0UWUQHqoT9AMA==", + "dev": true + }, "node_modules/@types/youtube-player": { "version": "5.5.6", "resolved": "https://registry.npmjs.org/@types/youtube-player/-/youtube-player-5.5.6.tgz", @@ -4769,6 +4795,12 @@ "node": ">=0.8.0" } }, + "node_modules/fflate": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz", + "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==", + "dev": true + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -13344,6 +13376,12 @@ "node": ">= 8" } }, + "node_modules/meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "dev": true + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -14560,6 +14598,12 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/three": { + "version": "0.161.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.161.0.tgz", + "integrity": "sha512-LC28VFtjbOyEu5b93K0bNRLw1rQlMJ85lilKsYj6dgTu+7i17W+JCCEbvrpmNHF1F3NAUqDSWq50UD7w9H2xQw==", + "dev": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -17293,12 +17337,36 @@ "@types/node": "*" } }, + "@types/stats.js": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "dev": true + }, + "@types/three": { + "version": "0.161.2", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.161.2.tgz", + "integrity": "sha512-DazpZ+cIfBzbW/p0zm6G8CS03HBMd748A3R1ZOXHpqaXZLv2I5zNgQUrRG//UfJ6zYFp2cUoCQaOLaz8ubH07w==", + "dev": true, + "requires": { + "@types/stats.js": "*", + "@types/webxr": "*", + "fflate": "~0.6.10", + "meshoptimizer": "~0.18.1" + } + }, "@types/vimeo__player": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/@types/vimeo__player/-/vimeo__player-2.16.3.tgz", "integrity": "sha512-hsOe6CZFTNyfjRjQUrNHBF4LDmjvjcU2yQIPWp5AglKeGxt11JYGToQhKUPM876gBXggqR6rMQ0/sNI06ec2Rg==", "dev": true }, + "@types/webxr": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.14.tgz", + "integrity": "sha512-UEMMm/Xn3DtEa+gpzUrOcDj+SJS1tk5YodjwOxcqStNhCfPcwgyC5Srg2ToVKyg2Fhq16Ffpb0UWUQHqoT9AMA==", + "dev": true + }, "@types/youtube-player": { "version": "5.5.6", "resolved": "https://registry.npmjs.org/@types/youtube-player/-/youtube-player-5.5.6.tgz", @@ -18498,6 +18566,12 @@ "websocket-driver": ">=0.5.1" } }, + "fflate": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz", + "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==", + "dev": true + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -25372,6 +25446,12 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, + "meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "dev": true + }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -26208,6 +26288,12 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "three": { + "version": "0.161.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.161.0.tgz", + "integrity": "sha512-LC28VFtjbOyEu5b93K0bNRLw1rQlMJ85lilKsYj6dgTu+7i17W+JCCEbvrpmNHF1F3NAUqDSWq50UD7w9H2xQw==", + "dev": true + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", diff --git a/package.json b/package.json index af6ec5ffc..b6183591b 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@sveltejs/vite-plugin-svelte": "^1.0.1", "@tailwindcss/typography": "^0.5.4", "@tsconfig/svelte": "^2.0.1", + "@types/three": "^0.161.0", "@types/vimeo__player": "^2.16.3", "@types/youtube-player": "^5.5.6", "@typescript-eslint/eslint-plugin": "^5.36.2", @@ -42,6 +43,7 @@ "svelte-check": "^2.2.7", "svelte-preprocess": "^4.10.7", "tailwindcss": "^3.1.8", + "three": "^0.161.0", "tslib": "^2.3.1", "typescript": "^4.5.4", "vite": "^3.0.5", diff --git a/static/3d/tv.glb b/static/3d/tv.glb new file mode 100644 index 0000000000000000000000000000000000000000..1fa7add6d7dffcbbf7932cf5341d19ae9a0b7ed1 GIT binary patch literal 53052 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 literal 0 HcmV?d00001