feat(quick-260907-fgv-02): sechs Marken-Stellen auf TesseraLogo umgestellt, Gelbwert zusammengefuehrt

- header.tsx, sidebar.tsx (Schublade), login/page.tsx (breit + schmal),
  reset-password/page.tsx, reset-password/[token]/page.tsx ziehen jetzt
  alle TesseraLogo statt eines von Hand gesetzten Schriftzugs
- login/page.tsx: handgezeichneter Vier-Quadrate-Platzhalter entfernt,
  gelbes Panel nutzt BRAND_YELLOW per Inline-Style statt eigener
  Tailwind-Klasse, Kopfkommentar ohne Farbwert neu formuliert
- account-settings-form.tsx: DEFAULT_ACCENT liest jetzt BRAND_YELLOW statt
  eines eigenen Literals
- tessera-logo.tsx: Schriftzug setzt keine eigene Textfarbe mehr, sondern
  erbt sie vom umgebenden Container (Rule 1 -- ohne diese Korrektur waere
  der Schriftzug auf dem immer gelben Anmelde-Panel im dunklen
  Erscheinungsbild unlesbar hell auf hell gewesen)
- sidebar.tsx: nicht mehr benoetigtes tCommon entfernt; sidebar.test.tsx
  um common.brand.logoAlt in der Uebersetzungs-Attrappe ergaenzt
- vollstaendige Web-Testsuite (221 Tests) und Typpruefung gruen

Docker-Neubau und Browser-Abnahme (curl-Health-Check gegen den lokalen
Container) bewusst ausgelassen -- der Orchestrator uebernimmt beides in
Task 3.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
This commit is contained in:
2026-09-07 11:25:14 +02:00
parent 49d3df4485
commit c4cc05a942
8 changed files with 23 additions and 46 deletions
+10 -30
View File
@@ -5,10 +5,12 @@ import { useTranslations } from 'next-intl';
import { useRouter } from 'next/navigation';
import Link from 'next/link';
import { login } from '@/lib/auth-actions';
import { BRAND_YELLOW } from '@/components/brand/brand';
import { TesseraLogo } from '@/components/brand/tessera-logo';
/**
* Split-screen login page (D-01).
* Left: Tessera branding with primary yellow (#ffed00) background.
* Left: Tessera branding on the brand yellow background (BRAND_YELLOW).
* Right: Login form on neutral background.
* No sidebar or header (D-04, handled by (auth) layout).
*/
@@ -37,35 +39,15 @@ export default function LoginPage() {
return (
<div className="flex min-h-screen">
{/* Left: Branding panel (hidden on mobile, visible on md+) */}
<div className="hidden md:flex md:flex-1 items-center justify-center bg-[#ffed00]">
<div className="flex flex-col items-center gap-6 px-8 text-center">
{/* Tessera logo / text */}
<h1 className="text-6xl font-extrabold text-gray-900 tracking-tight">
Tessera
</h1>
<div
className="hidden md:flex md:flex-1 items-center justify-center"
style={{ backgroundColor: BRAND_YELLOW }}
>
<div className="flex flex-col items-center gap-6 px-8 text-center text-gray-900">
<TesseraLogo variant="stacked" size={112} plateOutline={false} />
<p className="text-xl text-gray-800 max-w-md leading-relaxed">
{t('branding.tagline')}
</p>
{/* Abstract grid icon representing modules */}
<div className="mt-4">
<svg
xmlns="http://www.w3.org/2000/svg"
width="80"
height="80"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
className="text-gray-800 opacity-50"
>
<rect x="3" y="3" width="7" height="7" rx="1" />
<rect x="14" y="3" width="7" height="7" rx="1" />
<rect x="14" y="14" width="7" height="7" rx="1" />
<rect x="3" y="14" width="7" height="7" rx="1" />
</svg>
</div>
</div>
</div>
@@ -74,9 +56,7 @@ export default function LoginPage() {
<div className="w-full max-w-sm space-y-8">
{/* Mobile-only branding */}
<div className="text-center md:hidden">
<h1 className="text-3xl font-extrabold text-primary tracking-tight">
Tessera
</h1>
<TesseraLogo variant="horizontal" size={32} />
<p className="mt-2 text-sm text-muted-foreground">
{t('branding.tagline')}
</p>