feat: set up basic app shell components

This commit is contained in:
2026-05-27 18:29:55 -07:00
parent dd8cbe1c45
commit 9d36e13fb4
7 changed files with 85 additions and 67 deletions
+7
View File
@@ -0,0 +1,7 @@
export default function Container({ children }: { children: React.ReactNode }) {
return (
<div className="p-3 bg-neutral-900 flex-1">
{children}
</div>
)
}
+9
View File
@@ -0,0 +1,9 @@
export default function Footer() {
return (
<div className="border-t border-neutral-800 text-start p-6">
Self-hosted · Traefik · Next.js
</div>
)
}
+18
View File
@@ -0,0 +1,18 @@
import Link from "next/link";
import Nav from "./Nav";
export default function Header() {
return (
<header className="border-b border-neutral-800">
<div className="p-6 justify-start flex items-center flex gap-5">
<Link
href="/"
className="text-2xl font-semibold text-neutral-100 hover:text-white"
>
Angel Mankel
</Link>
<Nav />
</div>
</header>
);
}
+24
View File
@@ -0,0 +1,24 @@
import Link from "next/link";
const navLinks = [
{ href: "/projects", label: "Projects" },
{ href: "/about", label: "About" },
{ href: "/uses", label: "Uses" },
];
export default function Nav() {
return (
<nav className="flex gap-6 font-mono text-xs text-neutral-400">
{navLinks.map((link) => (
<Link
key={link.href}
href={link.href}
className="hover:text-white"
>
{link.label}
</Link>
))}
</nav>
)
}