Add Navbar component with TigerGraph\u00d7Claude branding
Browse files
web/src/components/Navbar.tsx
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use client";
|
| 2 |
+
|
| 3 |
+
import { useState } from "react";
|
| 4 |
+
|
| 5 |
+
export function Navbar() {
|
| 6 |
+
const [mobileOpen, setMobileOpen] = useState(false);
|
| 7 |
+
|
| 8 |
+
return (
|
| 9 |
+
<nav className="navbar">
|
| 10 |
+
{/* Logo */}
|
| 11 |
+
<div className="flex items-center gap-3">
|
| 12 |
+
{/* Tiger spike mark */}
|
| 13 |
+
<svg width="28" height="28" viewBox="0 0 28 28" fill="none">
|
| 14 |
+
<circle cx="14" cy="14" r="13" stroke="#FF6B00" strokeWidth="2" />
|
| 15 |
+
<path d="M14 4L14 24M4 14L24 14M7 7L21 21M21 7L7 21" stroke="#FF6B00" strokeWidth="1.5" strokeLinecap="round" />
|
| 16 |
+
</svg>
|
| 17 |
+
<span className="title-lg" style={{ color: "#002B49" }}>
|
| 18 |
+
Graph<span style={{ color: "#FF6B00" }}>RAG</span>
|
| 19 |
+
</span>
|
| 20 |
+
<span className="badge-outline text-xs hidden sm:inline-flex">Hackathon</span>
|
| 21 |
+
</div>
|
| 22 |
+
|
| 23 |
+
{/* Desktop Nav */}
|
| 24 |
+
<div className="hidden md:flex items-center gap-6">
|
| 25 |
+
<a href="#live" className="body-sm hover:text-tiger-orange transition-colors" style={{ color: "#6c6a64" }}>Live Compare</a>
|
| 26 |
+
<a href="#benchmark" className="body-sm hover:text-tiger-orange transition-colors" style={{ color: "#6c6a64" }}>Benchmark</a>
|
| 27 |
+
<a href="#cost" className="body-sm hover:text-tiger-orange transition-colors" style={{ color: "#6c6a64" }}>Cost Analysis</a>
|
| 28 |
+
<a href="#graph" className="body-sm hover:text-tiger-orange transition-colors" style={{ color: "#6c6a64" }}>Graph Explorer</a>
|
| 29 |
+
</div>
|
| 30 |
+
|
| 31 |
+
{/* CTA */}
|
| 32 |
+
<div className="flex items-center gap-3">
|
| 33 |
+
<span className="caption hidden lg:block" style={{ color: "#6c6a64" }}>
|
| 34 |
+
Powered by TigerGraph + Claude
|
| 35 |
+
</span>
|
| 36 |
+
<button className="btn btn-primary btn-sm">
|
| 37 |
+
Try Demo
|
| 38 |
+
</button>
|
| 39 |
+
</div>
|
| 40 |
+
|
| 41 |
+
{/* Mobile hamburger */}
|
| 42 |
+
<button
|
| 43 |
+
className="btn-ghost md:hidden"
|
| 44 |
+
onClick={() => setMobileOpen(!mobileOpen)}
|
| 45 |
+
aria-label="Toggle menu"
|
| 46 |
+
>
|
| 47 |
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
|
| 48 |
+
{mobileOpen ? (
|
| 49 |
+
<path d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" />
|
| 50 |
+
) : (
|
| 51 |
+
<path d="M3 5h14M3 10h14M3 15h14" stroke="currentColor" strokeWidth="2" strokeLinecap="round" fill="none" />
|
| 52 |
+
)}
|
| 53 |
+
</svg>
|
| 54 |
+
</button>
|
| 55 |
+
</nav>
|
| 56 |
+
);
|
| 57 |
+
}
|