🎨 Add home page sections: Hero, Stats, Features, HowItWorks, Bento, Testimonials, CTA
Browse files
web/src/components/home/HeroSection.tsx
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use client";
|
| 2 |
+
|
| 3 |
+
import Link from "next/link";
|
| 4 |
+
|
| 5 |
+
export function HeroSection() {
|
| 6 |
+
return (
|
| 7 |
+
<section style={{ position: "relative", overflow: "hidden" }}>
|
| 8 |
+
<div style={{
|
| 9 |
+
position: "absolute", top: "-30%", right: "-10%",
|
| 10 |
+
width: "700px", height: "700px",
|
| 11 |
+
borderRadius: "50%",
|
| 12 |
+
background: "radial-gradient(circle, rgba(255,107,0,0.06) 0%, transparent 70%)",
|
| 13 |
+
pointerEvents: "none",
|
| 14 |
+
}} />
|
| 15 |
+
<div style={{
|
| 16 |
+
position: "absolute", bottom: "-20%", left: "-5%",
|
| 17 |
+
width: "500px", height: "500px",
|
| 18 |
+
borderRadius: "50%",
|
| 19 |
+
background: "radial-gradient(circle, rgba(0,114,206,0.04) 0%, transparent 70%)",
|
| 20 |
+
pointerEvents: "none",
|
| 21 |
+
}} />
|
| 22 |
+
|
| 23 |
+
<div className="container" style={{ paddingTop: "80px", paddingBottom: "32px", position: "relative" }}>
|
| 24 |
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-16 items-center">
|
| 25 |
+
<div>
|
| 26 |
+
<div className="flex items-center gap-3 mb-8 animate-fade-in-up">
|
| 27 |
+
<span className="badge-glow" style={{ fontSize: "0.75rem" }}>🏆 Hackathon 2025</span>
|
| 28 |
+
<span className="badge-outline" style={{ fontSize: "0.75rem" }}>TigerGraph × Claude</span>
|
| 29 |
+
</div>
|
| 30 |
+
|
| 31 |
+
<h1 className="display-hero mb-8 animate-fade-in-up delay-100">
|
| 32 |
+
Graphs make{" "}
|
| 33 |
+
<br className="hidden sm:block" />
|
| 34 |
+
LLM inference{" "}
|
| 35 |
+
<span className="gradient-text-orange">smarter</span>
|
| 36 |
+
</h1>
|
| 37 |
+
|
| 38 |
+
<p className="body-lg mb-10 animate-fade-in-up delay-200" style={{ maxWidth: "540px", color: "#3d3d3a" }}>
|
| 39 |
+
A dual-pipeline system that routes queries through knowledge graphs
|
| 40 |
+
when it matters — cutting tokens by 40%, speeding up multi-hop questions,
|
| 41 |
+
and delivering measurably better answers.
|
| 42 |
+
</p>
|
| 43 |
+
|
| 44 |
+
<div className="flex flex-wrap gap-4 animate-fade-in-up delay-300">
|
| 45 |
+
<Link href="/playground" className="btn btn-primary btn-lg no-underline">
|
| 46 |
+
Try Live Demo
|
| 47 |
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round">
|
| 48 |
+
<path d="M3 8h10M9 4l4 4-4 4" />
|
| 49 |
+
</svg>
|
| 50 |
+
</Link>
|
| 51 |
+
<Link href="/benchmarks" className="btn btn-secondary btn-lg no-underline">
|
| 52 |
+
View Benchmarks
|
| 53 |
+
</Link>
|
| 54 |
+
</div>
|
| 55 |
+
</div>
|
| 56 |
+
|
| 57 |
+
<div className="animate-fade-in-up delay-400">
|
| 58 |
+
<div className="code-window animate-float" style={{ boxShadow: "0 20px 60px rgba(0,43,73,0.12)" }}>
|
| 59 |
+
<div className="code-window-header">
|
| 60 |
+
<div className="code-window-dot code-window-dot-red" />
|
| 61 |
+
<div className="code-window-dot code-window-dot-yellow" />
|
| 62 |
+
<div className="code-window-dot code-window-dot-green" />
|
| 63 |
+
<span className="body-sm" style={{ color: "#a09d96", marginLeft: "12px" }}>
|
| 64 |
+
graphrag_pipeline.py
|
| 65 |
+
</span>
|
| 66 |
+
</div>
|
| 67 |
+
<div style={{ padding: "28px", fontFamily: "var(--font-mono)", fontSize: "0.8125rem", lineHeight: "2" }}>
|
| 68 |
+
<div style={{ color: "#6c6a64" }}>{"# AI Factory Model — 4-Layer Architecture"}</div>
|
| 69 |
+
<br />
|
| 70 |
+
<div>
|
| 71 |
+
<span style={{ color: "#FF6B00" }}>class</span>
|
| 72 |
+
<span style={{ color: "#faf9f5" }}> GraphRAGPipeline</span>
|
| 73 |
+
<span style={{ color: "#6c6a64" }}>:</span>
|
| 74 |
+
</div>
|
| 75 |
+
<div style={{ paddingLeft: "24px" }}>
|
| 76 |
+
<span style={{ color: "#5db8a6" }}>graph</span>
|
| 77 |
+
<span style={{ color: "#6c6a64" }}>{" = "}</span>
|
| 78 |
+
<span style={{ color: "#e8a55a" }}>TigerGraphCloud</span>
|
| 79 |
+
<span style={{ color: "#6c6a64" }}>()</span>
|
| 80 |
+
</div>
|
| 81 |
+
<div style={{ paddingLeft: "24px" }}>
|
| 82 |
+
<span style={{ color: "#5db8a6" }}>router</span>
|
| 83 |
+
<span style={{ color: "#6c6a64" }}>{" = "}</span>
|
| 84 |
+
<span style={{ color: "#e8a55a" }}>AdaptiveQueryRouter</span>
|
| 85 |
+
<span style={{ color: "#6c6a64" }}>()</span>
|
| 86 |
+
</div>
|
| 87 |
+
<div style={{ paddingLeft: "24px" }}>
|
| 88 |
+
<span style={{ color: "#5db8a6" }}>llm</span>
|
| 89 |
+
<span style={{ color: "#6c6a64" }}>{" = "}</span>
|
| 90 |
+
<span style={{ color: "#e8a55a" }}>UniversalLLM</span>
|
| 91 |
+
<span style={{ color: "#6c6a64" }}>(</span>
|
| 92 |
+
<span style={{ color: "#cc785c" }}>"claude-sonnet-4"</span>
|
| 93 |
+
<span style={{ color: "#6c6a64" }}>)</span>
|
| 94 |
+
</div>
|
| 95 |
+
<div style={{ paddingLeft: "24px" }}>
|
| 96 |
+
<span style={{ color: "#5db8a6" }}>eval</span>
|
| 97 |
+
<span style={{ color: "#6c6a64" }}>{" = "}</span>
|
| 98 |
+
<span style={{ color: "#e8a55a" }}>RAGASEvaluator</span>
|
| 99 |
+
<span style={{ color: "#6c6a64" }}>()</span>
|
| 100 |
+
</div>
|
| 101 |
+
<br />
|
| 102 |
+
<div style={{ paddingLeft: "24px" }}>
|
| 103 |
+
<span style={{ color: "#FF6B00" }}>def</span>
|
| 104 |
+
<span style={{ color: "#faf9f5" }}> query</span>
|
| 105 |
+
<span style={{ color: "#6c6a64" }}>(self, q):</span>
|
| 106 |
+
</div>
|
| 107 |
+
<div style={{ paddingLeft: "48px" }}>
|
| 108 |
+
<span style={{ color: "#6c6a64" }}>route = self.router.</span>
|
| 109 |
+
<span style={{ color: "#5db872" }}>classify</span>
|
| 110 |
+
<span style={{ color: "#6c6a64" }}>(q)</span>
|
| 111 |
+
</div>
|
| 112 |
+
<div style={{ paddingLeft: "48px" }}>
|
| 113 |
+
<span style={{ color: "#6c6a64" }}>context = self.graph.</span>
|
| 114 |
+
<span style={{ color: "#5db872" }}>traverse</span>
|
| 115 |
+
<span style={{ color: "#6c6a64" }}>(q)</span>
|
| 116 |
+
</div>
|
| 117 |
+
<div style={{ paddingLeft: "48px" }}>
|
| 118 |
+
<span style={{ color: "#FF6B00" }}>return</span>
|
| 119 |
+
<span style={{ color: "#6c6a64" }}> self.llm.</span>
|
| 120 |
+
<span style={{ color: "#5db872" }}>generate</span>
|
| 121 |
+
<span style={{ color: "#6c6a64" }}>(context) </span>
|
| 122 |
+
<span style={{ color: "#5db872" }}>✓</span>
|
| 123 |
+
</div>
|
| 124 |
+
</div>
|
| 125 |
+
</div>
|
| 126 |
+
</div>
|
| 127 |
+
</div>
|
| 128 |
+
</div>
|
| 129 |
+
</section>
|
| 130 |
+
);
|
| 131 |
+
}
|