arbitrage-engine/frontend/app/layout.tsx

75 lines
2.3 KiB
TypeScript

import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import Link from "next/link";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Arbitrage Engine",
description: "Funding rate arbitrage monitoring system",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="zh" className="dark">
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased min-h-screen bg-slate-900 text-slate-100`}
>
{/* Top nav */}
<nav className="border-b border-slate-700 bg-slate-900/80 backdrop-blur sticky top-0 z-50">
<div className="max-w-6xl mx-auto px-4 h-14 flex items-center gap-8">
<span className="font-bold text-cyan-400 tracking-tight text-lg">
Arbitrage Engine
</span>
<div className="flex gap-6 text-sm">
<Link
href="/"
className="text-slate-300 hover:text-cyan-400 transition-colors"
>
</Link>
<Link
href="/history"
className="text-slate-300 hover:text-cyan-400 transition-colors"
>
</Link>
<Link
href="/signals"
className="text-slate-300 hover:text-cyan-400 transition-colors"
>
</Link>
<Link
href="/about"
className="text-slate-300 hover:text-cyan-400 transition-colors"
>
</Link>
</div>
<div className="ml-auto flex gap-3 text-sm">
<Link href="/login" className="text-slate-400 hover:text-slate-200 transition-colors"></Link>
<Link href="/register" className="bg-cyan-600 hover:bg-cyan-500 text-white px-3 py-1 rounded-lg transition-colors"></Link>
</div>
</div>
</nav>
<main className="max-w-6xl mx-auto px-4 py-8">{children}</main>
</body>
</html>
);
}