From bb7008c50aca537463b3a169adf00a713c2f5f37 Mon Sep 17 00:00:00 2001 From: Matthew Meszaros Date: Fri, 29 May 2026 06:11:18 +0000 Subject: [PATCH] feat: pin logo to showcase pane and restructure auth layout --- web/src/app/auth/_components/AuthShowcase.tsx | 9 +-- web/src/app/auth/layout.tsx | 66 +++++++++---------- 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/web/src/app/auth/_components/AuthShowcase.tsx b/web/src/app/auth/_components/AuthShowcase.tsx index 0c726dcb..5c7d728a 100644 --- a/web/src/app/auth/_components/AuthShowcase.tsx +++ b/web/src/app/auth/_components/AuthShowcase.tsx @@ -149,16 +149,17 @@ const track = [...slides, slides[0]]; // clone first slide for a seamless forwar function SlideView({ slide }: { slide: Slide }) { const Icon = slide.icon; return ( -
-
-
{slide.mock}
+
+
+ {/* Full-width card so a feature is always on screen as it slides in */} +
{slide.mock}

{slide.title}

-

{slide.desc}

+

{slide.desc}

); diff --git a/web/src/app/auth/layout.tsx b/web/src/app/auth/layout.tsx index dfd30114..339d9a1b 100644 --- a/web/src/app/auth/layout.tsx +++ b/web/src/app/auth/layout.tsx @@ -3,16 +3,15 @@ import { Navigate, Outlet, useNavigate } from "react-router-dom"; import { APP_URL, WEBSITE_URL } from "@/lib/information"; import getToken from "@/lib/helper/getToken"; import { Logo } from "@/components/svg"; -import { Github } from "lucide-react"; import AuthShowcase from "./_components/AuthShowcase"; /* ═══════════════════════════════════════════ - Auth layout — a box, with a header above it and a footer below it. + Auth layout — one box, two panes. - The header (logo left · link right) and footer (copyright left · legal - right) share the box's exact width, so the whole thing reads as one - aligned column. The box itself is two panes: a rotating showcase on an - airy sky (left, desktop) and the form (right). + Left : the airy-sky showcase. The Warmbly logo is pinned to it as a + persistent element, so something stays put while the feature + cards slide. Hidden on small screens. + Right : a clean form column with a minimal footer at the bottom. ═══════════════════════════════════════════ */ export default function AuthLayout({ @@ -35,41 +34,36 @@ export default function AuthLayout({ return (
-
- {/* Header — above the box, full box width */} -
- - - Warmbly - - - Star on GitHub +
+ {/* Left: sky showcase with a persistent logo */} + - {/* The box */} -
-
- -
-
-
- + {/* Right: form column + minimal footer */} +
+
+ {/* Logo for the mobile layout (no sky pane there) */} + + + Warmbly + + +
+
+ +
-
-
- {/* Footer — below the box, full box width */} -
- © {new Date().getFullYear()} Warmbly -
- Terms - Privacy +
+ Terms + Privacy + © {new Date().getFullYear()} Warmbly +