From cca4f5516690629d1b5ed39b75e8465efc876ada Mon Sep 17 00:00:00 2001 From: Mihkel Martin Kasterpalu Date: Tue, 21 Jan 2025 15:22:19 +0200 Subject: [PATCH] Add favicon, font, tweak styles --- package.json | 2 + pnpm-lock.yaml | 20 +++++ src/app.html | 7 +- src/lib/components/DNDGroup.svelte | 16 ++-- src/lib/server/Spotify.svelte.ts | 1 - src/routes/+layout.svelte | 37 +++++++-- src/routes/+page.svelte | 18 ++--- static/apple-touch-icon.png | Bin 0 -> 2411 bytes static/favicon-96x96.png | Bin 0 -> 1788 bytes static/favicon.ico | Bin 0 -> 15086 bytes static/favicon.png | Bin 1571 -> 0 bytes static/favicon.svg | 18 +++++ static/site.webmanifest | 21 +++++ static/web-app-manifest-192x192.png | Bin 0 -> 3367 bytes static/web-app-manifest-512x512.png | Bin 0 -> 10455 bytes tailwind.config.ts | 115 ++++++++++++++-------------- 16 files changed, 175 insertions(+), 80 deletions(-) create mode 100644 static/apple-touch-icon.png create mode 100644 static/favicon-96x96.png create mode 100644 static/favicon.ico delete mode 100644 static/favicon.png create mode 100644 static/favicon.svg create mode 100644 static/site.webmanifest create mode 100644 static/web-app-manifest-192x192.png create mode 100644 static/web-app-manifest-512x512.png diff --git a/package.json b/package.json index 10abf00..e7cb899 100644 --- a/package.json +++ b/package.json @@ -48,9 +48,11 @@ "vite": "^5.4.11" }, "dependencies": { + "@fontsource-variable/smooch-sans": "^5.1.1", "better-sqlite3": "^11.8.0", "drizzle-orm": "^0.38.4", "lucide-svelte": "^0.473.0", + "mode-watcher": "^0.5.0", "nanoid": "^5.0.9", "spotify-web-api-node": "^5.0.2", "svelte-kit-sessions": "^0.4.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4648f13..9d5c651 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@fontsource-variable/smooch-sans': + specifier: ^5.1.1 + version: 5.1.1 better-sqlite3: specifier: ^11.8.0 version: 11.8.1 @@ -17,6 +20,9 @@ importers: lucide-svelte: specifier: ^0.473.0 version: 0.473.0(svelte@5.19.0) + mode-watcher: + specifier: ^0.5.0 + version: 0.5.0(svelte@5.19.0) nanoid: specifier: ^5.0.9 version: 5.0.9 @@ -599,6 +605,9 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@fontsource-variable/smooch-sans@5.1.1': + resolution: {integrity: sha512-ADcY3Pjkvu74x4T+p2gNIo8Ba7DGrX1IhQgJFefztWB8Tf5nX7Qb+tqAbtW7O/KYWJi4EjzrxCefHBM1PfOOsg==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -1692,6 +1701,11 @@ packages: mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mode-watcher@0.5.0: + resolution: {integrity: sha512-5E6fh/aXhAVv+U+DbeM0hCmskQE9u7WSmvnCRijJB/MJu7HtB73sjiCaZ9n1M8QHmzLrBFo8XBAUcWXkDm8Z9A==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.1 + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -2612,6 +2626,8 @@ snapshots: '@floating-ui/utils@0.2.9': {} + '@fontsource-variable/smooch-sans@5.1.1': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -3644,6 +3660,10 @@ snapshots: mkdirp-classic@0.5.3: {} + mode-watcher@0.5.0(svelte@5.19.0): + dependencies: + svelte: 5.19.0 + mri@1.2.0: {} mrmime@2.0.0: {} diff --git a/src/app.html b/src/app.html index 77a5ff5..c2d3729 100644 --- a/src/app.html +++ b/src/app.html @@ -2,8 +2,13 @@ - + + + + + + %sveltekit.head% diff --git a/src/lib/components/DNDGroup.svelte b/src/lib/components/DNDGroup.svelte index 85a7fdd..c0e3ed8 100644 --- a/src/lib/components/DNDGroup.svelte +++ b/src/lib/components/DNDGroup.svelte @@ -26,17 +26,17 @@ }} onconsider={handleDndConsider} onfinalize={handleDndFinalize} - class="grid grid-cols-3 items-center gap-14" + class="grid grid-cols-3 items-center gap-4 sm:gap-8 md:gap-10 lg:gap-14" > {#each items as item, i (item.id)}
{#if image} @@ -45,7 +45,13 @@ {:else} -

+

{#if type === 'artists'} {truncate(item.value, 30)} {:else} diff --git a/src/lib/server/Spotify.svelte.ts b/src/lib/server/Spotify.svelte.ts index 67a38ef..84445e7 100644 --- a/src/lib/server/Spotify.svelte.ts +++ b/src/lib/server/Spotify.svelte.ts @@ -17,7 +17,6 @@ class SpotifyAPI { return await this.api.clientCredentialsGrant().then( (data) => { - console.log(data.body); if (!data.body['expires_in'] || !data.body['access_token']) { return false; } diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 8f1cac1..d8842cd 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,14 +1,39 @@ -

-
-

Paku biiti

-

- Lohista kokku õiged albumi nimed, - artistid ja pildid. + + +

+ + Mihkel Martin Kasterpalu logo + + +
+ +
+
+

Paku biiti

+

+ Lohista kokku õiged albumi nimed, + artistid ja + pildid.

diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 24861ec..d1994ab 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -30,17 +30,17 @@ {#snippet footer(loading: boolean)} -
-

Skoor: {data.stage}

+
+

Skoor: {data.stage}

{#if loading} - {:else} - + {/if} -

Parim: {data.highscore}

+

Parim: {data.highscore}

{/snippet} @@ -74,16 +74,14 @@ action="?/submit" method="POST" use:enhance - class="grid w-full gap-6 px-8 transition-all {loading || data?.playing === false - ? 'grayscale' - : ''}" + class="grid w-full gap-6 transition-all {loading || data?.playing === false ? 'grayscale' : ''}" > {#if data?.streamed?.albums} {#await data.streamed.albums} {#each { length: 2 } as _}
{#each { length: 3 } as _} - + {/each}
diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..414c3e2cec91dbc0b933384d8faefe0f16cf8ae7 GIT binary patch literal 2411 zcmV-x36%DUP);000RxNkl@`E$6SOs=IEHbmns;J&y-6gmitEVsITd+~CkWd|5=u@-)Tu ziB%^5JoaMQeVF1=SS2JU0UQl3mz%3ijd%_K65=w^9ta+Sh-C`Ppo6!(KyncvLDF)U zJ*uDuoRJ@l(77N-qL0Ov^i)XpyV#rOlKn9~gKOn>>42Eki-=;Y{a_Z1_8L+w7U1J9J@SB-`ZdUSJ^c2@Hixmx z3!T+}m5QU^4DXBFA!zJIUG_e1x3LY-~CieWGG#d!Z z%UUOd76mSk2eNknKYslkX(lkcCTg@O)~JqB-9N^pow~_ zy2Ah?5EvuPs*7+atVW1o(^O5KhJqVie&#Df&Vm1t3bncX_lyRlsr*R_7^^L`$SwE( z=j&9Rs#A5UPSvS8RSR4khDUPhjfdeUmss@~gs>A*KZh{CV$<|gx<)%Qc>6dnBCF9=UeXSJf)-+kF_ZnN4+eG($1=q`rMKqoaMQ0fkw zv8`6uA;Dr0*BvxtQmvkXgbJnZNrX_VA>$xJybS?EweC;s6_xrXq`ap0rP-89eGXEp z6!;HB?p3KDf|L(Y#D<7Uoq-(6h^Iybb;?LY{as2)LY<|Y1k_*z`syJ>P-6tz>PbX! zk}fp{(N)g^z<_c`Ah`9^8?E=0wTVb|Iods@QqwUvxqbpZHhiz>HzM3iYIT8rwn}Jm z!Y^8MBHNqP7dGoj(^gjMTIN}L?*LJwa(HgiaZWkyk(vXhN2L!W}BI{US#Deh3YIZ5WMsj8Me|_qn3{YShFvy-ZjpnqQEK<98a!B){(1^2h>r`NkBE&7@=nWxR zpuSuggO5Q9tO9Pf_Ls3IdU74nTAQ25Mx1K*QDs(C$@&{jFj?$P=~fHb%4D4BgUieh zpv^r$rH@x0Qruy`$I(mhaquT>aqSqS-2ZAnL~|T|GArt9A)D-r=rtge9i5CT?2l+3 zgDwZJvR|TKf+nB5$-ar^IJ7vl!yZNNG}wvy2y~bsdlBt@c|KNN+UhPjyU89#lefPP zmybMHed!i`Tp5QJKPGz-t-e$-Qd-#5-ervJu=mmA>)(ViU;N{q-7WUU<1peYH~01y zw=!b$y*J3-M~i1$pX?$@qv*Zb?ZeN$O`1mU$!=%o8YIo5d%oKrIQ<72V;*h3+u8E1 ze!Z*r0zUE7Q&*4YDbK$qI_VKOA4*Tu?=`=cxR**)g(F)S&G+IF# doks6D{|AJl6&f0XTQ>jz002ovPDHLkV1kKHhLQjP literal 0 HcmV?d00001 diff --git a/static/favicon-96x96.png b/static/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c3e4b35f0b0a2702b07905020c3d05265f06a1 GIT binary patch literal 1788 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 + + + + + + + + + + + + diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 0000000..5dbacf6 --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Kasterpalu", + "short_name": "Kasterpalu", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/static/web-app-manifest-192x192.png b/static/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..e773c4bbc4724b8414b6cf1e7cbf355a64f89acc GIT binary patch literal 3367 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 literal 0 HcmV?d00001 diff --git a/static/web-app-manifest-512x512.png b/static/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecdad73dbb68d84bf4254e48f18f016eac9c6bf GIT binary patch literal 10455 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", - input: "hsl(var(--input) / )", - ring: "hsl(var(--ring) / )", - background: "hsl(var(--background) / )", - foreground: "hsl(var(--foreground) / )", + border: 'hsl(var(--border) / )', + input: 'hsl(var(--input) / )', + ring: 'hsl(var(--ring) / )', + background: 'hsl(var(--background) / )', + foreground: 'hsl(var(--foreground) / )', primary: { - DEFAULT: "hsl(var(--primary) / )", - foreground: "hsl(var(--primary-foreground) / )" + DEFAULT: 'hsl(var(--primary) / )', + foreground: 'hsl(var(--primary-foreground) / )' }, secondary: { - DEFAULT: "hsl(var(--secondary) / )", - foreground: "hsl(var(--secondary-foreground) / )" + DEFAULT: 'hsl(var(--secondary) / )', + foreground: 'hsl(var(--secondary-foreground) / )' }, destructive: { - DEFAULT: "hsl(var(--destructive) / )", - foreground: "hsl(var(--destructive-foreground) / )" + DEFAULT: 'hsl(var(--destructive) / )', + foreground: 'hsl(var(--destructive-foreground) / )' }, muted: { - DEFAULT: "hsl(var(--muted) / )", - foreground: "hsl(var(--muted-foreground) / )" + DEFAULT: 'hsl(var(--muted) / )', + foreground: 'hsl(var(--muted-foreground) / )' }, accent: { - DEFAULT: "hsl(var(--accent) / )", - foreground: "hsl(var(--accent-foreground) / )" + DEFAULT: 'hsl(var(--accent) / )', + foreground: 'hsl(var(--accent-foreground) / )' }, popover: { - DEFAULT: "hsl(var(--popover) / )", - foreground: "hsl(var(--popover-foreground) / )" + DEFAULT: 'hsl(var(--popover) / )', + foreground: 'hsl(var(--popover-foreground) / )' }, card: { - DEFAULT: "hsl(var(--card) / )", - foreground: "hsl(var(--card-foreground) / )" + DEFAULT: 'hsl(var(--card) / )', + foreground: 'hsl(var(--card-foreground) / )' }, sidebar: { - DEFAULT: "hsl(var(--sidebar-background))", - foreground: "hsl(var(--sidebar-foreground))", - primary: "hsl(var(--sidebar-primary))", - "primary-foreground": "hsl(var(--sidebar-primary-foreground))", - accent: "hsl(var(--sidebar-accent))", - "accent-foreground": "hsl(var(--sidebar-accent-foreground))", - border: "hsl(var(--sidebar-border))", - ring: "hsl(var(--sidebar-ring))", - }, + DEFAULT: 'hsl(var(--sidebar-background))', + foreground: 'hsl(var(--sidebar-foreground))', + primary: 'hsl(var(--sidebar-primary))', + 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))', + accent: 'hsl(var(--sidebar-accent))', + 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))', + border: 'hsl(var(--sidebar-border))', + ring: 'hsl(var(--sidebar-ring))' + } }, borderRadius: { - xl: "calc(var(--radius) + 4px)", - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)" + xl: 'calc(var(--radius) + 4px)', + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' }, fontFamily: { - sans: [...fontFamily.sans] + sans: [...fontFamily.sans], + title: ['Smooch Sans Variable', ...fontFamily.sans] }, keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--bits-accordion-content-height)" }, + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--bits-accordion-content-height)' } }, - "accordion-up": { - from: { height: "var(--bits-accordion-content-height)" }, - to: { height: "0" }, - }, - "caret-blink": { - "0%,70%,100%": { opacity: "1" }, - "20%,50%": { opacity: "0" }, + 'accordion-up': { + from: { height: 'var(--bits-accordion-content-height)' }, + to: { height: '0' } }, + 'caret-blink': { + '0%,70%,100%': { opacity: '1' }, + '20%,50%': { opacity: '0' } + } }, animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - "caret-blink": "caret-blink 1.25s ease-out infinite", - }, - }, + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + 'caret-blink': 'caret-blink 1.25s ease-out infinite' + } + } }, - plugins: [tailwindcssAnimate], + plugins: [tailwindcssAnimate] }; export default config;