Skip to content

Commit 08774b8

Browse files
royalpinto007claude
andcommitted
Redesign footer with grouped links and breathing room
Brand + tagline on left, links in three columns on right, copyright bar at bottom. Removes cramped single-row layout. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent bd27c6c commit 08774b8

1 file changed

Lines changed: 59 additions & 33 deletions

File tree

‎components/layout/Footer.tsx‎

Lines changed: 59 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,75 @@
11
import Link from "next/link";
22

3-
const LINKS = [
4-
{ href: "/about", label: "About" },
5-
{ href: "/teams", label: "Teams" },
6-
{ href: "/hall-of-fame", label: "Hall of Fame" },
7-
{ href: "/submit", label: "File a Report" },
8-
{ href: "/contact", label: "Contact" },
9-
{ href: "/privacy", label: "Privacy" },
10-
{ href: "/terms", label: "Terms" },
3+
const LINK_GROUPS = [
114
{
12-
href: "https://github.com/AgentPostmortem/agent-postmortem",
13-
label: "GitHub",
14-
external: true,
5+
links: [
6+
{ href: "/about", label: "About" },
7+
{ href: "/contact", label: "Contact" },
8+
{ href: "/teams", label: "Teams" },
9+
],
10+
},
11+
{
12+
links: [
13+
{ href: "/hall-of-fame", label: "Hall of Fame" },
14+
{ href: "/submit", label: "File a Report" },
15+
{
16+
href: "https://github.com/AgentPostmortem/agent-postmortem",
17+
label: "GitHub",
18+
external: true,
19+
},
20+
],
21+
},
22+
{
23+
links: [
24+
{ href: "/privacy", label: "Privacy" },
25+
{ href: "/terms", label: "Terms" },
26+
],
1527
},
1628
];
1729

1830
export function Footer() {
1931
return (
2032
<footer className="mt-20 border-t border-border-default">
21-
<div className="mx-auto max-w-4xl px-4 py-8 sm:px-6 lg:px-8">
22-
<div className="flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between">
23-
<div className="flex items-center gap-2">
24-
<div className="h-1.5 w-1.5 rounded-sm bg-accent-red" />
25-
<span className="font-serif text-sm text-text-tertiary">
26-
AgentPostmortem
27-
</span>
33+
<div className="mx-auto max-w-4xl px-4 py-10 sm:px-6 lg:px-8">
34+
<div className="flex flex-col gap-8 sm:flex-row sm:justify-between">
35+
{/* Brand */}
36+
<div className="flex flex-col gap-2">
37+
<div className="flex items-center gap-2">
38+
<div className="h-1.5 w-1.5 rounded-sm bg-accent-red" />
39+
<span className="font-serif text-sm text-text-primary">
40+
AgentPostmortem
41+
</span>
42+
</div>
43+
<p className="max-w-[16rem] font-mono text-[11px] leading-relaxed text-text-tertiary">
44+
A public ledger for AI agent failures. Not affiliated with any AI
45+
vendor.
46+
</p>
2847
</div>
2948

30-
<nav className="flex flex-wrap gap-x-5 gap-y-1.5">
31-
{LINKS.map((link) => (
32-
<Link
33-
key={link.href}
34-
href={link.href}
35-
className="font-mono text-xs text-text-tertiary transition-colors hover:text-text-secondary"
36-
{...(link.external
37-
? { target: "_blank", rel: "noopener noreferrer" }
38-
: {})}
39-
>
40-
{link.label}
41-
</Link>
49+
{/* Link groups */}
50+
<div className="flex flex-wrap gap-x-10 gap-y-6">
51+
{LINK_GROUPS.map((group, i) => (
52+
<nav key={i} className="flex flex-col gap-2.5">
53+
{group.links.map((link) => (
54+
<Link
55+
key={link.href}
56+
href={link.href}
57+
className="font-mono text-xs text-text-tertiary transition-colors hover:text-text-secondary"
58+
{...("external" in link && link.external
59+
? { target: "_blank", rel: "noopener noreferrer" }
60+
: {})}
61+
>
62+
{link.label}
63+
</Link>
64+
))}
65+
</nav>
4266
))}
43-
</nav>
67+
</div>
68+
</div>
4469

45-
<p className="font-mono text-xs text-text-tertiary">
46-
Not affiliated with any AI vendor.
70+
<div className="mt-8 border-t border-border-default pt-6">
71+
<p className="font-mono text-[10px] text-text-tertiary">
72+
© {new Date().getFullYear()} AgentPostmortem. Open source.
4773
</p>
4874
</div>
4975
</div>

0 commit comments

Comments
 (0)