diff --git a/web/app/layout.tsx b/web/app/layout.tsx
index cc39e89..25b0df8 100644
--- a/web/app/layout.tsx
+++ b/web/app/layout.tsx
@@ -1,11 +1,32 @@
import "./globals.css";
-import type { Metadata } from "next";
+import type { Metadata, Viewport } from "next";
import { AlertsToaster } from "../components/AlertsToaster";
+import { PwaRegister } from "../components/PwaRegister";
import { TopNav } from "../components/TopNav";
export const metadata: Metadata = {
- title: "Stock Chart Site",
- description: "개인용 주식 예측 차트",
+ title: {
+ default: "주식 차트 · 예측",
+ template: "%s · 주식 차트",
+ },
+ description: "한국 주식 차트와 단기 예측을 보는 개인용 앱.",
+ manifest: "/manifest.webmanifest",
+ // SVG 아이콘 하나로 다 처리. Chrome/Safari/iOS 모두 SVG favicon + apple-touch 수용.
+ icons: {
+ icon: [{ url: "/icon.svg", type: "image/svg+xml" }],
+ apple: [{ url: "/icon.svg", type: "image/svg+xml" }],
+ },
+ appleWebApp: {
+ capable: true,
+ statusBarStyle: "black-translucent",
+ title: "주식 차트",
+ },
+};
+
+// Next 14: themeColor / colorScheme 는 viewport 로 분리해야 빌드 경고가 안 뜸.
+export const viewport: Viewport = {
+ themeColor: "#09090b",
+ colorScheme: "dark",
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
@@ -15,6 +36,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
{children}
+