Spaces:
Running
Running
File size: 1,538 Bytes
74626f2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import React from 'react';
interface AuthLayoutProps {
children: React.ReactNode;
illustration?: React.ReactNode;
}
export const AuthLayout: React.FC<AuthLayoutProps> = ({ children, illustration }) => {
return (
<div className="min-h-screen w-full flex items-center justify-center bg-[#F8FAFC] overflow-hidden relative font-['Poppins']">
{/* Dynamic Background Gradients - Lighter & Softer */}
<div className="absolute top-[-10%] left-[-10%] w-[50%] h-[50%] bg-brand/10 rounded-full blur-[120px] animate-pulse" />
<div className="absolute bottom-[-10%] right-[-10%] w-[50%] h-[50%] bg-brand-light/10 rounded-full blur-[120px] animate-pulse" />
<div className="absolute top-[20%] right-[10%] w-[30%] h-[30%] bg-[#E0E7FF]/20 rounded-full blur-[100px]" />
<div className="container mx-auto px-4 z-10 flex items-center justify-center">
<div className="flex w-full max-w-5xl bg-white/40 backdrop-blur-md rounded-[40px] border border-white/60 overflow-hidden shadow-[0_20px_50px_rgba(0,0,0,0.05)]">
{/* Illustration Side (Desktop) */}
{illustration && (
<div className="hidden lg:flex lg:w-1/2 p-12 items-center justify-center bg-gradient-to-br from-brand/5 to-brand-dark/5 border-r border-white/40">
{illustration}
</div>
)}
{/* Form Side */}
<div className={`w-full ${illustration ? 'lg:w-1/2' : ''} p-8 lg:p-12`}>
{children}
</div>
</div>
</div>
</div>
);
};
|