Compare commits
2 Commits
82ba4c36f1
...
8624d2c805
| Author | SHA1 | Date | |
|---|---|---|---|
| 8624d2c805 | |||
| fe02b86b1b |
@@ -1,8 +1,9 @@
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { Geist, Geist_Mono, Inter } from "next/font/google";
|
import { Geist, Geist_Mono, Inter } from "next/font/google";
|
||||||
import Link from "next/link";
|
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
import { SiteHeader } from "@/components/site-header";
|
||||||
|
import { SiteFooter } from "@/components/site-footer";
|
||||||
|
|
||||||
const inter = Inter({subsets:['latin'],variable:'--font-sans'});
|
const inter = Inter({subsets:['latin'],variable:'--font-sans'});
|
||||||
|
|
||||||
@@ -32,22 +33,9 @@ export default function RootLayout({
|
|||||||
className={cn("h-full", "antialiased", geistSans.variable, geistMono.variable, "font-sans", inter.variable)}
|
className={cn("h-full", "antialiased", geistSans.variable, geistMono.variable, "font-sans", inter.variable)}
|
||||||
>
|
>
|
||||||
<body className="min-h-full flex flex-col">
|
<body className="min-h-full flex flex-col">
|
||||||
<header className="sticky top-0 z-40 border-b bg-background/85 backdrop-blur motion-safe:animate-in motion-safe:fade-in motion-safe:slide-in-from-top-2 motion-safe:duration-500">
|
<SiteHeader />
|
||||||
<div className="mx-auto flex w-full max-w-6xl items-center justify-between px-4 py-3 sm:px-8">
|
|
||||||
<Link href="/" className="text-sm font-semibold tracking-tight transition-colors duration-200 hover:text-primary sm:text-base">
|
|
||||||
Takasumi-Neodyマイクラサーバプロジェクト
|
|
||||||
</Link>
|
|
||||||
<nav className="flex items-center gap-4 text-sm">
|
|
||||||
<Link href="/" className="underline-offset-4 transition-colors duration-200 hover:text-primary hover:underline">
|
|
||||||
メインページ
|
|
||||||
</Link>
|
|
||||||
<Link href="/announcements" className="underline-offset-4 transition-colors duration-200 hover:text-primary hover:underline">
|
|
||||||
お知らせ
|
|
||||||
</Link>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
{children}
|
{children}
|
||||||
|
<SiteFooter />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
|
|||||||
13
app/page.tsx
13
app/page.tsx
@@ -107,19 +107,6 @@ export default function Home() {
|
|||||||
</ol>
|
</ol>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
<footer className="border-t bg-card/60">
|
|
||||||
<div className="mx-auto flex w-full max-w-6xl items-center justify-center px-4 py-4 text-center text-xs text-muted-foreground sm:px-8 sm:text-sm">
|
|
||||||
運用元:
|
|
||||||
<a
|
|
||||||
href="https://neody.land/ja"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
className="ml-1 font-medium text-foreground underline underline-offset-4 hover:text-primary"
|
|
||||||
>
|
|
||||||
Neodyland
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
17
components/site-footer.tsx
Normal file
17
components/site-footer.tsx
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
export function SiteFooter() {
|
||||||
|
return (
|
||||||
|
<footer className="border-t bg-card/60">
|
||||||
|
<div className="mx-auto flex w-full max-w-6xl items-center justify-center px-4 py-4 text-center text-xs text-muted-foreground sm:px-8 sm:text-sm">
|
||||||
|
運用元:
|
||||||
|
<a
|
||||||
|
href="https://neody.land/ja"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="ml-1 font-medium text-foreground underline underline-offset-4 hover:text-primary"
|
||||||
|
>
|
||||||
|
Neodyland
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
30
components/site-header.tsx
Normal file
30
components/site-header.tsx
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
export function SiteHeader() {
|
||||||
|
return (
|
||||||
|
<header className="sticky top-0 z-40 border-b bg-background/85 backdrop-blur motion-safe:animate-in motion-safe:fade-in motion-safe:slide-in-from-top-2 motion-safe:duration-500">
|
||||||
|
<div className="mx-auto flex w-full max-w-6xl items-center justify-between px-4 py-3 sm:px-8">
|
||||||
|
<Link
|
||||||
|
href="/"
|
||||||
|
className="text-sm font-semibold tracking-tight transition-colors duration-200 hover:text-primary sm:text-base"
|
||||||
|
>
|
||||||
|
Takasumi-Neodyマイクラサーバプロジェクト
|
||||||
|
</Link>
|
||||||
|
<nav className="flex items-center gap-4 text-sm">
|
||||||
|
<Link
|
||||||
|
href="/"
|
||||||
|
className="underline-offset-4 transition-colors duration-200 hover:text-primary hover:underline"
|
||||||
|
>
|
||||||
|
メインページ
|
||||||
|
</Link>
|
||||||
|
<Link
|
||||||
|
href="/announcements"
|
||||||
|
className="underline-offset-4 transition-colors duration-200 hover:text-primary hover:underline"
|
||||||
|
>
|
||||||
|
お知らせ
|
||||||
|
</Link>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user