diff --git a/src/App.jsx b/src/App.jsx
index c4928bc..63a6855 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -57,7 +57,7 @@ function App() {
)}
-
diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index f069e25..3f9254f 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -1,13 +1,79 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import LoginComponent from '../components/LoginComponent'; import Logo from '../assets/images/campfire_logs_square_logo_bg_match.png'; const LoginPage = React.forwardRef(({ onLogin }, ref) => { + const [showLogin, setShowLogin] = useState(false); + const [isTransitioning, setIsTransitioning] = useState(true); + + useEffect(() => { + // Prevent scrollbar during initial load + document.body.style.overflow = 'hidden'; + + // First transition: move logo and copyright to final positions + const transitionTimer = setTimeout(() => { + setIsTransitioning(false); + }, 800); // Match copyright transition timing + + // Second: fade in login component after transition completes + const loginTimer = setTimeout(() => { + setShowLogin(true); + }, 1500); // Give copyright more time to transition + + // Re-enable scrolling after everything is completely done + const scrollTimer = setTimeout(() => { + document.body.style.overflow = 'auto'; + }, 2000); // After all transitions complete + + return () => { + clearTimeout(transitionTimer); + clearTimeout(loginTimer); + clearTimeout(scrollTimer); + // Cleanup: restore scrolling if component unmounts + document.body.style.overflow = 'auto'; + }; + }, []); + return ( -