Initial commit
This commit is contained in:
103
src/app/layout.tsx
Normal file
103
src/app/layout.tsx
Normal file
@@ -0,0 +1,103 @@
|
||||
import type { Metadata, Viewport } from "next";
|
||||
import { Hanken_Grotesk, Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import { Navbar } from "@/components/layout/Navbar";
|
||||
import { Footer } from "@/components/layout/Footer";
|
||||
|
||||
const hankenGrotesk = Hanken_Grotesk({
|
||||
subsets: ["latin"],
|
||||
weight: ["600", "700", "800"],
|
||||
variable: "--font-display",
|
||||
display: "swap",
|
||||
});
|
||||
|
||||
const inter = Inter({
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "600", "700"],
|
||||
variable: "--font-body",
|
||||
display: "swap",
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase: new URL("https://nearle.in"),
|
||||
title: {
|
||||
default: "Nearle — Your Neighborhood, Delivered",
|
||||
template: "%s | Nearle",
|
||||
},
|
||||
description:
|
||||
"Hyper-local essentials, hot meals, and professional services from verified businesses within your 2km radius. India's #1 neighborhood commerce platform.",
|
||||
keywords: [
|
||||
"hyperlocal",
|
||||
"neighborhood delivery",
|
||||
"Coimbatore",
|
||||
"local grocery",
|
||||
"Nearle",
|
||||
"home services",
|
||||
"India delivery",
|
||||
"neighborhood commerce",
|
||||
],
|
||||
openGraph: {
|
||||
title: "Nearle — Your Neighborhood, Delivered",
|
||||
description:
|
||||
"Hyper-local essentials, hot meals, and professional services from verified businesses within your 2km radius.",
|
||||
url: "https://nearle.in",
|
||||
siteName: "Nearle",
|
||||
locale: "en_IN",
|
||||
type: "website",
|
||||
images: [
|
||||
{
|
||||
url: "/logo.png",
|
||||
width: 512,
|
||||
height: 512,
|
||||
alt: "Nearle logo",
|
||||
},
|
||||
],
|
||||
},
|
||||
twitter: {
|
||||
card: "summary",
|
||||
title: "Nearle — Your Neighborhood, Delivered",
|
||||
description:
|
||||
"India's hyperlocal neighborhood commerce platform",
|
||||
images: ["/logo.png"],
|
||||
},
|
||||
alternates: { canonical: "/" },
|
||||
icons: {
|
||||
icon: "/favicon.ico",
|
||||
shortcut: "/favicon.ico",
|
||||
apple: "/apple-icon.png",
|
||||
},
|
||||
robots: { index: true, follow: true },
|
||||
};
|
||||
|
||||
export const viewport: Viewport = {
|
||||
themeColor: "#4d046a",
|
||||
width: "device-width",
|
||||
initialScale: 1,
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<html
|
||||
lang="en"
|
||||
className={`${hankenGrotesk.variable} ${inter.variable}`}
|
||||
suppressHydrationWarning
|
||||
>
|
||||
<head>
|
||||
{/* Material Symbols Outlined */}
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</head>
|
||||
<body className="bg-background text-on-surface font-body antialiased" suppressHydrationWarning>
|
||||
<Navbar />
|
||||
<main>{children}</main>
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user