Files
portfolio/src/components/Header.tsx

56 lines
2.1 KiB
TypeScript

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>
)
}