From 57710a7fe3f6ada2ddcdc4e7ff7d250914d09d9c Mon Sep 17 00:00:00 2001 From: openhands Date: Tue, 6 Oct 2026 22:00:02 +0200 Subject: [PATCH] style(landing): polish the public index, login and register screens - add theme-aware helpers: btn-brand, btn-glass-dark, auth-input, auth-label, auth-alert, explore-pill, avatar-tile, aurora blobs and a hero scroll cue - reorder backdrop-filter declarations so the glass blur survives the production CSS optimizer in modern Chromium - hero: aurora glow, frosted recent-users chip, premium CTA buttons and cue - explore nav: icon pills with hover arrows; features: gradient icon tiles - stats: single glass panel with column dividers; join CTA: aurora + ring - auth forms: visible labels, icon inputs, eye/password toggle, gradient submit and pill footer links - auth pages: gradient card frame, aurora accents on the intro panel and hover-lift avatar tiles; unified pill-shaped top bar - drop the hard-coded register banner image in favor of the framed card --- src/app/(site)/login/page.tsx | 121 +++++----- src/app/(site)/page.tsx | 287 +++++++++++++--------- src/app/(site)/register/page.tsx | 117 ++++----- src/app/globals.css | 309 +++++++++++++++++++++++- src/components/auth/auth-top-bar.tsx | 41 ++-- src/components/auth/login-form.tsx | 234 +++++++++--------- src/components/auth/password-toggle.tsx | 37 +++ src/components/auth/register-form.tsx | 254 ++++++++----------- 8 files changed, 879 insertions(+), 521 deletions(-) create mode 100644 src/components/auth/password-toggle.tsx diff --git a/src/app/(site)/login/page.tsx b/src/app/(site)/login/page.tsx index 3eec0a4e..408f3532 100644 --- a/src/app/(site)/login/page.tsx +++ b/src/app/(site)/login/page.tsx @@ -72,6 +72,21 @@ export default async function LoginPage() { className="absolute inset-0 overflow-hidden" >
+
+
@@ -88,16 +103,24 @@ export default async function LoginPage() { className="inline-flex items-center gap-2 px-3.5 py-1 rounded-full text-xs font-bold uppercase tracking-wider mt-4 mb-3 border" style={{ borderColor: - "color-mix(in srgb, var(--color-primary) 18%, transparent)", + "color-mix(in srgb, var(--color-primary) 30%, transparent)", background: - "color-mix(in srgb, var(--color-primary) 10%, transparent)", + "color-mix(in srgb, var(--color-surface) 72%, transparent)", color: "var(--color-primary-readable, var(--color-primary))", + boxShadow: + "0 8px 20px -12px color-mix(in srgb, var(--color-primary) 70%, transparent)", }} > - - + + {t("usersOnline", { count: online })}
@@ -111,7 +134,7 @@ export default async function LoginPage() { {t("welcomeBack")}

{t("welcomeBackSub", { hotelName })} @@ -130,26 +153,19 @@ export default async function LoginPage() { {recentUsers.map((u) => (

- - - {u.username} - +
+ + +
+ {u.username}
))}
@@ -167,13 +183,8 @@ export default async function LoginPage() { {latestUsers.map((u) => (
- - {u.username} - + {u.username}
))}
@@ -196,26 +202,29 @@ export default async function LoginPage() { {/* Right: form */}
- -

+ - {t("subtitle")} -

- -
+

+ {t("subtitle")} +

+ + +
diff --git a/src/app/(site)/page.tsx b/src/app/(site)/page.tsx index 99cd006e..bc8788b6 100644 --- a/src/app/(site)/page.tsx +++ b/src/app/(site)/page.tsx @@ -1,4 +1,5 @@ import { count, desc, eq } from "drizzle-orm"; +import { ChevronDown } from "lucide-react"; import type { Metadata } from "next"; import { headers } from "next/headers"; import Image from "next/image"; @@ -484,6 +485,29 @@ export default async function Home() { "linear-gradient(180deg, rgba(8,11,24,0.74) 0%, rgba(8,11,24,0.55) 38%, rgba(8,11,24,0.38) 62%, rgba(8,11,24,0.55) 85%, color-mix(in srgb, var(--color-background) 94%, transparent) 100%)", }} /> + {/* Drifting brand-tinted aurora behind the copy */} +