Files
bookorbit/client/public/pwa-icon-source.svg
T
neon 22ac06ecd7 feat(client): add PWA support with installability and cover caching
Add vite-plugin-pwa with Workbox in generateSW mode. Includes a web app
manifest (standalone display, shortcuts for Dashboard/Libraries/Settings),
iOS meta tags, and a service worker that pre-caches the app shell and uses
CacheFirst for book cover and thumbnail endpoints (max 200 entries, 30-day TTL).

Add useInstallPrompt composable that captures the beforeinstallprompt event
and exposes isInstallable/installApp. Wire an install button into SidebarFooter
that appears only when the browser signals the app is installable.

Generate PWA icons (64, 192, 512, maskable-512, apple-touch-icon-180) from a
new pwa-icon-source.svg using @vite-pwa/assets-generator with minimal2023Preset.
Add dev-dist to .gitignore to exclude the dev-mode SW output.
2026-05-12 20:53:21 +00:00

26 lines
938 B
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#2c2c22"/>
<stop offset="100%" stop-color="#1a1a10"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="96" fill="url(#bg)"/>
<!-- Orbit icon (Lucide), 24x24 viewBox scaled to fill ~252x252 of safe zone, centered -->
<!-- transform: scale(14), translate(88,88) => visual extent ~130-382 per axis -->
<g
transform="translate(88, 88) scale(14)"
fill="none"
stroke="rgba(255,255,255,0.9)"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20.341 6.484A10 10 0 0 1 10.266 21.85"/>
<path d="M3.659 17.516A10 10 0 0 1 13.74 2.152"/>
<circle cx="12" cy="12" r="3"/>
<circle cx="19" cy="5" r="2"/>
<circle cx="5" cy="19" r="2"/>
</g>
</svg>