feat: launch public product website

This commit is contained in:
2026-08-20 20:13:35 -04:00
parent d3c30859b2
commit 81109f36ea
41 changed files with 4378 additions and 386 deletions
+62 -15
View File
@@ -1,26 +1,73 @@
import { Menu } from "lucide-react";
import Link from "next/link";
import { MedscribeLogo } from "~/components/medscribe-logo";
import { Button } from "~/components/ui/button";
const navigation = [
{ href: "/how-it-works", label: "How it works" },
{ href: "/privacy", label: "Privacy & evidence" },
] as const;
export function SiteHeader() {
return (
<header className="print-hidden sticky top-3 z-50 px-3 sm:px-6">
<div className="relative mx-auto max-w-5xl">
<div className="relative flex h-14 items-center rounded-full border border-border-soft/80 bg-canvas/82 px-4 shadow-[0_10px_30px_rgba(15,23,42,0.08)] backdrop-blur-md sm:px-5">
<Link
href="/"
className="relative z-10 flex items-center text-foreground transition-opacity hover:opacity-80"
aria-label="Medscribe home"
>
<MedscribeLogo className="h-7 w-auto" />
</Link>
<p className="pointer-events-none absolute inset-x-0 text-center font-serif text-lg font-semibold tracking-tight text-foreground">
<header className="print-hidden border-border-soft/70 bg-canvas/88 sticky top-0 z-50 border-b backdrop-blur-lg">
<div className="mx-auto flex h-16 max-w-6xl items-center gap-5 px-4 sm:px-6">
<Link
href="/"
className="text-foreground focus-visible:ring-primary/40 flex shrink-0 items-center gap-2.5 rounded-md transition-opacity outline-none hover:opacity-75 focus-visible:ring-2"
aria-label="Medscribe home"
>
<MedscribeLogo className="h-7 w-auto" />
<span className="font-serif text-lg font-semibold tracking-tight">
Medscribe
</p>
<span className="relative z-10 ml-auto hidden text-xs font-medium tracking-[0.14em] text-muted-foreground uppercase sm:inline">
Executive summary
</span>
</div>
</Link>
<nav
aria-label="Primary navigation"
className="ml-auto hidden items-center gap-1 md:flex"
>
{navigation.map((item) => (
<Link
key={item.href}
href={item.href}
className="text-muted-foreground hover:bg-surface-soft hover:text-foreground focus-visible:ring-primary/40 rounded-lg px-3 py-2 text-sm font-medium transition-colors outline-none focus-visible:ring-2"
>
{item.label}
</Link>
))}
<Button asChild size="sm" className="ml-2">
<Link href="/beta">Request beta access</Link>
</Button>
</nav>
<details className="group relative ml-auto md:hidden">
<summary className="border-border-soft bg-surface text-foreground focus-visible:ring-primary/40 flex size-11 cursor-pointer list-none items-center justify-center rounded-xl border outline-none marker:content-none focus-visible:ring-2 [&::-webkit-details-marker]:hidden">
<Menu className="size-5" aria-hidden="true" />
<span className="sr-only">Open navigation</span>
</summary>
<nav
aria-label="Mobile navigation"
className="border-border-soft bg-surface absolute top-13 right-0 flex w-64 flex-col rounded-2xl border p-2 shadow-[0_18px_50px_rgba(15,23,42,0.16)]"
>
{navigation.map((item) => (
<Link
key={item.href}
href={item.href}
className="text-foreground hover:bg-surface-soft focus-visible:ring-primary/40 rounded-xl px-4 py-3 text-sm font-medium outline-none focus-visible:ring-2"
>
{item.label}
</Link>
))}
<Link
href="/beta"
className="bg-primary-button hover:bg-primary-button/90 focus-visible:ring-primary/40 mt-1 rounded-xl px-4 py-3 text-center text-sm font-semibold text-white outline-none focus-visible:ring-2"
>
Request beta access
</Link>
</nav>
</details>
</div>
</header>
);