Redesign webapp with minimal style and full backend integration

- New monochrome design system in globals.css (no shadows, tight spacing, system-font)
- Root layout stripped to html/body; home page owns its Header/Footer
- Dashboard fully wired to FastAPI backend: upload, branch, submission, publish, download
- CVTree rebuilt as compact file-tree component driven by real version data
- DiffViewer rebuilt as minimal git-diff display using real patch data
- API client (libs/api.ts) extended with all CRUD operations
- Header redesigned to match minimal style
- Backend: added GET /documents/{id}/versions/{id}/download endpoint for DOCX export

https://claude.ai/code/session_01Xmxm2QLgFBgRJyYD6VukR6
This commit is contained in:
Claude
2026-04-02 18:12:25 +00:00
parent b57db1fe7b
commit e6c29f3bd4
9 changed files with 800 additions and 984 deletions

View File

@@ -1,53 +1,21 @@
import Link from "next/link";
export default function Header() {
return (
<header className="bg-white border-b border-gray-200 sticky top-0 z-40">
<div className="max-w-7xl mx-auto px-6 py-4">
<div className="flex items-center justify-between">
<div className="flex items-center">
<Link href="/" className="text-xl font-bold text-gray-900 hover:text-blue-600 transition-colors">
Resume Branches
return (
<header style={{ borderBottom: "1px solid var(--border)", padding: "0 24px", height: 52, display: "flex", alignItems: "center", justifyContent: "space-between", background: "#fff", position: "sticky", top: 0, zIndex: 40 }}>
<Link href="/" style={{ fontSize: 14, fontWeight: 600, color: "var(--text)", textDecoration: "none" }}>
Resume Branches
</Link>
</div>
<nav className="hidden md:flex items-center space-x-8">
<Link
href="/"
className="text-gray-600 hover:text-gray-900 font-medium transition-colors"
>
Home
</Link>
<Link
href="/dashboard"
className="text-gray-600 hover:text-gray-900 font-medium transition-colors"
>
Dashboard
</Link>
<Link
href="/docs"
className="text-gray-600 hover:text-gray-900 font-medium transition-colors"
>
Docs
</Link>
</nav>
<div className="flex items-center gap-3">
<Link
href="/login"
className="text-gray-600 hover:text-gray-900 font-medium transition-colors"
>
Sign In
</Link>
<Link
href="/dashboard"
className="btn-primary"
>
Get Started
</Link>
</div>
</div>
</div>
</header>
);
<nav style={{ display: "flex", alignItems: "center", gap: 24 }}>
{[["Dashboard", "/dashboard"], ["Docs", "/docs"]].map(([label, href]) => (
<Link key={href} href={href} style={{ fontSize: 13, color: "var(--text-muted)", textDecoration: "none" }}>
{label}
</Link>
))}
<Link href="/dashboard" className="btn btn-primary" style={{ padding: "5px 14px", fontSize: 13 }}>
Open app
</Link>
</nav>
</header>
);
}