This commit is contained in:
eric
2026-03-14 00:28:34 -05:00
parent cf1e3760c2
commit 1f8c9c6d26
88 changed files with 5463 additions and 22657 deletions

25
app/about/page.tsx Normal file
View File

@@ -0,0 +1,25 @@
import Link from "next/link";
import { SiteHeader } from "~/components/layout/site-header";
import { SiteFooter } from "~/components/layout/site-footer";
export default function AboutPage() {
return (
<div className="min-h-screen bg-white">
<SiteHeader />
<main className="container mx-auto px-4 py-16 md:px-6 md:py-24">
<h1 className="text-3xl font-semibold text-neutral-900"> Nomadro</h1>
<p className="mt-6 max-w-2xl text-neutral-600">
Nomadro
</p>
<Link
href="/"
className="mt-8 inline-block text-sm font-medium text-neutral-700 hover:text-neutral-900"
>
</Link>
</main>
<SiteFooter />
</div>
);
}

32
app/contact/page.tsx Normal file
View File

@@ -0,0 +1,32 @@
import Link from "next/link";
import { SiteHeader } from "~/components/layout/site-header";
import { SiteFooter } from "~/components/layout/site-footer";
export default function ContactPage() {
return (
<div className="min-h-screen bg-white">
<SiteHeader />
<main className="container mx-auto px-4 py-16 md:px-6 md:py-24">
<h1 className="text-3xl font-semibold text-neutral-900"></h1>
<p className="mt-6 max-w-2xl text-neutral-600">
</p>
<Link
href="https://meetup.hackrobot.cn"
target="_blank"
rel="noopener noreferrer"
className="mt-6 inline-block rounded-lg bg-neutral-900 px-6 py-3 text-white hover:bg-neutral-800"
>
</Link>
<Link
href="/"
className="ml-4 mt-8 inline-block text-sm font-medium text-neutral-700 hover:text-neutral-900"
>
</Link>
</main>
<SiteFooter />
</div>
);
}

BIN
app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

20
app/globals.css Normal file
View File

@@ -0,0 +1,20 @@
@import "tailwindcss";
:root {
--background: #ffffff;
--foreground: #171717;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans), ui-sans-serif, system-ui, "PingFang SC",
"Microsoft YaHei", sans-serif;
--font-mono: var(--font-geist-mono), ui-monospace, monospace;
}
body {
background: var(--background);
color: var(--foreground);
font-family: var(--font-sans);
}

48
app/layout.tsx Normal file
View File

@@ -0,0 +1,48 @@
import "./globals.css";
import { type Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
export const metadata: Metadata = {
title: "Nomadro | 中文数字游民操作系统",
description:
"从城市、技能、工具到社群,一站开始你的数字游民生活。探索城市、学习路径、会员社区,帮你从固定工位走向自由生活与自由收入。",
keywords: [
"数字游民",
"远程工作",
"旅居",
"自由职业",
"城市探索",
"学习路径",
"会员社区",
],
openGraph: {
title: "Nomadro | 中文数字游民操作系统",
description:
"从城市、技能、工具到社群,一站开始你的数字游民生活。",
type: "website",
},
icons: [{ rel: "icon", url: "/nomadro.ico" }],
};
const geist = Geist({
subsets: ["latin"],
variable: "--font-geist-sans",
});
const geistMono = Geist_Mono({
subsets: ["latin"],
variable: "--font-geist-mono",
});
export default function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
return (
<html lang="zh-CN" className={`${geist.variable} ${geistMono.variable}`}>
<body className="font-sans antialiased">
{children}
</body>
</html>
);
}

31
app/page.tsx Normal file
View File

@@ -0,0 +1,31 @@
import { SiteHeader } from "~/components/layout/site-header";
import { SiteFooter } from "~/components/layout/site-footer";
import { Hero } from "~/components/sections/hero";
import { ValueGrid } from "~/components/sections/value-grid";
import { EntryGrid } from "~/components/sections/entry-grid";
import { Methodology } from "~/components/sections/methodology";
import { Scenarios } from "~/components/sections/scenarios";
import { Ecosystem } from "~/components/sections/ecosystem";
import { ContentPreview } from "~/components/sections/content-preview";
import { Trust } from "~/components/sections/trust";
import { FinalCta } from "~/components/sections/final-cta";
export default function HomePage() {
return (
<div className="min-h-screen bg-white">
<SiteHeader />
<main>
<Hero />
<ValueGrid />
<EntryGrid />
<Methodology />
<Scenarios />
<Ecosystem />
<ContentPreview />
<Trust />
<FinalCta />
</main>
<SiteFooter />
</div>
);
}