feat(site): consistent card radius and remove duplicate login CTAs
CI / check (push) Successful in 2m32s
CI / deploy (push) Successful in 1m17s
CI / publish-container (push) Successful in 53s

Professional tidy-up of the landing experience:
- SurfaceCard: unified rounded-xl radius for a crisper, consistent look.
- Hero: matches the new card radius and gains a dual-direction title
  shadow so the headline stays readable over the header artwork.
- Login/register: drop the duplicated "no account / have an account"
  paragraphs — the forms already ship an inline footer, so one clear CTA
  cluster remains and the side column is cleaner.
This commit is contained in:
openhands committed 2026-09-12 16:35:28 +02:00
1 parent 29b9a4b0dc
commit 3265cf1fad
4 files changed
+6 -38

No files matched your search

+1 -18
View File
@@ -4,7 +4,6 @@ import Image from "next/image";
import { getTranslations } from "next-intl/server";
import { AuthTopBar } from "@/components/auth/auth-top-bar";
import { LoginForm } from "@/components/auth/login-form";
import Link from "@/components/link";
import { Reveal } from "@/components/motion-reveal";
import { UserAvatarThumbnail } from "@/components/shared/user-avatar-thumbnail";
import { SurfaceCard } from "@/components/surface-card";
@@ -188,22 +187,6 @@ export default async function LoginPage() {
</div>
</SurfaceCard>
)}
<p
className="text-xs text-center"
style={{ color: "var(--color-text-muted)" }}
>
{t("noAccount") ?? "No account?"}{" "}
<Link
href="/register"
className="font-extrabold hover:underline"
style={{
color: "var(--color-primary-readable, var(--color-primary))",
}}
>
{t("createOne") ?? "Create one"}
</Link>
</p>
</div>
{/* Right: form */}
@@ -211,7 +194,7 @@ export default async function LoginPage() {
<SurfaceCard
title={t("title")}
icon="/assets/images/icons/navigation/me.png"
bodyClassName="p-6"
bodyClassName="p-6 sm:p-7"
>
<p
className="text-sm mb-6"
+3 -1
View File
@@ -214,7 +214,7 @@ export default async function Home() {
{/* ── Hero ── */}
<Reveal>
<div
className="relative overflow-hidden rounded-2xl sm:rounded-3xl border"
className="relative overflow-hidden rounded-xl border"
style={{
borderColor:
"color-mix(in srgb, var(--color-text-muted) 8%, transparent)",
@@ -270,6 +270,8 @@ export default async function Home() {
className="text-2xl font-black leading-[1.05] tracking-tight mb-2 sm:text-3xl md:text-5xl lg:text-6xl"
style={{
fontFamily: "var(--font-nunito)",
textShadow:
"0 1px 0 color-mix(in srgb, #ffffff 35%, transparent), 0 2px 14px color-mix(in srgb, #000 28%, transparent)",
}}
>
<span style={{ color: "var(--color-text-readable)" }}>
+1 -18
View File
@@ -4,7 +4,6 @@ import Image from "next/image";
import { getTranslations } from "next-intl/server";
import { AuthTopBar } from "@/components/auth/auth-top-bar";
import { RegisterForm } from "@/components/auth/register-form";
import Link from "@/components/link";
import { Reveal } from "@/components/motion-reveal";
import { UserAvatarThumbnail } from "@/components/shared/user-avatar-thumbnail";
import { SurfaceCard } from "@/components/surface-card";
@@ -197,22 +196,6 @@ export default async function RegisterPage() {
</div>
</SurfaceCard>
)}
<p
className="text-sm text-center"
style={{ color: "var(--color-text-muted)" }}
>
{tpr("alreadyHaveAccountPre")}{" "}
<Link
href="/login"
className="font-extrabold hover:underline"
style={{
color: "var(--color-primary-readable, var(--color-primary))",
}}
>
{tpr("alreadyHaveAccountLink")}
</Link>
</p>
</div>
{/* Right: form */}
@@ -220,7 +203,7 @@ export default async function RegisterPage() {
<SurfaceCard
title={tpr("title")}
icon="/assets/images/icons/navigation/me.png"
bodyClassName="p-6"
bodyClassName="p-6 sm:p-7"
>
<p
className="text-sm mb-6"
+1 -1
View File
@@ -48,7 +48,7 @@ export function SurfaceCard({
return (
<div
className={`surface-card card-hairline overflow-hidden rounded-2xl border bg-[var(--color-surface)] ${className}`}
className={`surface-card card-hairline overflow-hidden rounded-xl border bg-[var(--color-surface)] ${className}`}
style={{
borderColor: CARD_BORDER,
boxShadow: CARD_SHADOW,