From 812884de1a350d6eaaabe28db387a228ec473618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20T=C3=A4kker?= Date: Tue, 6 Oct 2026 20:52:55 +0200 Subject: [PATCH] Added PWA support --- app/app.vue | 11 + app/layouts/default.vue | 10 +- app/styles/_variables.scss | 2 +- app/styles/global.scss | 6 + bun.lock | 749 ++++++++++++++++++++++++---- nuxt.config.ts | 45 +- package.json | 3 +- public/icons/apple-touch-icon.png | Bin 0 -> 3786 bytes public/icons/pwa-192.png | Bin 0 -> 4037 bytes public/icons/pwa-512.png | Bin 0 -> 11190 bytes public/icons/pwa-maskable-512.png | Bin 0 -> 11190 bytes public/icons/pwa-source.svg | 11 + public/manifest.webmanifest | 30 ++ public/offline.html | 55 ++ public/sw.js | 80 +++ scripts/copy-nitro-public-assets.ts | 13 + 16 files changed, 926 insertions(+), 89 deletions(-) create mode 100644 public/icons/apple-touch-icon.png create mode 100644 public/icons/pwa-192.png create mode 100644 public/icons/pwa-512.png create mode 100644 public/icons/pwa-maskable-512.png create mode 100644 public/icons/pwa-source.svg create mode 100644 public/manifest.webmanifest create mode 100644 public/offline.html create mode 100644 public/sw.js create mode 100644 scripts/copy-nitro-public-assets.ts diff --git a/app/app.vue b/app/app.vue index 8b7ffca..e255f64 100644 --- a/app/app.vue +++ b/app/app.vue @@ -3,6 +3,16 @@ const { currentSong, isPlaying } = usePlayer() const debugView = useCookie("DEBUG_VIEW") const debugViewEnabled = computed(() => String(debugView.value ?? "") === "1") +useHead({ + meta: [ + { name: "theme-color", content: "#09090b" }, + { name: "viewport", content: "width=device-width, initial-scale=1, viewport-fit=cover" }, + { name: "apple-mobile-web-app-capable", content: "yes" }, + { name: "apple-mobile-web-app-status-bar-style", content: "black-translucent" }, + ], + link: [{ rel: "apple-touch-icon", href: "/icons/apple-touch-icon.png" }], +}) + useHead( computed(() => ({ titleTemplate: @@ -14,6 +24,7 @@ useHead(