Skip to content

Commit 043fa9a

Browse files
committed
feat: add sitemap page
- Add sitemap page with structured site navigation - Add sitemap content component
1 parent 46d4d46 commit 043fa9a

2 files changed

Lines changed: 176 additions & 0 deletions

File tree

src/app/sitemap/page.tsx

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
'use client'
2+
3+
import Link from 'next/link'
4+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
5+
import { faHome } from '@fortawesome/free-solid-svg-icons'
6+
import { Breadcrumbs, Separator } from '@/components/breadcrumbs'
7+
8+
const sections = [
9+
{
10+
title: 'Public Pages',
11+
links: [
12+
['Home', '/'],
13+
['About', '/about'],
14+
['Services', '/services'],
15+
['Portfolio', '/portfolio'],
16+
['Contact', '/contact'],
17+
['Technology', '/technology'],
18+
['Invoice', '/invoice'],
19+
['Blog', '/blog'],
20+
['Sample Blog Post', '/blog/blogpost-with-slider'],
21+
],
22+
},
23+
{
24+
title: 'Admin UX Pages',
25+
links: [
26+
['Admin Dashboard', '/admin'],
27+
['Admin Blog', '/admin/blog'],
28+
['Admin Client', '/admin/client'],
29+
['Admin Files', '/admin/files'],
30+
['Admin Invoice', '/admin/invoice'],
31+
['Admin Payment', '/admin/payment'],
32+
['Admin Time', '/admin/time'],
33+
],
34+
},
35+
{
36+
title: 'Utilities',
37+
links: [
38+
['Sitemap', '/sitemap'],
39+
['403 CLI Overlay Trigger', '/403'],
40+
],
41+
},
42+
]
43+
44+
export default function SitemapPage() {
45+
return (
46+
<div className="text-[#323232] bg-white pb-16">
47+
<Breadcrumbs
48+
items={[
49+
{ label: 'Home', href: '/', icon: <FontAwesomeIcon icon={faHome} className="text-[11px]" /> },
50+
{ label: 'Sitemap' },
51+
]}
52+
/>
53+
54+
<section className="mx-auto max-w-7xl px-6 pt-6 lg:px-8">
55+
<div className="border border-[#ececec] rounded bg-white shadow-[0_8px_24px_rgba(0,0,0,0.04)] overflow-hidden">
56+
<div className="bg-[linear-gradient(135deg,#24343b_0%,#131d22_100%)] px-6 py-10 text-white lg:px-10">
57+
<div className="max-w-3xl">
58+
<div className="text-[12px] uppercase tracking-[0.24em] text-white/60">Information Architecture</div>
59+
<h1 className="mt-3 text-[40px] font-light leading-none">Sitemap</h1>
60+
<p className="mt-4 text-[16px] leading-8 text-white/75">
61+
A clean directory for the migrated Next.js pages, matching the content structure while fitting into the
62+
current site shell.
63+
</p>
64+
</div>
65+
</div>
66+
<div className="grid gap-6 px-6 py-8 lg:grid-cols-3 lg:px-10">
67+
{sections.map((section) => (
68+
<section key={section.title} className="rounded-[4px] border border-[#ececec] bg-white p-6">
69+
<h2 className="text-[24px] font-normal text-[#2f2f2f]">{section.title}</h2>
70+
<Separator />
71+
<ul className="mt-5 space-y-3 text-[15px] text-[#666]">
72+
{section.links.map(([label, href]) => (
73+
<li key={href}>
74+
<Link href={href} className="inline-flex items-center gap-3 hover:text-[#09afdf]">
75+
<span className="h-2 w-2 rounded-full bg-[#09afdf]" />
76+
<span>{label}</span>
77+
</Link>
78+
</li>
79+
))}
80+
</ul>
81+
</section>
82+
))}
83+
</div>
84+
</div>
85+
</section>
86+
</div>
87+
)
88+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
'use client'
2+
3+
import Link from 'next/link'
4+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
5+
import { faHome } from '@fortawesome/free-solid-svg-icons'
6+
import { Breadcrumbs, Separator } from '@/components/breadcrumbs'
7+
8+
export function SitemapContent() {
9+
const sections = [
10+
{
11+
title: 'Public Pages',
12+
links: [
13+
['Home', '/'],
14+
['About', '/about'],
15+
['Services', '/services'],
16+
['Portfolio', '/portfolio'],
17+
['Contact', '/contact'],
18+
['Technology', '/technology'],
19+
['Invoice', '/invoice'],
20+
['Blog', '/blog'],
21+
['Sample Blog Post', '/blog/blogpost-with-slider'],
22+
],
23+
},
24+
{
25+
title: 'Admin UX Pages',
26+
links: [
27+
['Admin Dashboard', '/admin'],
28+
['Admin Blog', '/admin/blog'],
29+
['Admin Client', '/admin/client'],
30+
['Admin Files', '/admin/files'],
31+
['Admin Invoice', '/admin/invoice'],
32+
['Admin Payment', '/admin/payment'],
33+
['Admin Time', '/admin/time'],
34+
],
35+
},
36+
{
37+
title: 'Utilities',
38+
links: [
39+
['Sitemap', '/sitemap'],
40+
['403 CLI Overlay Trigger', '/403'],
41+
],
42+
},
43+
]
44+
45+
return (
46+
<div className="text-[#323232] bg-white pb-16">
47+
<Breadcrumbs
48+
items={[
49+
{ label: 'Home', href: '/', icon: <FontAwesomeIcon icon={faHome} className="text-[11px]" /> },
50+
{ label: 'Sitemap' },
51+
]}
52+
/>
53+
54+
<section className="mx-auto max-w-7xl px-6 pt-6 lg:px-8">
55+
<div className="border border-[#ececec] rounded bg-white shadow-[0_8px_24px_rgba(0,0,0,0.04)] overflow-hidden">
56+
<div className="bg-[linear-gradient(135deg,#24343b_0%,#131d22_100%)] px-6 py-10 text-white lg:px-10">
57+
<div className="max-w-3xl">
58+
<div className="text-[12px] uppercase tracking-[0.24em] text-white/60">Information Architecture</div>
59+
<h1 className="mt-3 text-[40px] font-light leading-none">Sitemap</h1>
60+
<p className="mt-4 text-[16px] leading-8 text-white/75">
61+
A clean directory for the migrated Next.js pages, matching the content structure while fitting into the
62+
current site shell.
63+
</p>
64+
</div>
65+
</div>
66+
<div className="grid gap-6 px-6 py-8 lg:grid-cols-3 lg:px-10">
67+
{sections.map((section) => (
68+
<section key={section.title} className="rounded-[4px] border border-[#ececec] bg-white p-6">
69+
<h2 className="text-[24px] font-normal text-[#2f2f2f]">{section.title}</h2>
70+
<Separator />
71+
<ul className="mt-5 space-y-3 text-[15px] text-[#666]">
72+
{section.links.map(([label, href]) => (
73+
<li key={href}>
74+
<Link href={href} className="inline-flex items-center gap-3 hover:text-[#09afdf]">
75+
<span className="h-2 w-2 rounded-full bg-[#09afdf]" />
76+
<span>{label}</span>
77+
</Link>
78+
</li>
79+
))}
80+
</ul>
81+
</section>
82+
))}
83+
</div>
84+
</div>
85+
</section>
86+
</div>
87+
)
88+
}

0 commit comments

Comments
 (0)