Build portfolio site with Next.js, Tailwind CSS, and dark mode
- Add CLAUDE.md with project conventions and architecture notes
- Create Navbar (sticky, backdrop blur, mobile menu) and Footer
- Build homepage sections: Hero, FeaturedProjects, Skills, CurrentWork, CallToAction
- Add /projects, /about, and /contact pages
- Create reusable ProjectCard and Badge components
- Centralise project data in content/projects.json with featured flag
- Add class-based dark mode toggle (default dark, persisted to localStorage)
- Refactor globals.css: remove conflicting prefers-color-scheme media query
- Fix two-instance ThemeToggle sync bug in Navbar
- Fix key={index} anti-pattern in timeline, stale closure in setOpen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
const links = [
|
||||
{
|
||||
label: 'Email',
|
||||
value: 'jonathan@example.com',
|
||||
href: 'mailto:jonathan@example.com',
|
||||
},
|
||||
{
|
||||
label: 'GitHub',
|
||||
value: 'github.com/jonathan',
|
||||
href: 'https://github.com/jonathan',
|
||||
},
|
||||
]
|
||||
|
||||
export default function ContactPage() {
|
||||
return (
|
||||
<div className="mx-auto max-w-3xl px-6 py-16">
|
||||
<h1 className="mb-3 text-3xl font-semibold text-zinc-900 dark:text-white">Contact</h1>
|
||||
<p className="mb-12 text-sm text-zinc-600 dark:text-zinc-400">
|
||||
The best way to reach me is by email. I'm also on GitHub.
|
||||
</p>
|
||||
<ul className="divide-y divide-zinc-200 border-y border-zinc-200 dark:divide-zinc-800 dark:border-zinc-800">
|
||||
{links.map(({ label, value, href }) => (
|
||||
<li key={label} className="flex flex-col gap-1 py-5 sm:flex-row sm:items-center sm:gap-8">
|
||||
<span className="w-24 shrink-0 text-sm text-zinc-500">{label}</span>
|
||||
<a
|
||||
href={href}
|
||||
className="text-sm text-zinc-700 transition-colors hover:text-zinc-900 dark:text-zinc-300 dark:hover:text-white"
|
||||
{...(href.startsWith('http') ? { target: '_blank', rel: 'noopener noreferrer' } : {})}
|
||||
>
|
||||
{value}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user