From f224b0a8a1d487be3f7419998dc295dac2ca6c4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20=C4=B0pek?= Date: Sun, 22 Feb 2026 15:53:53 +0300 Subject: [PATCH] feat(landing): redesign homepage with GSAP-driven landing page and new showcase assets --- app/globals.css | 19 +- app/layout.tsx | 19 +- app/page.tsx | 409 +--------- bun.lock | 3 + components/LandingPage.tsx | 960 ++++++++++++++++++++++++ package.json | 1 + public/landing/.webp | Bin 0 -> 49260 bytes public/landing/compare-v2.webp | Bin 0 -> 49706 bytes public/landing/compare.webp | Bin 0 -> 49706 bytes public/landing/deep-dive-dashboard.webp | Bin 0 -> 49260 bytes public/landing/workflow-comment.webp | Bin 0 -> 14456 bytes public/landing/workflow-upload.webp | Bin 0 -> 8676 bytes public/landing/workflow-version.webp | Bin 0 -> 6102 bytes 13 files changed, 1001 insertions(+), 410 deletions(-) create mode 100644 components/LandingPage.tsx create mode 100644 public/landing/.webp create mode 100644 public/landing/compare-v2.webp create mode 100644 public/landing/compare.webp create mode 100644 public/landing/deep-dive-dashboard.webp create mode 100644 public/landing/workflow-comment.webp create mode 100644 public/landing/workflow-upload.webp create mode 100644 public/landing/workflow-version.webp diff --git a/app/globals.css b/app/globals.css index d1d2ea0..ef16faa 100644 --- a/app/globals.css +++ b/app/globals.css @@ -123,4 +123,21 @@ body { @apply bg-background text-foreground; } -} \ No newline at end of file +} + +.noise-overlay { + position: fixed; + inset: 0; + pointer-events: none; + z-index: 40; + opacity: 0.03; + filter: url(#openframe-noise); + mix-blend-mode: soft-light; +} + +.noise-overlay::before { + content: ""; + position: absolute; + inset: 0; + background: var(--foreground); +} diff --git a/app/layout.tsx b/app/layout.tsx index fc696b4..dbb5802 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,5 @@ import type { Metadata } from "next"; -import { JetBrains_Mono } from "next/font/google"; +import { Geist_Mono, JetBrains_Mono } from "next/font/google"; import { ThemeProvider } from "@/components/theme-provider"; import { Toaster } from "sonner"; import "./globals.css"; @@ -11,6 +11,13 @@ const jetbrainsMono = JetBrains_Mono({ preload: true, }); +const geistMono = Geist_Mono({ + subsets: ['latin'], + variable: '--font-geist-mono', + display: 'swap', + preload: true, +}); + export const metadata: Metadata = { title: "OpenFrame - Video Feedback Platform", description: "Collect timestamped video feedback with text and voice comments", @@ -22,15 +29,21 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - + + + {children} +