feat(ui): welcome + login redesign with Window primitive and view transitions
Replaces the Laravel starter welcome and the generic login form with the
first real Morgenblau product surface.
- / : full-viewport sunrise Window with brand mark, intro copy,
and an Enter affordance. Pressing Enter morphs the Window
to the login shape via the native CSS View Transitions API.
- /login : golden-ratio split — left form panel (handle input,
Caveat hint, OAuth submit), right sunrise Window. Submit
spinner persists through the OAuth redirect handoff.
New primitives and infra:
- components/window.tsx — Window with asymmetric radii (4rem / 0.5rem),
sunrise variant, view-transition-name="window"
- lib/view-transition.ts — visitWithTransition() wrapping router.visit
in startViewTransition with reduced-motion
and feature-detection fallbacks
- layouts/auth/auth-login-layout.tsx — golden-ratio layout for /login
Design-language scaffolding:
- app.css: heading defaults moved to base layer (text-2xl/font-semibold/
tracking-tight for h1/h2); body weight 300 → 400; bg-sunrise utility;
::selection in atmosphere-blue with relative color syntax for the text;
view-transition rules for window, brand-logo, and login-form
- button.tsx: cursor-pointer, ghost-on-gradient variant, stronger
disabled state (opacity + saturate)
- input.tsx, input-group.tsx: L0-correct bg (gray-50 / gray-700),
rounded-xl, no shadow, h-10, focus = border-ring (no outer outline)
- morgenblau-designer skill: four weights (300/400/500/600), tracking-tight
on all headings, split focus rule (outline for buttons, border-color for
inputs), and a note that heading defaults live in CSS now
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>