ba-cafe

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

layout.tsx (1914B)


      1 import type { Metadata, Viewport } from "next";
      2 import { Mandali, Kosugi_Maru } from "next/font/google";
      3 import { GoogleAnalytics } from '@next/third-parties/google';
      4 import "./globals.css";
      5 import Providers from "./providers";
      6 import TouchEffect from "@/components/TouchEffect";
      7 
      8 const mandali = Mandali({
      9   weight: "400",
     10   subsets: ["latin"],
     11   variable: "--font-mandali",
     12 });
     13 
     14 const kosugi = Kosugi_Maru({
     15   weight: "400",
     16   subsets: ["latin"],
     17   variable: "--font-kosugi",
     18 });
     19 
     20 export const metadata: Metadata = {
     21   title: "Cafe Timer",
     22   description: "この一瞬を、アーカイブ。",
     23   manifest: "/manifest.json",
     24   appleWebApp: {
     25     capable: true,
     26     statusBarStyle: "default",
     27     title: "Cafe Timer",
     28   },
     29   openGraph: {
     30     title: "Cafe Timer",
     31     description: "この一瞬を、アーカイブ。",
     32     url: "https://cafetimer.rabbit1.cc",
     33     siteName: "Cafe Timer",
     34     images: [
     35       {
     36         url: "https://cafetimer.rabbit1.cc/ogp.png",
     37         alt: "Cafe Timer",
     38       },
     39     ],
     40     locale: "ja_JP",
     41     type: "website",
     42   },
     43   twitter: {
     44     card: "summary_large_image",
     45     title: "Cafe Timer",
     46     description: "この一瞬を、アーカイブ。",
     47     images: ["https://cafetimer.rabbit1.cc/ogp.png"],
     48   },
     49 };
     50 
     51 export const viewport: Viewport = {
     52   themeColor: [
     53     { media: '(prefers-color-scheme: light)', color: '#fbfbfb' },
     54     { media: '(prefers-color-scheme: dark)', color: '#000000' },
     55   ],
     56   width: "device-width",
     57   initialScale: 1,
     58   maximumScale: 1,
     59   userScalable: false,
     60 };
     61 
     62 export default function RootLayout({
     63   children,
     64 }: Readonly<{
     65   children: React.ReactNode;
     66 }>) {
     67   return (
     68     <html lang="ja" className="h-full">
     69       <body className={`${mandali.variable} ${kosugi.variable} h-full`}>
     70         <GoogleAnalytics gaId="G-FQSKNGBJ7W" />
     71         <Providers>
     72           <TouchEffect />
     73           {children}
     74         </Providers>
     75       </body>
     76     </html>
     77   );
     78 }