Add CardNav, theme providers, and UI updates

Introduce an interactive top navigation and theming + site UI/branding changes.

- Add CardNav component (TSX + CSS) with GSAP animations and responsive behavior.
- Dynamic Header now loads CardNav (client-side).
- Add Providers (next-themes) and wrap RootLayout; enable theme toggle and update site title to "Koring Team".
- Add Koring logo component and public SVG asset.
- Add custom 404 (app/not-found.tsx).
- Update home page spacing and card paddings for responsiveness.
- Refactor Footer content and layout for legal/branding text.
- Add dependencies: gsap, react-icons and update pnpm lock.
This commit is contained in:
2026-07-11 01:21:44 +08:00
parent f35b9d1fec
commit 6d87e76ebb
12 changed files with 771 additions and 78 deletions
+11 -5
View File
@@ -6,6 +6,7 @@ import { Header } from "@/layout/header";
import { Footer } from "@/layout/footer";
import Script from "next/script";
import { cn } from "@/lib/utils";
import { Providers } from "./providers";
const alimamaFangYuan = localFont({
src: "../public/font/Alimama.ttf",
@@ -18,7 +19,7 @@ const geistMono = Geist_Mono({
});
export const metadata: Metadata = {
title: "RivFox",
title: "Koring Team",
description: "Generated by create next app",
icons: {
icon: "/favicon.svg",
@@ -32,12 +33,15 @@ export default function RootLayout({
}>) {
return (
<html
lang="en"
className={cn("h-full", "antialiased", alimamaFangYuan.variable, geistMono.variable, "font-sans")}
>
lang="en"
suppressHydrationWarning
className={cn("h-full", "antialiased", alimamaFangYuan.variable, geistMono.variable, "font-sans")}
>
<body className="min-h-full flex flex-col">
<Providers>
<Header />
<main className="flex-1 pt-14 px-4 sm:px-10 lg:px-48">
<div style={{ height: 20 }} />
<main className="flex-1 px-4 sm:px-10 lg:px-48">
{children}
<Script
src="https://analysis.rivfox.com/api/script.js"
@@ -45,7 +49,9 @@ export default function RootLayout({
strategy="afterInteractive"
/>
</main>
<div style={{ height: 50 }} />
<Footer/>
</Providers>
</body>
</html>
);