summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2025-07-29 19:29:17 -0400
committerRobby Zambito <contact@robbyzambito.me>2025-07-29 19:53:28 -0400
commitb3c85a763f719d62c1fbce8cff90712e35d70b86 (patch)
tree692c535dd289990e98b6a345f6cd383771708e20 /static
parentc1dd0261b61fca48ba2e79950ae46f749fdb6384 (diff)
Added a landing page when logged out
Prompt: Create a logged out landing page.
Diffstat (limited to 'static')
-rw-r--r--static/landing-script.js220
-rw-r--r--static/landing-styles.css744
-rw-r--r--static/landing.html317
3 files changed, 1281 insertions, 0 deletions
diff --git a/static/landing-script.js b/static/landing-script.js
new file mode 100644
index 0000000..1189cd4
--- /dev/null
+++ b/static/landing-script.js
@@ -0,0 +1,220 @@
+// Smooth scrolling for navigation links
+document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ e.preventDefault();
+ const target = document.querySelector(this.getAttribute('href'));
+ if (target) {
+ target.scrollIntoView({
+ behavior: 'smooth',
+ block: 'start'
+ });
+ }
+ });
+});
+
+// Mobile menu toggle
+const hamburger = document.querySelector('.hamburger');
+const navMenu = document.querySelector('.nav-menu');
+
+if (hamburger && navMenu) {
+ hamburger.addEventListener('click', () => {
+ hamburger.classList.toggle('active');
+ navMenu.classList.toggle('active');
+ });
+
+ // Close mobile menu when clicking on a link
+ document.querySelectorAll('.nav-link').forEach(n => n.addEventListener('click', () => {
+ hamburger.classList.remove('active');
+ navMenu.classList.remove('active');
+ }));
+}
+
+// Navbar background on scroll
+window.addEventListener('scroll', () => {
+ const navbar = document.querySelector('.navbar');
+ if (window.scrollY > 50) {
+ navbar.style.background = 'rgba(255, 255, 255, 0.98)';
+ } else {
+ navbar.style.background = 'rgba(255, 255, 255, 0.95)';
+ }
+});
+
+// CTA button handlers
+document.querySelectorAll('.btn').forEach(btn => {
+ btn.addEventListener('click', (e) => {
+ const buttonText = btn.textContent.toLowerCase();
+
+ if (buttonText.includes('sign in') || buttonText.includes('login')) {
+ alert('Redirecting to login page...\n\nThis would navigate to the sign-in form.');
+ } else if (buttonText.includes('trial') || buttonText.includes('start')) {
+ alert('Starting your free trial!\n\nThis would open the registration form with a 14-day trial.');
+ } else if (buttonText.includes('demo') || buttonText.includes('watch')) {
+ alert('Opening demo video...\n\nThis would show a product demonstration or schedule a live demo.');
+ } else if (buttonText.includes('contact') || buttonText.includes('sales')) {
+ alert('Contacting sales team...\n\nThis would open a contact form or calendar booking widget.');
+ }
+ });
+});
+
+// Intersection Observer for animations
+const observerOptions = {
+ threshold: 0.1,
+ rootMargin: '0px 0px -50px 0px'
+};
+
+const observer = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ entry.target.style.opacity = '1';
+ entry.target.style.transform = 'translateY(0)';
+ }
+ });
+}, observerOptions);
+
+// Observe elements for animation
+document.querySelectorAll('.feature-card, .testimonial-card, .pricing-card').forEach(el => {
+ el.style.opacity = '0';
+ el.style.transform = 'translateY(30px)';
+ el.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
+ observer.observe(el);
+});
+
+// Hero section animations
+window.addEventListener('load', () => {
+ const heroTitle = document.querySelector('.hero-title');
+ const heroSubtitle = document.querySelector('.hero-subtitle');
+ const heroButtons = document.querySelector('.hero-buttons');
+ const heroStats = document.querySelector('.hero-stats');
+ const dashboardMockup = document.querySelector('.dashboard-mockup');
+
+ [heroTitle, heroSubtitle, heroButtons, heroStats].forEach((element, index) => {
+ if (element) {
+ element.style.opacity = '0';
+ element.style.transform = 'translateY(30px)';
+ element.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
+
+ setTimeout(() => {
+ element.style.opacity = '1';
+ element.style.transform = 'translateY(0)';
+ }, 200 + (index * 200));
+ }
+ });
+
+ // Dashboard mockup animation
+ if (dashboardMockup) {
+ dashboardMockup.style.opacity = '0';
+ dashboardMockup.style.transform = 'perspective(1000px) rotateY(-25deg) rotateX(15deg) translateY(50px)';
+ dashboardMockup.style.transition = 'opacity 1s ease, transform 1s ease';
+
+ setTimeout(() => {
+ dashboardMockup.style.opacity = '1';
+ dashboardMockup.style.transform = 'perspective(1000px) rotateY(-15deg) rotateX(10deg) translateY(0)';
+ }, 800);
+ }
+});
+
+// Pricing card hover effects
+document.querySelectorAll('.pricing-card').forEach(card => {
+ card.addEventListener('mouseenter', () => {
+ if (!card.classList.contains('featured')) {
+ card.style.transform = 'translateY(-10px)';
+ }
+ });
+
+ card.addEventListener('mouseleave', () => {
+ if (!card.classList.contains('featured')) {
+ card.style.transform = 'translateY(0)';
+ }
+ });
+});
+
+// Company logo hover effects
+document.querySelectorAll('.company-logo').forEach(logo => {
+ logo.addEventListener('mouseenter', () => {
+ logo.style.opacity = '1';
+ logo.style.transform = 'scale(1.1)';
+ });
+
+ logo.addEventListener('mouseleave', () => {
+ logo.style.opacity = '0.6';
+ logo.style.transform = 'scale(1)';
+ });
+});
+
+// Add mobile menu styles dynamically
+const style = document.createElement('style');
+style.textContent = `
+ @media (max-width: 768px) {
+ .nav-menu.active {
+ display: flex;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ flex-direction: column;
+ padding: 1rem 2rem;
+ box-shadow: var(--shadow);
+ border-top: 1px solid var(--border);
+ }
+
+ .hamburger.active span:nth-child(1) {
+ transform: rotate(-45deg) translate(-5px, 6px);
+ }
+
+ .hamburger.active span:nth-child(2) {
+ opacity: 0;
+ }
+
+ .hamburger.active span:nth-child(3) {
+ transform: rotate(45deg) translate(-5px, -6px);
+ }
+ }
+`;
+document.head.appendChild(style);
+
+// Simulate dynamic stats counter
+const animateStats = () => {
+ const statNumbers = document.querySelectorAll('.stat-item strong');
+ const targets = ['10,000+', '500K+', '99.9%'];
+
+ statNumbers.forEach((stat, index) => {
+ const target = targets[index];
+ let current = 0;
+ const increment = target.includes('K') ? 5000 : target.includes('%') ? 1 : 100;
+ const max = target.includes('K') ? 500000 : target.includes('%') ? 99.9 : 10000;
+
+ const updateStat = () => {
+ if (current < max) {
+ current += increment;
+ if (target.includes('K')) {
+ stat.textContent = Math.floor(current / 1000) + 'K+';
+ } else if (target.includes('%')) {
+ stat.textContent = (current / 10).toFixed(1) + '%';
+ } else {
+ stat.textContent = current.toLocaleString() + '+';
+ }
+ setTimeout(updateStat, 50);
+ } else {
+ stat.textContent = target;
+ }
+ };
+
+ setTimeout(updateStat, 1000 + (index * 200));
+ });
+};
+
+// Trigger stats animation when hero is visible
+const heroObserver = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ animateStats();
+ heroObserver.unobserve(entry.target);
+ }
+ });
+});
+
+const heroSection = document.querySelector('.hero');
+if (heroSection) {
+ heroObserver.observe(heroSection);
+}
diff --git a/static/landing-styles.css b/static/landing-styles.css
new file mode 100644
index 0000000..cf359fb
--- /dev/null
+++ b/static/landing-styles.css
@@ -0,0 +1,744 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+:root {
+ --primary-color: #6366f1;
+ --primary-dark: #4f46e5;
+ --secondary-color: #f1f5f9;
+ --text-primary: #1e293b;
+ --text-secondary: #64748b;
+ --background: #ffffff;
+ --surface: #f8fafc;
+ --border: #e2e8f0;
+ --success: #10b981;
+ --warning: #f59e0b;
+ --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
+ --gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
+}
+
+body {
+ font-family: 'Inter', sans-serif;
+ line-height: 1.6;
+ color: var(--text-primary);
+ background: var(--background);
+}
+
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 2rem;
+}
+
+/* Navigation */
+.navbar {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ background: rgba(255, 255, 255, 0.95);
+ backdrop-filter: blur(10px);
+ z-index: 1000;
+ border-bottom: 1px solid var(--border);
+}
+
+.nav-container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 1rem 2rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.nav-logo {
+ font-size: 1.5rem;
+ font-weight: 700;
+ background: var(--gradient);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.nav-menu {
+ display: flex;
+ list-style: none;
+ gap: 2rem;
+}
+
+.nav-link {
+ text-decoration: none;
+ color: var(--text-primary);
+ font-weight: 500;
+ transition: color 0.3s ease;
+}
+
+.nav-link:hover {
+ color: var(--primary-color);
+}
+
+.nav-actions {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.hamburger {
+ display: none;
+ flex-direction: column;
+ cursor: pointer;
+}
+
+.hamburger span {
+ width: 25px;
+ height: 3px;
+ background: var(--text-primary);
+ margin: 3px 0;
+ transition: 0.3s;
+}
+
+/* Buttons */
+.btn {
+ padding: 0.75rem 1.5rem;
+ border: none;
+ border-radius: 0.5rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ text-decoration: none;
+ display: inline-block;
+ font-size: 0.875rem;
+}
+
+.btn-large {
+ padding: 1rem 2rem;
+ font-size: 1rem;
+}
+
+.btn-full {
+ width: 100%;
+ justify-content: center;
+}
+
+.btn-primary {
+ background: var(--gradient);
+ color: white;
+ box-shadow: var(--shadow);
+}
+
+.btn-primary:hover {
+ transform: translateY(-2px);
+ box-shadow: var(--shadow-lg);
+}
+
+.btn-secondary {
+ background: white;
+ color: var(--text-primary);
+ border: 2px solid var(--border);
+}
+
+.btn-secondary:hover {
+ border-color: var(--primary-color);
+ color: var(--primary-color);
+}
+
+.btn-ghost {
+ background: transparent;
+ color: var(--text-primary);
+ border: none;
+}
+
+.btn-ghost:hover {
+ background: var(--surface);
+}
+
+/* Hero Section */
+.hero {
+ min-height: 100vh;
+ display: flex;
+ align-items: center;
+ padding: 6rem 2rem 4rem;
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
+}
+
+.hero-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 4rem;
+ align-items: center;
+}
+
+.hero-title {
+ font-size: 3.5rem;
+ font-weight: 700;
+ line-height: 1.1;
+ margin-bottom: 1.5rem;
+}
+
+.gradient-text {
+ background: var(--gradient);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+.hero-subtitle {
+ font-size: 1.25rem;
+ color: var(--text-secondary);
+ margin-bottom: 2rem;
+ line-height: 1.6;
+}
+
+.hero-buttons {
+ display: flex;
+ gap: 1rem;
+ margin-bottom: 3rem;
+}
+
+.hero-stats {
+ display: flex;
+ gap: 2rem;
+}
+
+.stat-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+}
+
+.stat-item strong {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: var(--primary-color);
+}
+
+.stat-item span {
+ font-size: 0.875rem;
+ color: var(--text-secondary);
+}
+
+/* Dashboard Mockup */
+.dashboard-mockup {
+ background: white;
+ border-radius: 1rem;
+ box-shadow: var(--shadow-lg);
+ overflow: hidden;
+ transform: perspective(1000px) rotateY(-15deg) rotateX(10deg);
+ transition: transform 0.3s ease;
+}
+
+.dashboard-mockup:hover {
+ transform: perspective(1000px) rotateY(-10deg) rotateX(5deg);
+}
+
+.mockup-header {
+ background: var(--surface);
+ padding: 1rem;
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ border-bottom: 1px solid var(--border);
+}
+
+.mockup-dots {
+ display: flex;
+ gap: 0.5rem;
+}
+
+.mockup-dots span {
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ background: var(--border);
+}
+
+.mockup-dots span:first-child {
+ background: #ef4444;
+}
+
+.mockup-dots span:nth-child(2) {
+ background: #f59e0b;
+}
+
+.mockup-dots span:last-child {
+ background: #10b981;
+}
+
+.mockup-title {
+ font-size: 0.875rem;
+ color: var(--text-secondary);
+}
+
+.mockup-content {
+ display: flex;
+ height: 300px;
+}
+
+.mockup-sidebar {
+ width: 200px;
+ background: var(--surface);
+ padding: 1rem;
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.sidebar-item {
+ height: 40px;
+ background: var(--border);
+ border-radius: 0.5rem;
+}
+
+.sidebar-item.active {
+ background: var(--gradient);
+}
+
+.mockup-main {
+ flex: 1;
+ padding: 1rem;
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.mockup-cards {
+ display: flex;
+ gap: 1rem;
+}
+
+.mockup-card {
+ flex: 1;
+ height: 100px;
+ background: var(--surface);
+ border-radius: 0.5rem;
+ border: 1px solid var(--border);
+}
+
+.mockup-chart {
+ flex: 1;
+ background: var(--surface);
+ border-radius: 0.5rem;
+ border: 1px solid var(--border);
+}
+
+/* Social Proof */
+.social-proof {
+ padding: 4rem 0;
+ background: var(--background);
+ text-align: center;
+}
+
+.social-proof-text {
+ color: var(--text-secondary);
+ margin-bottom: 2rem;
+ font-size: 0.875rem;
+}
+
+.company-logos {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 3rem;
+ flex-wrap: wrap;
+}
+
+.company-logo {
+ font-size: 1.25rem;
+ font-weight: 600;
+ color: var(--text-secondary);
+ opacity: 0.6;
+}
+
+/* Sections */
+.section-title {
+ font-size: 2.5rem;
+ font-weight: 700;
+ text-align: center;
+ margin-bottom: 1rem;
+}
+
+.section-subtitle {
+ font-size: 1.125rem;
+ color: var(--text-secondary);
+ text-align: center;
+ margin-bottom: 3rem;
+}
+
+.section-header {
+ margin-bottom: 4rem;
+}
+
+/* Features */
+.features {
+ padding: 6rem 0;
+ background: var(--surface);
+}
+
+.features-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
+ gap: 2rem;
+}
+
+.feature-card {
+ background: white;
+ padding: 2rem;
+ border-radius: 1rem;
+ box-shadow: var(--shadow);
+ text-align: center;
+ transition: transform 0.3s ease;
+}
+
+.feature-card:hover {
+ transform: translateY(-5px);
+}
+
+.feature-icon {
+ font-size: 3rem;
+ margin-bottom: 1rem;
+}
+
+.feature-card h3 {
+ font-size: 1.25rem;
+ font-weight: 600;
+ margin-bottom: 1rem;
+}
+
+.feature-card p {
+ color: var(--text-secondary);
+ line-height: 1.6;
+}
+
+/* Testimonials */
+.testimonials {
+ padding: 6rem 0;
+ background: var(--background);
+}
+
+.testimonials-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
+ gap: 2rem;
+}
+
+.testimonial-card {
+ background: white;
+ padding: 2rem;
+ border-radius: 1rem;
+ box-shadow: var(--shadow);
+}
+
+.testimonial-content {
+ margin-bottom: 1.5rem;
+}
+
+.testimonial-content p {
+ font-style: italic;
+ color: var(--text-secondary);
+ line-height: 1.6;
+}
+
+.testimonial-author {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.author-avatar {
+ width: 48px;
+ height: 48px;
+ border-radius: 50%;
+ background: var(--gradient);
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: 600;
+}
+
+.author-name {
+ font-weight: 600;
+}
+
+.author-title {
+ font-size: 0.875rem;
+ color: var(--text-secondary);
+}
+
+/* Pricing */
+.pricing {
+ padding: 6rem 0;
+ background: var(--surface);
+}
+
+.pricing-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 2rem;
+ max-width: 1000px;
+ margin: 0 auto;
+}
+
+.pricing-card {
+ background: white;
+ padding: 2rem;
+ border-radius: 1rem;
+ box-shadow: var(--shadow);
+ position: relative;
+ text-align: center;
+}
+
+.pricing-card.featured {
+ border: 2px solid var(--primary-color);
+ transform: scale(1.05);
+}
+
+.pricing-badge {
+ position: absolute;
+ top: -12px;
+ left: 50%;
+ transform: translateX(-50%);
+ background: var(--gradient);
+ color: white;
+ padding: 0.5rem 1rem;
+ border-radius: 1rem;
+ font-size: 0.875rem;
+ font-weight: 600;
+}
+
+.pricing-header {
+ margin-bottom: 2rem;
+}
+
+.pricing-header h3 {
+ font-size: 1.5rem;
+ font-weight: 600;
+ margin-bottom: 1rem;
+}
+
+.price {
+ display: flex;
+ align-items: baseline;
+ justify-content: center;
+ gap: 0.25rem;
+}
+
+.price-amount {
+ font-size: 3rem;
+ font-weight: 700;
+ color: var(--primary-color);
+}
+
+.price-period {
+ color: var(--text-secondary);
+}
+
+.pricing-features {
+ list-style: none;
+ margin-bottom: 2rem;
+}
+
+.pricing-features li {
+ padding: 0.5rem 0;
+ color: var(--text-secondary);
+ border-bottom: 1px solid var(--border);
+}
+
+.pricing-features li:last-child {
+ border-bottom: none;
+}
+
+/* CTA */
+.cta {
+ padding: 6rem 0;
+ background: var(--text-primary);
+ color: white;
+ text-align: center;
+}
+
+.cta-content h2 {
+ font-size: 2.5rem;
+ font-weight: 700;
+ margin-bottom: 1rem;
+}
+
+.cta-content p {
+ font-size: 1.125rem;
+ opacity: 0.9;
+ margin-bottom: 2rem;
+}
+
+.cta-buttons {
+ display: flex;
+ justify-content: center;
+ gap: 1rem;
+ margin-bottom: 2rem;
+}
+
+.cta-note {
+ font-size: 0.875rem;
+ opacity: 0.7;
+}
+
+/* Footer */
+.footer {
+ background: var(--text-primary);
+ color: white;
+ padding: 4rem 0 2rem;
+}
+
+.footer-content {
+ display: grid;
+ grid-template-columns: 2fr 1fr 1fr 1fr;
+ gap: 3rem;
+ margin-bottom: 3rem;
+}
+
+.footer-logo {
+ font-size: 1.5rem;
+ font-weight: 700;
+ margin-bottom: 1rem;
+}
+
+.footer-section h4 {
+ font-weight: 600;
+ margin-bottom: 1rem;
+}
+
+.footer-section ul {
+ list-style: none;
+}
+
+.footer-section ul li {
+ margin-bottom: 0.5rem;
+}
+
+.footer-section ul li a {
+ color: rgba(255, 255, 255, 0.8);
+ text-decoration: none;
+ transition: color 0.3s ease;
+}
+
+.footer-section ul li a:hover {
+ color: white;
+}
+
+.footer-bottom {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding-top: 2rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
+}
+
+.footer-links {
+ display: flex;
+ gap: 2rem;
+}
+
+.footer-links a {
+ color: rgba(255, 255, 255, 0.8);
+ text-decoration: none;
+ transition: color 0.3s ease;
+}
+
+.footer-links a:hover {
+ color: white;
+}
+
+/* Responsive Design */
+@media (max-width: 768px) {
+ .nav-actions {
+ display: none;
+ }
+
+ .hamburger {
+ display: flex;
+ }
+
+ .nav-menu {
+ display: none;
+ }
+
+ .hero-content {
+ grid-template-columns: 1fr;
+ text-align: center;
+ }
+
+ .hero-title {
+ font-size: 2.5rem;
+ }
+
+ .hero-buttons {
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .hero-stats {
+ justify-content: center;
+ }
+
+ .dashboard-mockup {
+ transform: none;
+ }
+
+ .features-grid,
+ .testimonials-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .pricing-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .pricing-card.featured {
+ transform: none;
+ }
+
+ .cta-buttons {
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .footer-content {
+ grid-template-columns: 1fr;
+ text-align: center;
+ }
+
+ .footer-bottom {
+ flex-direction: column;
+ gap: 1rem;
+ text-align: center;
+ }
+}
+
+@media (max-width: 480px) {
+ .container {
+ padding: 0 1rem;
+ }
+
+ .hero {
+ padding: 4rem 1rem 2rem;
+ }
+
+ .hero-title {
+ font-size: 2rem;
+ }
+
+ .section-title {
+ font-size: 2rem;
+ }
+
+ .mockup-content {
+ height: 200px;
+ }
+
+ .mockup-sidebar {
+ width: 120px;
+ }
+}
diff --git a/static/landing.html b/static/landing.html
new file mode 100644
index 0000000..339d865
--- /dev/null
+++ b/static/landing.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>TaskFlow - Streamline Your Project Management</title>
+ <link rel="stylesheet" href="landing-styles.css">
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
+</head>
+<body>
+ <nav class="navbar">
+ <div class="nav-container">
+ <div class="nav-logo">TaskFlow</div>
+ <ul class="nav-menu">
+ <li><a href="#features" class="nav-link">Features</a></li>
+ <li><a href="#pricing" class="nav-link">Pricing</a></li>
+ <li><a href="#about" class="nav-link">About</a></li>
+ <li><a href="#contact" class="nav-link">Contact</a></li>
+ </ul>
+ <div class="nav-actions">
+ <button class="btn btn-ghost">Sign In</button>
+ <button class="btn btn-primary">Start Free Trial</button>
+ </div>
+ <div class="hamburger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ </nav>
+
+ <main>
+ <section class="hero">
+ <div class="hero-content">
+ <div class="hero-text">
+ <h1 class="hero-title">
+ Streamline Your <span class="gradient-text">Project Management</span>
+ </h1>
+ <p class="hero-subtitle">
+ TaskFlow helps teams collaborate better, track progress effortlessly, and deliver projects on time.
+ Join thousands of teams who trust TaskFlow to get things done.
+ </p>
+ <div class="hero-buttons">
+ <button class="btn btn-primary btn-large">Start Free Trial</button>
+ <button class="btn btn-secondary btn-large">Watch Demo</button>
+ </div>
+ <div class="hero-stats">
+ <div class="stat-item">
+ <strong>10,000+</strong>
+ <span>Active Teams</span>
+ </div>
+ <div class="stat-item">
+ <strong>500K+</strong>
+ <span>Projects Completed</span>
+ </div>
+ <div class="stat-item">
+ <strong>99.9%</strong>
+ <span>Uptime</span>
+ </div>
+ </div>
+ </div>
+ <div class="hero-visual">
+ <div class="dashboard-mockup">
+ <div class="mockup-header">
+ <div class="mockup-dots">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ <div class="mockup-title">TaskFlow Dashboard</div>
+ </div>
+ <div class="mockup-content">
+ <div class="mockup-sidebar">
+ <div class="sidebar-item active"></div>
+ <div class="sidebar-item"></div>
+ <div class="sidebar-item"></div>
+ <div class="sidebar-item"></div>
+ </div>
+ <div class="mockup-main">
+ <div class="mockup-cards">
+ <div class="mockup-card"></div>
+ <div class="mockup-card"></div>
+ <div class="mockup-card"></div>
+ </div>
+ <div class="mockup-chart"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section class="social-proof">
+ <div class="container">
+ <p class="social-proof-text">Trusted by leading companies worldwide</p>
+ <div class="company-logos">
+ <div class="company-logo">TechCorp</div>
+ <div class="company-logo">InnovateLab</div>
+ <div class="company-logo">StartupXYZ</div>
+ <div class="company-logo">GlobalTech</div>
+ <div class="company-logo">FutureWorks</div>
+ </div>
+ </div>
+ </section>
+
+ <section id="features" class="features">
+ <div class="container">
+ <div class="section-header">
+ <h2 class="section-title">Everything you need to manage projects</h2>
+ <p class="section-subtitle">Powerful features designed to help your team work more efficiently</p>
+ </div>
+ <div class="features-grid">
+ <div class="feature-card">
+ <div class="feature-icon">📊</div>
+ <h3>Project Tracking</h3>
+ <p>Monitor project progress with intuitive dashboards and real-time updates. Never lose sight of your goals.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">👥</div>
+ <h3>Team Collaboration</h3>
+ <p>Seamless communication tools keep your team connected and productive, no matter where they work.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">📅</div>
+ <h3>Timeline Management</h3>
+ <p>Visual timelines and milestone tracking ensure your projects stay on schedule and within budget.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">📈</div>
+ <h3>Analytics & Reports</h3>
+ <p>Detailed insights and customizable reports help you make data-driven decisions for better outcomes.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🔒</div>
+ <h3>Enterprise Security</h3>
+ <p>Bank-level security with SSO, two-factor authentication, and compliance with industry standards.</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🔗</div>
+ <h3>Integrations</h3>
+ <p>Connect with your favorite tools including Slack, GitHub, Google Workspace, and 100+ more apps.</p>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section class="testimonials">
+ <div class="container">
+ <h2 class="section-title">What our customers say</h2>
+ <div class="testimonials-grid">
+ <div class="testimonial-card">
+ <div class="testimonial-content">
+ <p>"TaskFlow transformed how our team works. We've increased productivity by 40% and never miss deadlines anymore."</p>
+ </div>
+ <div class="testimonial-author">
+ <div class="author-avatar">SM</div>
+ <div class="author-info">
+ <div class="author-name">Sarah Mitchell</div>
+ <div class="author-title">Project Manager, TechCorp</div>
+ </div>
+ </div>
+ </div>
+ <div class="testimonial-card">
+ <div class="testimonial-content">
+ <p>"The best project management tool we've used. Intuitive interface and powerful features that actually help us get work done."</p>
+ </div>
+ <div class="testimonial-author">
+ <div class="author-avatar">MJ</div>
+ <div class="author-info">
+ <div class="author-name">Michael Johnson</div>
+ <div class="author-title">CTO, StartupXYZ</div>
+ </div>
+ </div>
+ </div>
+ <div class="testimonial-card">
+ <div class="testimonial-content">
+ <p>"TaskFlow's reporting features give us insights we never had before. It's like having a project analyst on the team."</p>
+ </div>
+ <div class="testimonial-author">
+ <div class="author-avatar">EL</div>
+ <div class="author-info">
+ <div class="author-name">Emily Lee</div>
+ <div class="author-title">Operations Director, GlobalTech</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section id="pricing" class="pricing">
+ <div class="container">
+ <div class="section-header">
+ <h2 class="section-title">Simple, transparent pricing</h2>
+ <p class="section-subtitle">Choose the plan that's right for your team</p>
+ </div>
+ <div class="pricing-grid">
+ <div class="pricing-card">
+ <div class="pricing-header">
+ <h3>Starter</h3>
+ <div class="price">
+ <span class="price-amount">$9</span>
+ <span class="price-period">/user/month</span>
+ </div>
+ </div>
+ <ul class="pricing-features">
+ <li>Up to 10 projects</li>
+ <li>Basic reporting</li>
+ <li>Email support</li>
+ <li>5GB storage</li>
+ </ul>
+ <button class="btn btn-secondary btn-full">Start Free Trial</button>
+ </div>
+ <div class="pricing-card featured">
+ <div class="pricing-badge">Most Popular</div>
+ <div class="pricing-header">
+ <h3>Professional</h3>
+ <div class="price">
+ <span class="price-amount">$19</span>
+ <span class="price-period">/user/month</span>
+ </div>
+ </div>
+ <ul class="pricing-features">
+ <li>Unlimited projects</li>
+ <li>Advanced analytics</li>
+ <li>Priority support</li>
+ <li>50GB storage</li>
+ <li>Team collaboration tools</li>
+ <li>Custom integrations</li>
+ </ul>
+ <button class="btn btn-primary btn-full">Start Free Trial</button>
+ </div>
+ <div class="pricing-card">
+ <div class="pricing-header">
+ <h3>Enterprise</h3>
+ <div class="price">
+ <span class="price-amount">$39</span>
+ <span class="price-period">/user/month</span>
+ </div>
+ </div>
+ <ul class="pricing-features">
+ <li>Everything in Professional</li>
+ <li>Advanced security</li>
+ <li>24/7 phone support</li>
+ <li>Unlimited storage</li>
+ <li>SSO & SAML</li>
+ <li>Custom onboarding</li>
+ </ul>
+ <button class="btn btn-secondary btn-full">Contact Sales</button>
+ </div>
+ </div>
+ </div>
+ </section>
+
+ <section class="cta">
+ <div class="container">
+ <div class="cta-content">
+ <h2>Ready to transform your project management?</h2>
+ <p>Join thousands of teams already using TaskFlow to deliver better results, faster.</p>
+ <div class="cta-buttons">
+ <button class="btn btn-primary btn-large">Start Your Free Trial</button>
+ <button class="btn btn-ghost btn-large">Schedule a Demo</button>
+ </div>
+ <p class="cta-note">No credit card required • 14-day free trial • Cancel anytime</p>
+ </div>
+ </div>
+ </section>
+ </main>
+
+ <footer class="footer">
+ <div class="container">
+ <div class="footer-content">
+ <div class="footer-section">
+ <div class="footer-logo">TaskFlow</div>
+ <p>Streamline your project management with the tools teams love to use.</p>
+ </div>
+ <div class="footer-section">
+ <h4>Product</h4>
+ <ul>
+ <li><a href="#features">Features</a></li>
+ <li><a href="#pricing">Pricing</a></li>
+ <li><a href="#integrations">Integrations</a></li>
+ <li><a href="#security">Security</a></li>
+ </ul>
+ </div>
+ <div class="footer-section">
+ <h4>Company</h4>
+ <ul>
+ <li><a href="#about">About</a></li>
+ <li><a href="#careers">Careers</a></li>
+ <li><a href="#blog">Blog</a></li>
+ <li><a href="#press">Press</a></li>
+ </ul>
+ </div>
+ <div class="footer-section">
+ <h4>Support</h4>
+ <ul>
+ <li><a href="#help">Help Center</a></li>
+ <li><a href="#contact">Contact</a></li>
+ <li><a href="#status">Status</a></li>
+ <li><a href="#api">API Docs</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="footer-bottom">
+ <p>&copy; 2025 TaskFlow. All rights reserved.</p>
+ <div class="footer-links">
+ <a href="#privacy">Privacy Policy</a>
+ <a href="#terms">Terms of Service</a>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+ <script src="landing-script.js"></script>
+</body>
+</html>