- Add app/styles/justine/01-homepage.css: rules from 01_homepage.html scoped to [data-justine] - Replace app/(marketing) with app/(justine): layout wraps data-justine + Plus Jakarta - JustineHomePage/Nav/Footer: original class names (btn-ink, hero-grid, …) + inline styles from HTML - Remove app/justine-marketing.css; move /features /pricing /privacy /terms under (justine) Made-with: Cursor
48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import type { Metadata } from "next";
|
|
import { Plus_Jakarta_Sans } from "next/font/google";
|
|
import { homepage } from "@/marketing/content/homepage";
|
|
import { JustineNav } from "@/marketing/components/justine/JustineNav";
|
|
import { JustineFooter } from "@/marketing/components/justine/JustineFooter";
|
|
import "../styles/justine/01-homepage.css";
|
|
|
|
const justineJakarta = Plus_Jakarta_Sans({
|
|
subsets: ["latin"],
|
|
weight: ["400", "500", "600", "700", "800"],
|
|
variable: "--font-justine-jakarta",
|
|
display: "swap",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: homepage.meta.title,
|
|
description: homepage.meta.description,
|
|
openGraph: {
|
|
title: homepage.meta.title,
|
|
description: homepage.meta.description,
|
|
url: "https://www.vibnai.com",
|
|
siteName: "VIBN",
|
|
type: "website",
|
|
},
|
|
twitter: {
|
|
card: "summary_large_image",
|
|
title: homepage.meta.title,
|
|
description: homepage.meta.description,
|
|
},
|
|
};
|
|
|
|
export default function JustineLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<div
|
|
data-justine
|
|
className={`${justineJakarta.variable} flex min-h-screen flex-col`}
|
|
>
|
|
<JustineNav />
|
|
<main>{children}</main>
|
|
<JustineFooter />
|
|
</div>
|
|
);
|
|
}
|