diff --git a/src/assets/css/components/homepage.css b/src/assets/css/components/homepage.css new file mode 100644 index 0000000..62bcac0 --- /dev/null +++ b/src/assets/css/components/homepage.css @@ -0,0 +1,513 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +.homepage { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; + background: linear-gradient(135deg, #0c0c0c 0%, #1a1a2e 50%, #16213e 100%); + color: #ffffff; + overflow-x: hidden; + min-height: 100vh; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +/* Navigation */ +.navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + backdrop-filter: blur(20px); + background: rgba(12, 12, 12, 0.8); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + transition: all 0.3s ease; +} + +.nav-content { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 2rem; + max-width: 1200px; + margin: 0 auto; +} + +.logo { + font-size: 1.8rem; + font-weight: 800; + color: #ffffff; + cursor: pointer; + text-decoration: none; +} + +.logo-accent { + background: linear-gradient(45deg, #00d4ff, #7c3aed); + background-clip: text; + -webkit-background-clip: text; + color: transparent; +} + +.nav-links { + display: flex; + list-style: none; + gap: 2rem; +} + +.nav-links a { + color: #ffffff; + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; + position: relative; +} + +.nav-links a:hover { + color: #00d4ff; +} + +.nav-links a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 2px; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + transition: width 0.3s ease; +} + +.nav-links a:hover::after { + width: 100%; +} + +/* Hero Section */ +.hero { + min-height: 100vh; + display: flex; + align-items: center; + position: relative; + overflow: hidden; +} + +.hero-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: radial-gradient(circle at 30% 70%, rgba(0, 212, 255, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(124, 58, 237, 0.1) 0%, transparent 50%); +} + +.floating-elements { + position: absolute; + width: 100%; + height: 100%; + pointer-events: none; +} + +.floating-element { + position: absolute; + width: 4px; + height: 4px; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + border-radius: 50%; + animation: float 6s ease-in-out infinite; +} + +@keyframes float { + 0%, 100% { + transform: translateY(0px) rotate(0deg); + opacity: 0.5; + } + 50% { + transform: translateY(-20px) rotate(180deg); + opacity: 1; + } +} + +.hero-container { + max-width: 1200px; + margin: 0 auto; + padding: 0 2rem; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4rem; + align-items: center; + position: relative; + z-index: 2; +} + +.hero-content { + max-width: 600px; +} + +.hero-title { + font-size: 3.5rem; + font-weight: 900; + line-height: 1.1; + margin-bottom: 1.5rem; + background: linear-gradient(135deg, #ffffff 0%, #00d4ff 50%, #7c3aed 100%); + background-clip: text; + -webkit-background-clip: text; + color: transparent; + animation: slideInUp 1s ease-out; +} + +.hero-subtitle { + font-size: 1.25rem; + color: #a0a0a0; + margin-bottom: 2rem; + line-height: 1.6; + animation: slideInUp 1s ease-out 0.2s both; +} + +.cta-section { + animation: slideInUp 1s ease-out 0.4s both; +} + +.cta-section h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #00d4ff; +} + +.cta-section p { + color: #a0a0a0; + margin-bottom: 1.5rem; +} + +.email-form { + display: flex; + gap: 1rem; + max-width: 400px; +} + +.email-input { + flex: 1; + padding: 1rem; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 12px; + background: rgba(255, 255, 255, 0.05); + color: #ffffff; + font-size: 1rem; + backdrop-filter: blur(10px); + transition: all 0.3s ease; +} + +.email-input:focus { + outline: none; + border-color: #00d4ff; + box-shadow: 0 0 20px rgba(0, 212, 255, 0.2); +} + +.email-input::placeholder { + color: #888; +} + +.notify-btn { + padding: 1rem 1.5rem; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + color: white; + border: none; + border-radius: 12px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + white-space: nowrap; +} + +.notify-btn:hover:not(:disabled) { + transform: translateY(-2px); + box-shadow: 0 10px 30px rgba(0, 212, 255, 0.4); +} + +.notify-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +/* Phone Mockup */ +.hero-visual { + display: flex; + justify-content: center; + align-items: center; +} + +.phone-mockup { + width: 280px; + height: 560px; + background: linear-gradient(145deg, #2a2a3e, #1a1a2e); + border-radius: 35px; + padding: 15px; + position: relative; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); +} + +.phone-mockup::before { + content: ''; + position: absolute; + top: 20px; + left: 50%; + transform: translateX(-50%); + width: 120px; + height: 4px; + background: #444; + border-radius: 2px; +} + +.screen { + width: 100%; + height: 100%; + background: linear-gradient(135deg, #0c0c0c, #1a1a2e); + border-radius: 25px; + padding: 30px 20px; + position: relative; + overflow: hidden; +} + +.app-interface { + height: 100%; + display: flex; + flex-direction: column; +} + +.app-logo { + text-align: center; + font-size: 1.5rem; + font-weight: 800; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + background-clip: text; + -webkit-background-clip: text; + color: transparent; + margin-bottom: 2rem; +} + +.stats-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; + flex: 1; +} + +.stat-card { + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 15px; + padding: 1.5rem 1rem; + text-align: center; + transition: all 0.3s ease; +} + +.stat-card.active { + background: rgba(0, 212, 255, 0.1); + border-color: rgba(0, 212, 255, 0.3); + transform: scale(1.05); +} + +.stat-number { + font-size: 1.8rem; + font-weight: 800; + color: #00d4ff; + margin-bottom: 0.5rem; +} + +.stat-label { + font-size: 0.75rem; + color: #888; + font-weight: 600; + letter-spacing: 0.5px; +} + +/* Features Section */ +.features { + padding: 8rem 0; + position: relative; +} + +.section-header { + text-align: center; + margin-bottom: 4rem; + max-width: 800px; + margin-left: auto; + margin-right: auto; +} + +.section-title { + font-size: 3rem; + font-weight: 800; + margin-bottom: 1rem; + background: linear-gradient(135deg, #ffffff, #00d4ff); + background-clip: text; + -webkit-background-clip: text; + color: transparent; +} + +.section-subtitle { + font-size: 1.2rem; + color: #a0a0a0; + line-height: 1.6; +} + +.features-container { + max-width: 1200px; + margin: 0 auto; + padding: 0 2rem; +} + +.features-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); + gap: 2rem; +} + +.feature-card { + background: rgba(255, 255, 255, 0.05); + backdrop-filter: blur(20px); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 20px; + padding: 2.5rem; + transition: all 0.3s ease; + cursor: pointer; +} + +.feature-card:hover { + border-color: rgba(0, 212, 255, 0.3); + box-shadow: 0 20px 60px rgba(0, 212, 255, 0.1); +} + +.feature-icon { + width: 60px; + height: 60px; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + border-radius: 15px; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1.5rem; + font-size: 1.5rem; + color: white; +} + +.feature-title { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 1.5rem; + color: #ffffff; +} + +.feature-list { + list-style: none; + margin: 0; + padding: 0; +} + +.feature-list li { + margin-bottom: 1rem; + color: #a0a0a0; + line-height: 1.6; +} + +.feature-list li:last-child { + margin-bottom: 0; +} + +.feature-list strong { + color: #00d4ff; +} + +/* Stats Section */ +.stats { + padding: 6rem 0; + background: rgba(255, 255, 255, 0.03); + backdrop-filter: blur(20px); +} + +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 3rem; + text-align: center; +} + +.stat-number { + font-size: 3.5rem; + font-weight: 900; + background: linear-gradient(45deg, #00d4ff, #7c3aed); + background-clip: text; + -webkit-background-clip: text; + color: transparent; + margin-bottom: 0.5rem; +} + +.stat-label { + font-size: 1.1rem; + color: #a0a0a0; + font-weight: 500; +} + +/* Footer */ +.footer { + padding: 4rem 0 2rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + text-align: center; +} + +.footer-content { + color: #a0a0a0; +} + +/* Animations */ +@keyframes slideInUp { + from { + opacity: 0; + transform: translateY(50px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Responsive */ +@media (max-width: 968px) { + .hero-container { + grid-template-columns: 1fr; + text-align: center; + } + + .hero-title { + font-size: 2.5rem; + } + + .features-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 768px) { + .nav-links { + display: none; + } + + .email-form { + flex-direction: column; + } + + .phone-mockup { + width: 240px; + height: 480px; + } + + .hero-container { + padding: 0 1rem; + } +} \ No newline at end of file diff --git a/src/components/Home.vue b/src/components/Home.vue new file mode 100644 index 0000000..9d90b71 --- /dev/null +++ b/src/components/Home.vue @@ -0,0 +1,354 @@ + + + \ No newline at end of file