Karan6124 commited on
Commit
e7dab27
·
1 Parent(s): fe7c3e2

design: add scrollable glassmorphic tech stack grid and capabilities section to LandingPage

Browse files
Files changed (1) hide show
  1. frontend/src/pages/LandingPage.tsx +189 -35
frontend/src/pages/LandingPage.tsx CHANGED
@@ -169,15 +169,15 @@ export default function LandingPage({ onGoogleLogin, googleClientId, onAuthSucce
169
  };
170
 
171
  return (
172
- <div className="relative min-h-screen w-full overflow-hidden bg-background text-foreground flex flex-col font-body">
173
 
174
- {/* 1. Fullscreen Loop Background Video */}
175
  <video
176
  autoPlay
177
  loop
178
  muted
179
  playsInline
180
- className="absolute inset-0 w-full h-full object-cover z-0 pointer-events-none"
181
  >
182
  <source
183
  src="https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260314_131748_f2ca2a28-fed7-44c8-b9a9-bd9acdd5ec31.mp4"
@@ -187,7 +187,7 @@ export default function LandingPage({ onGoogleLogin, googleClientId, onAuthSucce
187
  </video>
188
 
189
  {/* 2. Glassmorphic Navigation Bar */}
190
- <header className="relative z-10 w-full">
191
  <div className="flex flex-row justify-between items-center px-8 py-6 max-w-7xl mx-auto">
192
  {/* Logo brand combining the custom SVG mark and 'QuantIQ' */}
193
  <div className="flex items-center gap-3 select-none">
@@ -202,14 +202,14 @@ export default function LandingPage({ onGoogleLogin, googleClientId, onAuthSucce
202
 
203
  {/* Navigation Links */}
204
  <nav className="hidden md:flex items-center gap-8">
205
- <a href="#" className="text-sm font-medium text-foreground transition-colors">
206
  Home
207
  </a>
208
- <a href="#" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
209
- Studio
210
  </a>
211
- <a href="#" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
212
- About
213
  </a>
214
  <a href="#" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
215
  Journal
@@ -229,32 +229,186 @@ export default function LandingPage({ onGoogleLogin, googleClientId, onAuthSucce
229
  </div>
230
  </header>
231
 
232
- {/* 3. Cinematic Hero Section */}
233
- <main className="relative z-10 flex-1 flex flex-col justify-center items-center px-6 text-center max-w-7xl mx-auto w-full">
234
- <div className="flex flex-col items-center max-w-5xl pt-12">
235
- {/* Heading H1 */}
236
- <h1
237
- className="text-5xl sm:text-7xl md:text-8xl font-normal leading-[0.95] tracking-[-2.46px] text-foreground animate-fade-rise"
238
- style={{ fontFamily: "'Instrument Serif', serif" }}
239
- >
240
- Where <em className="not-italic text-muted-foreground">wealth</em> rises <br />
241
- <em className="not-italic text-muted-foreground">through the silence.</em>
242
- </h1>
243
-
244
- {/* Subtext */}
245
- <p className="text-muted-foreground text-base sm:text-lg max-w-2xl mt-8 leading-relaxed animate-fade-rise-delay font-normal">
246
- We're designing tools for quantitative traders, market analysts, and strategic investors.
247
- Amid market noise, we build high-fidelity spaces for sharp focus and outperforming strategy.
248
- </p>
249
-
250
- {/* Large Hero CTA */}
251
- <button
252
- onClick={() => { setAuthMode('signin'); setShowAuthModal(true); }}
253
- className="liquid-glass rounded-full px-14 py-5 text-base text-foreground mt-12 hover:scale-[1.03] cursor-pointer transition-transform duration-200 animate-fade-rise-delay-2 shadow-lg"
254
- >
255
- Unlock Alpha
256
- </button>
257
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  </main>
259
 
260
  {/* 4. Glassmorphic Authentication Modal */}
 
169
  };
170
 
171
  return (
172
+ <div className="relative min-h-screen w-full overflow-y-auto scroll-smooth bg-background text-foreground flex flex-col font-body">
173
 
174
+ {/* 1. Fullscreen Fixed Loop Background Video */}
175
  <video
176
  autoPlay
177
  loop
178
  muted
179
  playsInline
180
+ className="fixed inset-0 w-full h-full object-cover z-0 pointer-events-none"
181
  >
182
  <source
183
  src="https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260314_131748_f2ca2a28-fed7-44c8-b9a9-bd9acdd5ec31.mp4"
 
187
  </video>
188
 
189
  {/* 2. Glassmorphic Navigation Bar */}
190
+ <header className="relative z-10 w-full backdrop-blur-[2px] border-b border-white/3">
191
  <div className="flex flex-row justify-between items-center px-8 py-6 max-w-7xl mx-auto">
192
  {/* Logo brand combining the custom SVG mark and 'QuantIQ' */}
193
  <div className="flex items-center gap-3 select-none">
 
202
 
203
  {/* Navigation Links */}
204
  <nav className="hidden md:flex items-center gap-8">
205
+ <a href="#hero" className="text-sm font-medium text-foreground transition-colors">
206
  Home
207
  </a>
208
+ <a href="#stack" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
209
+ The Stack
210
  </a>
211
+ <a href="#capabilities" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
212
+ Capabilities
213
  </a>
214
  <a href="#" className="text-sm font-medium text-muted-foreground hover:text-foreground transition-colors">
215
  Journal
 
229
  </div>
230
  </header>
231
 
232
+ {/* 3. Cinematic Hero and Scrollable Content */}
233
+ <main className="relative z-10 w-full flex flex-col items-center">
234
+
235
+ {/* HERO SECTION */}
236
+ <section id="hero" className="flex flex-col justify-center items-center px-6 text-center max-w-7xl mx-auto w-full min-h-[85vh]">
237
+ <div className="flex flex-col items-center max-w-5xl pt-12">
238
+ {/* Heading H1 */}
239
+ <h1
240
+ className="text-5xl sm:text-7xl md:text-8xl font-normal leading-[0.95] tracking-[-2.46px] text-foreground animate-fade-rise"
241
+ style={{ fontFamily: "'Instrument Serif', serif" }}
242
+ >
243
+ Where <em className="not-italic text-muted-foreground">wealth</em> rises <br />
244
+ <em className="not-italic text-muted-foreground">through the silence.</em>
245
+ </h1>
246
+
247
+ {/* Subtext */}
248
+ <p className="text-muted-foreground text-base sm:text-lg max-w-2xl mt-8 leading-relaxed animate-fade-rise-delay font-normal">
249
+ We're designing tools for quantitative traders, market analysts, and strategic investors.
250
+ Amid market noise, we build high-fidelity spaces for sharp focus and outperforming strategy.
251
+ </p>
252
+
253
+ {/* Large Hero CTA */}
254
+ <button
255
+ onClick={() => { setAuthMode('signin'); setShowAuthModal(true); }}
256
+ className="liquid-glass rounded-full px-14 py-5 text-base text-foreground mt-12 hover:scale-[1.03] cursor-pointer transition-transform duration-200 animate-fade-rise-delay-2 shadow-lg"
257
+ >
258
+ Unlock Alpha
259
+ </button>
260
+ </div>
261
+ </section>
262
+
263
+ {/* THE QUANTIQ STACK INFO SECTION */}
264
+ <section id="stack" className="w-full py-28 border-t border-white/5 flex flex-col items-center text-center bg-black/20 backdrop-blur-[1px]">
265
+ <div className="max-w-7xl mx-auto px-8 w-full flex flex-col items-center">
266
+
267
+ <span className="text-cyan-400 text-xs font-semibold uppercase tracking-widest mb-3">System Architecture</span>
268
+ <h2
269
+ className="text-4xl sm:text-5xl font-normal text-foreground tracking-tight"
270
+ style={{ fontFamily: "'Instrument Serif', serif" }}
271
+ >
272
+ The QuantIQ Technology Stack
273
+ </h2>
274
+ <p className="text-muted-foreground max-w-xl text-sm sm:text-base mt-4 mb-16 leading-relaxed">
275
+ Designed for high-frequency model inference, localized intelligence, and type-safe data streaming.
276
+ </p>
277
+
278
+ {/* Tech Grid */}
279
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 w-full max-w-6xl">
280
+
281
+ {/* Card 1: ONNX */}
282
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-cyan-400/20 hover:scale-[1.01] transition-all duration-300 group">
283
+ <span className="text-[10px] text-cyan-400 uppercase tracking-widest font-semibold block mb-1">Inference Engine</span>
284
+ <h3 className="text-lg font-medium text-foreground mb-3">ONNX Runtime Model</h3>
285
+ <p className="text-xs text-muted-foreground leading-relaxed">
286
+ Executes localized neural network price direction predictions on the client-side stock streams with sub-millisecond execution times.
287
+ </p>
288
+ </div>
289
+
290
+ {/* Card 2: Gemini */}
291
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-purple-400/20 hover:scale-[1.01] transition-all duration-300 group">
292
+ <span className="text-[10px] text-purple-400 uppercase tracking-widest font-semibold block mb-1">Strategic Reasoning</span>
293
+ <h3 className="text-lg font-medium text-foreground mb-3">Gemini ReAct Agent</h3>
294
+ <p className="text-xs text-muted-foreground leading-relaxed">
295
+ Orchestrates event-driven logical reasoning loops cross-examining current indicators, alert levels, and watchlist tickers.
296
+ </p>
297
+ </div>
298
+
299
+ {/* Card 3: FastAPI */}
300
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-emerald-400/20 hover:scale-[1.01] transition-all duration-300 group">
301
+ <span className="text-[10px] text-emerald-400 uppercase tracking-widest font-semibold block mb-1">Backend Core</span>
302
+ <h3 className="text-lg font-medium text-foreground mb-3">FastAPI & Uvicorn</h3>
303
+ <p className="text-xs text-muted-foreground leading-relaxed">
304
+ High-performance Python ASGI backend handling auth verification, database sessions, and payment order callbacks.
305
+ </p>
306
+ </div>
307
+
308
+ {/* Card 4: Strawberry GraphQL */}
309
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-cyan-400/20 hover:scale-[1.01] transition-all duration-300 group">
310
+ <span className="text-[10px] text-cyan-400 uppercase tracking-widest font-semibold block mb-1">Data Query & Stream</span>
311
+ <h3 className="text-lg font-medium text-foreground mb-3">Strawberry GraphQL</h3>
312
+ <p className="text-xs text-muted-foreground leading-relaxed">
313
+ Defines type-safe schemas for queries, mutations, and WebSocket subscriptions to stream real-time price updates.
314
+ </p>
315
+ </div>
316
+
317
+ {/* Card 5: Redpanda */}
318
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-rose-400/20 hover:scale-[1.01] transition-all duration-300 group">
319
+ <span className="text-[10px] text-rose-400 uppercase tracking-widest font-semibold block mb-1">Message Broker</span>
320
+ <h3 className="text-lg font-medium text-foreground mb-3">Redpanda Data Stream</h3>
321
+ <p className="text-xs text-muted-foreground leading-relaxed">
322
+ Ingests and queues tick-by-tick real-time stock pricing updates to provide high-throughput WebSocket broadcast streams.
323
+ </p>
324
+ </div>
325
+
326
+ {/* Card 6: PostgreSQL */}
327
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-blue-400/20 hover:scale-[1.01] transition-all duration-300 group">
328
+ <span className="text-[10px] text-blue-400 uppercase tracking-widest font-semibold block mb-1">Persistence</span>
329
+ <h3 className="text-lg font-medium text-foreground mb-3">PostgreSQL & SQLAlchemy</h3>
330
+ <p className="text-xs text-muted-foreground leading-relaxed">
331
+ Stores user transactions, price thresholds for alerts, user profiles, and historical stock candlesticks.
332
+ </p>
333
+ </div>
334
+
335
+ {/* Card 7: Razorpay */}
336
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-indigo-400/20 hover:scale-[1.01] transition-all duration-300 group">
337
+ <span className="text-[10px] text-indigo-400 uppercase tracking-widest font-semibold block mb-1">Monetization</span>
338
+ <h3 className="text-lg font-medium text-foreground mb-3">Razorpay Checkout SDK</h3>
339
+ <p className="text-xs text-muted-foreground leading-relaxed">
340
+ Enables integrated test-mode checkout payments to purchase SaaS credit packs for running Gemini Agent analyses.
341
+ </p>
342
+ </div>
343
+
344
+ {/* Card 8: React & Tailwind v4 */}
345
+ <div className="liquid-glass rounded-2xl p-7 text-left border border-white/5 hover:border-violet-400/20 hover:scale-[1.01] transition-all duration-300 group">
346
+ <span className="text-[10px] text-violet-400 uppercase tracking-widest font-semibold block mb-1">Frontend Layer</span>
347
+ <h3 className="text-lg font-medium text-foreground mb-3">React 19 & Tailwind v4</h3>
348
+ <p className="text-xs text-muted-foreground leading-relaxed">
349
+ Built with React's latest hooks and Tailwind's compile-time CSS engine to deliver a responsive, glassmorphic layout.
350
+ </p>
351
+ </div>
352
+
353
+ </div>
354
+ </div>
355
+ </section>
356
+
357
+ {/* CORE PLATFORM CAPABILITIES SECTION */}
358
+ <section id="capabilities" className="w-full py-28 border-t border-white/5 flex flex-col items-center text-center">
359
+ <div className="max-w-7xl mx-auto px-8 w-full flex flex-col items-center">
360
+
361
+ <span className="text-purple-400 text-xs font-semibold uppercase tracking-widest mb-3">Capabilities</span>
362
+ <h2
363
+ className="text-4xl sm:text-5xl font-normal text-foreground tracking-tight"
364
+ style={{ fontFamily: "'Instrument Serif', serif" }}
365
+ >
366
+ Real-Time Stock Intelligence
367
+ </h2>
368
+ <p className="text-muted-foreground max-w-xl text-sm sm:text-base mt-4 mb-16 leading-relaxed">
369
+ Unlock data-driven execution tools to back up and cross-reference your investing strategies.
370
+ </p>
371
+
372
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-8 w-full max-w-4xl">
373
+
374
+ {/* Feature A */}
375
+ <div className="liquid-glass rounded-3xl p-8 border border-white/5 text-left flex flex-col justify-between hover:border-white/10 hover:shadow-xl transition-all duration-300">
376
+ <div>
377
+ <h3 className="text-xl font-medium text-foreground mb-4">Event-Driven Price Alerts</h3>
378
+ <p className="text-xs text-muted-foreground leading-relaxed mb-6">
379
+ Establish target limits on active stock tickers. The platform checks prices against targets in real time, notifying you immediately when thresholds are crossed.
380
+ </p>
381
+ </div>
382
+ <div className="h-[2px] w-12 bg-cyan-400/50"></div>
383
+ </div>
384
+
385
+ {/* Feature B */}
386
+ <div className="liquid-glass rounded-3xl p-8 border border-white/5 text-left flex flex-col justify-between hover:border-white/10 hover:shadow-xl transition-all duration-300">
387
+ <div>
388
+ <h3 className="text-xl font-medium text-foreground mb-4">Interactive Strategy Gauges</h3>
389
+ <p className="text-xs text-muted-foreground leading-relaxed mb-6">
390
+ Formulate bullish or bearish confidence indicators based on qualitative and quantitative inputs from your watchlists, ONNX models, and technical indicator metrics.
391
+ </p>
392
+ </div>
393
+ <div className="h-[2px] w-12 bg-purple-400/50"></div>
394
+ </div>
395
+
396
+ </div>
397
+ </div>
398
+ </section>
399
+
400
+ {/* FOOTER */}
401
+ <footer className="w-full py-12 border-t border-white/5 text-center text-xs text-muted-foreground bg-black/30 backdrop-blur-[2px]">
402
+ <div className="max-w-7xl mx-auto px-8 flex flex-col sm:flex-row justify-between items-center gap-4">
403
+ <span className="font-light">© {new Date().getFullYear()} QuantIQ Platform. All rights reserved.</span>
404
+ <div className="flex gap-6">
405
+ <a href="#" className="hover:text-foreground transition-colors">Privacy Policy</a>
406
+ <a href="#" className="hover:text-foreground transition-colors">Terms of Service</a>
407
+ <a href="#" className="hover:text-foreground transition-colors">API Docs</a>
408
+ </div>
409
+ </div>
410
+ </footer>
411
+
412
  </main>
413
 
414
  {/* 4. Glassmorphic Authentication Modal */}