Name each install, fix the notification badge, switch to Archivo

- Settings > General: an App name (super admin) for the installed app.
  The manifest's name/short_name, the iOS head tags and the loading
  page's title use it, so two installs on one phone can be told apart.
- Notifications get a real badge (white stone silhouette): Android masks
  the badge by alpha, so the opaque app icon showed as a square.
- The loading and offline pages load the app's font.
- The font is now Archivo (variable, one request for every weight),
  matching the marketing site.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-25 10:17:40 +01:00
co-authored by Claude Opus 5.5
parent 89c4e26d06
commit 3b7c05bfa0
23 changed files with 440 additions and 16 deletions
+20
View File
@@ -90,3 +90,23 @@ export const PwaIconPath = (name: `icon` | `maskable`, size: number) =>
*/
export const PwaManifestName = SiteData["SiteName"];
export const PwaShortName = SiteData["SiteName"];
/**
* A notification's `badge`: the stone's white silhouette, since Android
* draws only its alpha. `public/sw.js` repeats the path.
*/
export const PwaBadgeSize = 96;
export const PwaBadgePath = `/icons/badge-${PwaBadgeSize}.png`;
/**
* What `handlePrecacheGate` swaps for the install's name in the loading
* page's title.
*/
export const PwaLoadingNamePlaceholder = "{{name}}";
/**
* The install's own name (Settings > General), so two installs on one
* phone don't both read `SiteName`. Saved in `app_settings`.
*/
export const PwaInstallNameSettingKey = "install_name";
export const PwaInstallNameMaxLength = 30;