diff --git a/src/App.tsx b/src/App.tsx index c231777..4b20f8c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,6 +2,7 @@ import './App.css' import { BrowserRouter as Router, Route, Routes } from "react-router-dom"; import OpenLayerMap from './components/UI/Map/OpenLayerMap'; +import Homepage from './components/UI/Homepage/homepage'; function App() { @@ -9,7 +10,7 @@ function App() { return ( - } /> + } /> } /> diff --git a/src/assets/1.jpeg b/src/assets/1.jpeg new file mode 100644 index 0000000..f4216ca Binary files /dev/null and b/src/assets/1.jpeg differ diff --git a/src/components/UI/Homepage/homepage.css b/src/components/UI/Homepage/homepage.css index d585671..f2078dd 100644 --- a/src/components/UI/Homepage/homepage.css +++ b/src/components/UI/Homepage/homepage.css @@ -1,270 +1,242 @@ -.homepage-container { - min-height: 100vh; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - overflow: hidden; - position: relative; - font-family: 'Arial', sans-serif; - } +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap'); - /* Particles Background */ - .particles { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 1; - } +/* Reset and Base Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} - .particle { - position: absolute; - width: 3px; - height: 3px; - background: rgba(255, 255, 255, 0.7); - border-radius: 50%; - top: 100%; - left: calc(var(--i, 0) * 7%); - animation: particleRise 6s ease-in-out infinite; - } +.body { + font-family: 'Inter', sans-serif; + background-color: white; +} - .particle:nth-child(1) { left: 5%; } - .particle:nth-child(2) { left: 15%; } - .particle:nth-child(3) { left: 25%; } - .particle:nth-child(4) { left: 35%; } - .particle:nth-child(5) { left: 45%; } - .particle:nth-child(6) { left: 55%; } - .particle:nth-child(7) { left: 65%; } - .particle:nth-child(8) { left: 75%; } - .particle:nth-child(9) { left: 85%; } - .particle:nth-child(10) { left: 95%; } - .particle:nth-child(11) { left: 10%; } - .particle:nth-child(12) { left: 30%; } - .particle:nth-child(13) { left: 50%; } - .particle:nth-child(14) { left: 70%; } - .particle:nth-child(15) { left: 90%; } +.homepage { + position: relative; + width: 100%; + height: 100vh; + font-family: 'Inter', sans-serif; + background-color: white; +} - @keyframes particleRise { - 0% { - transform: translateY(0) scale(0); - opacity: 0; - } - 10% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - transform: translateY(-100vh) scale(1); - opacity: 0; - } - } +/* Navigation Styles */ +.navigation { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 1000; + background: transparent; + padding: 50px 0; +} - /* Navigation Styles */ - .navigation { - display: flex; - justify-content: center; - gap: 2rem; - padding: 2rem 0; - position: relative; - z-index: 10; - } +.nav-container { + display: flex; + justify-content: center; + align-items: center; + gap: 80px; + max-width: 1200px; + margin: 0 auto; +} - .nav-item { - color: white; - font-size: 1.1rem; - font-weight: 600; - cursor: pointer; - padding: 0.8rem 1.5rem; - border-radius: 25px; - background: rgba(255, 255, 255, 0.15); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.3); - transition: all 0.3s ease; - - /* Initial state for animation */ - transform: translateY(-50px); - opacity: 0; - - /* Animation */ - animation: slideInDown 0.6s ease-out forwards; - } +.nav-link { + color: white; + text-decoration: none; + font-size: 16px; + font-weight: 400; + letter-spacing: 1.5px; + position: relative; + transition: all 0.3s ease; + text-transform: uppercase; + font-family: 'Inter', sans-serif; +} - .nav-item:hover { - background: rgba(255, 255, 255, 0.25); - transform: translateY(-3px); - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); - } +.nav-link:hover { + color: rgba(255, 255, 255, 0.8); +} - .nav-item:active { - transform: translateY(-1px); - transition: all 0.1s ease; - } +.nav-link.active { + color: #ffffff; + font-weight: 500; +} - @keyframes slideInDown { - to { - transform: translateY(0); - opacity: 1; - } - } +.nav-link.active::after { + content: ''; + position: absolute; + bottom: -8px; + left: 0; + width: 100%; + height: 2px; + background: #ffffff; +} - /* Hero Section */ - .hero-section { - display: flex; - justify-content: center; - align-items: center; - height: 50vh; - position: relative; - z-index: 5; - } +/* Hero Section - Split Layout */ +.hero-section { + display: flex; + width: 100%; + height: 100vh; + background-color: white; +} - .hero-content { - transform: scale(0.8); - opacity: 0; - animation: scaleIn 1s ease-out 0.5s forwards; - } +/* Left Section - White background with image */ +.left-section { + width: 50%; + height: 100%; + background-color: white; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + padding: 40px; +} - .hero-circle { - width: 250px; - height: 250px; - border-radius: 50%; - background: conic-gradient(from 0deg, #ff006e, #fb5607, #ffbe0b, #8338ec, #3a86ff, #ff006e); - display: flex; - justify-content: center; - align-items: center; - position: relative; - animation: rotate 8s linear infinite; - } +.image-placeholder { + width: 100%; + height: 100%; + background: #2a2a2a; + display: flex; + align-items: center; + justify-content: center; + position: relative; + overflow: hidden; + border-radius: 60px; +} - .inner-circle { - width: 200px; - height: 200px; - border-radius: 50%; - background: rgba(255, 255, 255, 0.1); - backdrop-filter: blur(15px); - display: flex; - justify-content: center; - align-items: center; - border: 2px solid rgba(255, 255, 255, 0.3); - } +.hero-img { + width: 100%; + height: 100%; + object-fit: scale-down; + display: flex; +} - .core { - width: 80px; - height: 80px; - border-radius: 50%; - background: radial-gradient(circle, #ffffff, #e0e0e0); - box-shadow: - inset 0 0 15px rgba(0, 0, 0, 0.1), - 0 0 30px rgba(255, 255, 255, 0.6); - animation: pulse 2.5s ease-in-out infinite alternate; - } +/* Right Section - Blue gradient */ +.right-section { + width: 50%; + height: 100%; + background: linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #3d6db0 100%); + position: relative; +} - @keyframes scaleIn { - to { - transform: scale(1); - opacity: 1; - } - } +.hero-content { + position: absolute; + bottom: 180px; + right: 80px; + text-align: left; + color: white; +} - @keyframes rotate { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } - } +.hero-title { + font-family: 'Playfair Display', serif; + font-size: 5.5rem; + font-weight: 400; + line-height: 0.85; + letter-spacing: 1px; +} - @keyframes pulse { - from { transform: scale(1); } - to { transform: scale(1.1); } - } +.title-line { + display: block; + color: #ffffff; + opacity: 1; + font-weight: 400; +} - /* Title Section */ - .title-section { - text-align: center; - position: relative; - z-index: 5; - margin-top: 2rem; - } +.subtitle { + display: block; + color: rgba(255, 255, 255, 0.9); + margin-top: 25px; + opacity: 0.3; + font-weight: 500; +} - .main-title { - font-size: 4rem; - font-weight: 900; - margin: 0; - display: flex; - flex-direction: column; - align-items: center; - gap: 0.5rem; - } +/* Responsive Design */ +@media (max-width: 1200px) { + .hero-title { + font-size: 4.5rem; + } + + .nav-container { + gap: 60px; + } + + .hero-content { + bottom: 60px; + right: 60px; + } +} - .title-word { - display: block; - background: linear-gradient(45deg, #ff006e, #fb5607, #ffbe0b, #8338ec, #3a86ff); - background-size: 300% 300%; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - animation: gradientShift 4s ease-in-out infinite, slideInUp 0.8s ease-out forwards; - - /* Initial state */ - transform: translateY(50px); - opacity: 0; - } +@media (max-width: 768px) { + .hero-section { + flex-direction: column; + } + + .left-section, + .right-section { + width: 100%; + height: 50%; + } + + .nav-container { + gap: 40px; + padding: 0 20px; + } + + .nav-link { + font-size: 14px; + } + + .hero-title { + font-size: 3.5rem; + } + + .hero-content { + bottom: 40px; + right: 40px; + } +} - @keyframes slideInUp { - to { - transform: translateY(0); - opacity: 1; - } - } +@media (max-width: 480px) { + .nav-container { + gap: 25px; + } + + .nav-link { + font-size: 12px; + } + + .hero-title { + font-size: 2.8rem; + } + + .hero-content { + bottom: 30px; + right: 30px; + } +} - @keyframes gradientShift { - 0%, 100% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } - } +/* Smooth transitions */ +.left-section, +.right-section { + transition: all 0.8s ease; +} - /* Responsive Design */ - @media (max-width: 768px) { - .navigation { - flex-wrap: wrap; - gap: 1rem; - padding: 1.5rem 1rem; - } - - .nav-item { - font-size: 1rem; - padding: 0.6rem 1.2rem; - } - - .hero-circle { - width: 180px; - height: 180px; - } - - .inner-circle { - width: 140px; - height: 140px; - } - - .core { - width: 60px; - height: 60px; - } - - .main-title { - font-size: 2.5rem; - } - } +/* Hover effects */ +.left-section:hover .hero-img { + transform: scale(1.05); + transition: transform 0.8s ease; +} - @media (max-width: 480px) { - .navigation { - gap: 0.5rem; - } - - .nav-item { - padding: 0.5rem 1rem; - font-size: 0.9rem; - } - - .main-title { - font-size: 2rem; - } - } \ No newline at end of file +/* Loading states */ +.hero-img { + transition: transform 0.8s ease; +} + +/* Ensure proper stacking */ +.navigation { + z-index: 1000; +} + +.hero-section { + z-index: 1; +} \ No newline at end of file diff --git a/src/components/UI/Homepage/homepage.tsx b/src/components/UI/Homepage/homepage.tsx index e8c12be..e60f93f 100644 --- a/src/components/UI/Homepage/homepage.tsx +++ b/src/components/UI/Homepage/homepage.tsx @@ -1,65 +1,306 @@ -import React, { useEffect, useRef } from 'react'; -import './Homepage.css'; - -const Homepage = () => { - const containerRef = useRef(null); - - useEffect(() => { - // Trigger animations after component mounts - if (containerRef.current) { - containerRef.current.classList.add('loaded'); - } - }, []); - - // Navigation handler - const handleNavClick = (section) => { - console.log(`Navigating to: ./components/${section.toLowerCase()}`); - }; +import React from 'react'; +import { ChevronLeft, ChevronRight } from 'lucide-react'; +const LaHomeWebsite: React.FC = () => { return ( -
- {/* Background Particles */} -
- {[...Array(15)].map((_, i) => ( -
- ))} -
- - {/* Navigation */} - + + {/* Main Content Container */} +
+ {/* Content Box with Border */} +
+ {/* Main Heading */} +

+ Find your
+ dream house +

+ + {/* Project Info Grid */} +
+
+
+ Client +
+
+ Arlington Schools +
+
+ +
+
+ Location +
+
+ Japan +
+
+ +
+
+ Year +
+
+ May, 2022 +
+
+
+ + {/* Bottom Section */} +
+ {/* Description */} +
+

+ You have the vision for a stunning digital
+ experience. More tips with your design and
+ engineering team through bring about it. +

+ +
+ + {/* Navigation Arrows */} +
+ + + +
- - {/* Title Section */} -
-

- San Diego - Redefined -

-
-
); }; -export default Homepage; \ No newline at end of file +export default LaHomeWebsite; \ No newline at end of file