- {t("deckPage.loading")}
+
+
);
diff --git a/app/layout.tsx b/app/layout.tsx
index 3b1041f..fec4a7f 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -2,7 +2,9 @@ import type { Metadata, Viewport } from "next";
import { IceBackdrop } from "@/components/IceBackdrop";
import { InstallSheet } from "@/components/InstallSheet";
+import { OfflineBanner } from "@/components/OfflineBanner";
import { ServiceWorkerRegistrar } from "@/components/ServiceWorkerRegistrar";
+import { Toaster } from "@/components/Toaster";
import "./globals.css";
export const metadata: Metadata = {
@@ -18,6 +20,18 @@ export const metadata: Metadata = {
capable: true,
title: "Freezmo",
statusBarStyle: "default",
+ /* Startup images so launching from the home screen has no white flash.
+ Sized for the common iPhone logical sizes at their device pixel ratio. */
+ startupImage: [
+ { url: "/icons/splash-750x1334.png", media: "(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" },
+ { url: "/icons/splash-828x1792.png", media: "(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)" },
+ { url: "/icons/splash-1170x2532.png", media: "(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3)" },
+ { url: "/icons/splash-1179x2556.png", media: "(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3)" },
+ { url: "/icons/splash-1284x2778.png", media: "(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3)" },
+ { url: "/icons/splash-1290x2796.png", media: "(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3)" },
+ { url: "/icons/splash-1536x2048.png", media: "(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)" },
+ { url: "/icons/splash-1668x2388.png", media: "(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)" },
+ ],
},
icons: {
icon: [
@@ -43,11 +57,10 @@ export const metadata: Metadata = {
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
- // Phones: no pinch/double-tap zoom (the app-like feel). The input font-size
- // rule in globals.css is what actually stops iOS Safari's focus auto-zoom,
- // which ignores user-scalable=no.
- maximumScale: 1,
- userScalable: false,
+ // Pinch-zoom stays available for accessibility (double-tap zoom is disabled
+ // by `touch-action: manipulation` on the chrome instead). The input
+ // font-size rule in globals.css stops iOS Safari's focus auto-zoom, which
+ // ignores the viewport meta anyway.
viewportFit: "cover",
themeColor: [
{ media: "(prefers-color-scheme: light)", color: "#f4f7fd" },
@@ -82,6 +95,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
{children}
+
+
+
+
+
+
+
+
+