forked from Dshield-xyz/Dshield
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayout.tsx
More file actions
77 lines (73 loc) · 2.47 KB
/
Copy pathlayout.tsx
File metadata and controls
77 lines (73 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { WalletProvider } from "@/components/WalletProvider";
import { Background } from "@/components/Background";
import { ShieldField } from "@/components/ShieldField";
import { Header } from "@/components/Header";
import { Footer } from "@/components/Footer";
import { ToastProvider } from "@/components/ui/Toast";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
metadataBase: new URL("https://dshield.vercel.app"),
title: {
default: "DShield — Shielded Stablecoin Wallet",
template: "%s · DShield",
},
description:
"Private by Default. Compliant by Choice. A shielded USDC wallet on Stellar using Zero-Knowledge Proofs.",
icons: {
icon: "/favicon.ico",
shortcut: "/favicon.ico",
apple: "/icon.png",
},
openGraph: {
title: "DShield - Shielded Stablecoin Wallet",
description:
"Private USDC payments on Stellar with Zero-Knowledge Proofs. Compliant selective disclosure built in.",
images: [{ url: "/dshield.png", width: 800, height: 800 }],
},
twitter: {
card: "summary",
title: "DShield",
description:
"Private by Default. Compliant by Choice. Shielded USDC on Stellar.",
images: ["/dshield.png"],
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html
lang="en"
suppressHydrationWarning
className={`${geistSans.variable} ${geistMono.variable} h-full antialiased dark`}
>
<body className="min-h-full flex flex-col bg-zinc-950 text-white">
<Background />
{/* Live constellation, present on every page — fixed to the viewport
(not the document) so it never scrolls away on tall pages, and
vignetted so it reads as ambient texture behind forms and cards
rather than competing with them. */}
<ShieldField className="pointer-events-none fixed inset-0 -z-10 h-full w-full opacity-70 [mask-image:radial-gradient(52rem_34rem_at_50%_0%,black,transparent_72%)]" />
<WalletProvider>
<ToastProvider>
<Header />
<main className="flex-1">{children}</main>
<Footer />
</ToastProvider>
</WalletProvider>
</body>
</html>
);
}