diff --git a/website/public/images/parallax/moon.svg b/website/public/images/parallax/moon.svg new file mode 100644 index 0000000..8ee377f --- /dev/null +++ b/website/public/images/parallax/moon.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + weather icon - full moon + 2012-06-14T11:14:31 + + https://openclipart.org/detail/170669/weather-icon---full-moon-by-gnokii-170669 + + + gnokii + + + + + cosmic + full moon + icon + moon + weather + + + + + + + + + + + diff --git a/website/public/images/parallax/spring-elements-without-hiker.svg b/website/public/images/parallax/spring-elements-without-hiker.svg new file mode 100644 index 0000000..ecbc668 --- /dev/null +++ b/website/public/images/parallax/spring-elements-without-hiker.svg @@ -0,0 +1 @@ + diff --git a/website/src/components/Navbar.tsx b/website/src/components/Navbar.tsx index db442a5..f487b08 100644 --- a/website/src/components/Navbar.tsx +++ b/website/src/components/Navbar.tsx @@ -51,13 +51,13 @@ const Navbar = ({ backgroundColor = "bg-transparent" }: NavbarProps) => { // Handle navigation with hash const handleNavigation = (hash: string) => { - if (location.pathname !== '/') { + if (location.pathname !== "/") { navigate(`/${hash}`); } else { // If we're already on the home page, just scroll to the section const element = document.querySelector(hash); if (element) { - element.scrollIntoView({ behavior: 'smooth' }); + element.scrollIntoView({ behavior: "smooth" }); } } }; @@ -71,7 +71,7 @@ const Navbar = ({ backgroundColor = "bg-transparent" }: NavbarProps) => { if (element) { // Small delay to ensure the page is fully loaded setTimeout(() => { - element.scrollIntoView({ behavior: 'smooth' }); + element.scrollIntoView({ behavior: "smooth" }); }, 100); } } @@ -81,8 +81,8 @@ const Navbar = ({ backgroundColor = "bg-transparent" }: NavbarProps) => { handleHashNavigation(); // Handle hash changes - window.addEventListener('hashchange', handleHashNavigation); - return () => window.removeEventListener('hashchange', handleHashNavigation); + window.addEventListener("hashchange", handleHashNavigation); + return () => window.removeEventListener("hashchange", handleHashNavigation); }, []); // Define the menu structure @@ -127,31 +127,31 @@ const Navbar = ({ backgroundColor = "bg-transparent" }: NavbarProps) => { {/* Desktop Navigation */} {/* Mobile Menu Button */} diff --git a/website/src/pages/Index.tsx b/website/src/pages/Index.tsx index 26d335f..eac646a 100644 --- a/website/src/pages/Index.tsx +++ b/website/src/pages/Index.tsx @@ -70,29 +70,53 @@ const Index = () => { window.removeEventListener("scroll", handleScroll); }; }, []); + const now = new Date(); + const isAfterSunday4PM = true; // Sunday, May 11th, 4PM German time return (
- + {/* Hero section with parallax effect */}
{/* Green gradient overlay */} -
+
- {/* Sun layer - rising sun effect */} + {/* Sun/Moon layer - rising sun/moon effect */}
@@ -129,7 +153,7 @@ const Index = () => { ref={fgLayerRef} className="parallax-layer z-4" style={{ - backgroundImage: `url("/images/parallax/spring-elements.svg")`, + backgroundImage: `url("/images/parallax/spring-elements-without-hiker.svg")`, backgroundPosition: "bottom center", backgroundRepeat: "no-repeat", backgroundSize: "cover", @@ -153,66 +177,82 @@ const Index = () => { {/* Hero content */}
-

+

CDTM HACKS 2025

- Spring is here - plant your ideas. -
- Join us for 36 hours of building in the heart of Europe. + {isAfterSunday4PM ? ( + "Thank you for an amazing weekend in the heart of Europe." + ) : ( + <> + Spring is here - plant your ideas. +
+ Join us for 36 hours of building in the heart of Europe. + + )}

- - 09. - 11. May 2025 at - - - - - Celonis, Munich - - + + + + Celonis, Munich + + + )} {/* Mobile buttons - only show on small screens */} -
- -
+ +
+ )}
{/* Curved transition and wooden sign - hide on mobile */}
@@ -233,56 +273,60 @@ const Index = () => { {/* Wooden Sign with flowers */} - { - e.currentTarget.style.transform = "translate(-50%) rotateZ(2deg)"; - }} - onMouseLeave={(e) => { - e.currentTarget.style.transform = "translate(-50%) rotateZ(0deg)"; - }} - onClick={() => setIsDialogOpen(true)} - > - {/* Shadow */} - + {!isAfterSunday4PM && ( + { + e.currentTarget.style.transform = + "translate(-50%) rotateZ(2deg)"; + }} + onMouseLeave={(e) => { + e.currentTarget.style.transform = + "translate(-50%) rotateZ(0deg)"; + }} + onClick={() => setIsDialogOpen(true)} + > + {/* Shadow */} + - {/* Pole with rounded bottom */} - + {/* Pole with rounded bottom */} + - {/* Sign board */} - - {/* Main board with shadow */} - + {/* Sign board */} + + {/* Main board with shadow */} + - {/* Text */} - - Apply - - - + {/* Text */} + + Apply + + + + )}