feat: rebuild portfolio with React + TanStack Start
This commit is contained in:
55
src/components/Header.tsx
Normal file
55
src/components/Header.tsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import { Link } from '@tanstack/react-router'
|
||||
import { GitHubIcon } from '#/components/icons'
|
||||
import { CONTACT_EMAIL } from '#/data/portfolio'
|
||||
import ThemeToggle from './ThemeToggle'
|
||||
|
||||
export default function Header() {
|
||||
return (
|
||||
<header className="sticky top-0 z-50 border-b border-[var(--line)] bg-[var(--header-bg)] px-4 backdrop-blur-lg">
|
||||
<nav className="page-wrap flex flex-wrap items-center gap-x-3 gap-y-2 py-3 sm:py-4">
|
||||
<h2 className="m-0 flex-shrink-0 text-base font-semibold tracking-tight">
|
||||
<Link
|
||||
to="/"
|
||||
className="inline-flex items-center gap-2 rounded-full border border-[var(--chip-line)] bg-[var(--chip-bg)] px-3 py-1.5 text-sm text-[var(--sea-ink)] no-underline shadow-[0_8px_24px_rgba(30,90,72,0.08)] sm:px-4 sm:py-2"
|
||||
>
|
||||
<span className="h-2 w-2 rounded-full bg-[linear-gradient(90deg,#56c6be,#7ed3bf)]" />
|
||||
Mohammad
|
||||
</Link>
|
||||
</h2>
|
||||
|
||||
<div className="ml-auto flex items-center gap-1.5 sm:ml-0 sm:gap-2">
|
||||
<a
|
||||
href="https://github.com/moh682"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="hidden rounded-xl p-2 text-[var(--sea-ink-soft)] transition hover:bg-[var(--link-bg-hover)] hover:text-[var(--sea-ink)] sm:block"
|
||||
>
|
||||
<span className="sr-only">GitHub profile</span>
|
||||
<GitHubIcon width={24} height={24} />
|
||||
</a>
|
||||
|
||||
<ThemeToggle />
|
||||
</div>
|
||||
|
||||
<div className="order-3 flex w-full flex-wrap items-center gap-x-4 gap-y-1 pb-1 text-sm font-semibold sm:order-2 sm:w-auto sm:flex-nowrap sm:pb-0">
|
||||
<Link
|
||||
to="/"
|
||||
className="nav-link"
|
||||
activeProps={{ className: 'nav-link is-active' }}
|
||||
>
|
||||
Home
|
||||
</Link>
|
||||
<a href="/#experience" className="nav-link">
|
||||
Experience
|
||||
</a>
|
||||
<a href="/#skills" className="nav-link">
|
||||
Skills
|
||||
</a>
|
||||
<a href={`mailto:${CONTACT_EMAIL}`} className="nav-link">
|
||||
Contact
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user