NeoPy's picture
v4.1
1e27405 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linear Portfolio - Build Modern Products</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<!-- Tailwind CSS -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
'syne': ['Syne', 'sans-serif'],
},
colors: {
'orange': {
50: '#fff7ed',
100: '#ffedd5',
200: '#fed7aa',
300: '#fdba74',
400: '#fb923c',
500: '#f97316',
600: '#ea580c',
700: '#c2410c',
800: '#9a3412',
900: '#7c2d12',
}
},
animation: {
'fade-in': 'fadeIn 0.8s ease-out',
'fade-in-up': 'fadeInUp 0.8s ease-out',
'fade-in-down': 'fadeInDown 0.8s ease-out',
'slide-up': 'slideUp 0.6s ease-out',
'slide-down': 'slideDown 0.6s ease-out',
'pulse-subtle': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
'float-subtle': 'float 8s ease-in-out infinite',
'scale-in': 'scaleIn 0.6s ease-out',
}
}
}
}
</script>
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Syne:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<!-- Feather Icons -->
<script src="https://unpkg.com/feather-icons"></script>
<!-- OPTIMIZED CSS -->
<style>
/* Base styles and performance optimizations */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Syne', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
/* Enable hardware acceleration */
transform: translateZ(0);
-webkit-transform: translateZ(0);
/* Optimize rendering */
will-change: transform;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
background: #fb923c;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #f97316;
}
/* Orange gradient for hero section */
.orange-gradient {
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}
/* Orange text gradient */
.orange-text-gradient {
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Orange shadow */
.orange-shadow {
box-shadow: 0 10px 25px -5px rgba(249, 115, 22, 0.2);
}
/* Custom animations */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideUp {
from {
transform: translateY(100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes slideDown {
from {
transform: translateY(-100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-8px); }
100% { transform: translateY(0px); }
}
@keyframes scaleIn {
from {
transform: scale(0.95);
opacity: 0;
}
to {
transform: scale(1);
opacity: 1;
}
}
/* Staggered animation delays */
.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }
.stagger-4 { animation-delay: 0.4s; }
.stagger-5 { animation-delay: 0.5s; }
/* Smooth hover effects */
.hover-lift {
transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275),
box-shadow 0.4s ease;
}
.hover-lift:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
/* Button animations */
.btn-animate {
position: relative;
overflow: hidden;
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn-animate::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.8s ease;
}
.btn-animate:hover::before {
left: 100%;
}
.btn-animate:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(249, 115, 22, 0.3);
}
/* Card hover effects */
.card-hover {
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.card-hover:hover {
transform: translateY(-12px);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
}
/* Icon hover effects */
.icon-hover {
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.icon-hover:hover {
transform: scale(1.1) rotate(5deg);
}
/* Form input animations */
.input-animate {
position: relative;
transition: all 0.3s ease;
}
.input-animate:focus {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(249, 115, 22, 0.2);
}
/* Loading animation */
.loading {
display: inline-block;
width: 20px;
height: 20px;
border: 3px solid rgba(255, 255, 255, 0.3);
border-radius: 50%;
border-top-color: white;
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Intersection Observer for scroll animations */
.scroll-animate {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.scroll-animate.animated {
opacity: 1;
transform: translateY(0);
}
/* Staggered scroll animations */
.scroll-animate.stagger-1 { transition-delay: 0.1s; }
.scroll-animate.stagger-2 { transition-delay: 0.2s; }
.scroll-animate.stagger-3 { transition-delay: 0.3s; }
.scroll-animate.stagger-4 { transition-delay: 0.4s; }
.scroll-animate.stagger-5 { transition-delay: 0.5s; }
/* Smooth reveal animation */
.reveal {
position: relative;
overflow: hidden;
}
.reveal::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: white;
transform: translateX(-100%);
animation: reveal 1.2s ease-out forwards;
}
@keyframes reveal {
to { transform: translateX(100%); }
}
/* Subtle glow effect */
.glow-subtle {
transition: box-shadow 0.4s ease;
}
.glow-subtle:hover {
box-shadow: 0 0 20px rgba(249, 115, 22, 0.3);
}
/* Smooth color transition */
.color-transition {
transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}
/* Parallax effect */
.parallax {
transform: translateZ(0);
will-change: transform;
}
/* Mobile menu animation */
.mobile-menu {
max-height: 0;
overflow: hidden;
transition: max-height 0.4s ease-out, opacity 0.4s ease-out, transform 0.4s ease-out;
opacity: 0;
transform: translateY(-20px);
}
.mobile-menu.show {
max-height: 500px;
opacity: 1;
transform: translateY(0);
}
</style>
</head>
<body class="bg-white text-gray-900 transition-colors duration-300">
<!-- Header -->
<header class="border-b border-gray-200 sticky top-0 bg-white/95 backdrop-blur-sm z-50 transition-colors duration-300 animate-fade-in-down">
<nav class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between items-center h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center animate-scale-in">
<div class="w-8 h-8 orange-gradient rounded-lg flex items-center justify-center transition-colors duration-300">
<span class="text-white font-bold text-sm">L</span>
</div>
<span class="ml-3 text-xl font-semibold">Portfolio</span>
</div>
</div>
<div class="hidden md:block">
<div class="ml-10 flex items-baseline space-x-8">
<a href="#home" class="text-gray-900 hover:text-orange-500 px-3 py-2 text-sm font-medium color-transition animate-fade-in stagger-1">Home</a>
<a href="#about" class="text-gray-600 hover:text-orange-500 px-3 py-2 text-sm font-medium color-transition animate-fade-in stagger-2">About</a>
<a href="#work" class="text-gray-600 hover:text-orange-500 px-3 py-2 text-sm font-medium color-transition animate-fade-in stagger-3">Work</a>
<a href="#services" class="text-gray-600 hover:text-orange-500 px-3 py-2 text-sm font-medium color-transition animate-fade-in stagger-4">Services</a>
<a href="#contact" class="text-gray-600 hover:text-orange-500 px-3 py-2 text-sm font-medium color-transition animate-fade-in stagger-5">Contact</a>
</div>
</div>
<div class="hidden md:flex items-center space-x-4">
<a href="#contact" class="orange-gradient text-white hover:opacity-90 px-4 py-2 rounded-lg text-sm font-medium btn-animate animate-fade-in-right">
Get Started
</a>
</div>
<!-- Mobile menu button -->
<div class="md:hidden flex items-center space-x-2">
<button type="button" class="mobile-menu-button p-2 rounded-md text-gray-600 hover:text-gray-900 hover:bg-gray-100 color-transition animate-fade-in">
<i data-feather="menu" class="w-6 h-6"></i>
</button>
</div>
</div>
<!-- Mobile menu -->
<div class="mobile-menu">
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
<a href="#home" class="text-gray-900 block px-3 py-2 text-base font-medium color-transition">Home</a>
<a href="#about" class="text-gray-600 hover:text-gray-900 block px-3 py-2 text-base font-medium color-transition">About</a>
<a href="#work" class="text-gray-600 hover:text-gray-900 block px-3 py-2 text-base font-medium color-transition">Work</a>
<a href="#services" class="text-gray-600 hover:text-gray-900 block px-3 py-2 text-base font-medium color-transition">Services</a>
<a href="#contact" class="text-gray-600 hover:text-gray-900 block px-3 py-2 text-base font-medium color-transition">Contact</a>
<div class="pt-4 pb-2 border-t border-gray-200">
<a href="#contact" class="orange-gradient text-white hover:opacity-90 px-4 py-2 rounded-lg text-sm font-medium transition-colors block text-center">
Get Started
</a>
</div>
</div>
</div>
</nav>
</header>
<!-- Hero Section -->
<section id="home" class="pt-16 pb-32 bg-gradient-to-br from-orange-50 to-white transition-colors duration-300 parallax">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center max-w-4xl mx-auto">
<h1 class="text-5xl sm:text-6xl lg:text-7xl font-bold tracking-tight text-gray-900 mb-8 animate-fade-in-up">
Plan and build
<br>
<span class="orange-text-gradient animate-pulse-subtle">modern products</span>
</h1>
<p class="text-xl sm:text-2xl text-gray-600 mb-12 max-w-3xl mx-auto animate-fade-in-up stagger-2">
Streamline your development workflow with purpose-built tools for planning, tracking, and delivering exceptional products.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center animate-fade-in-up stagger-3">
<a href="#contact" class="orange-gradient text-white hover:opacity-90 px-8 py-4 rounded-lg text-lg font-medium btn-animate">
Start Building
</a>
<a href="#work" class="border border-orange-300 text-orange-600 hover:bg-orange-50 px-8 py-4 rounded-lg text-lg font-medium color-transition hover-lift">
View Work
</a>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section id="services" class="py-24 bg-white transition-colors duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-20 scroll-animate">
<h2 class="text-4xl font-bold text-gray-900 mb-6">
Made for modern product teams
</h2>
<p class="text-xl text-gray-600 max-w-3xl mx-auto">
Shaped by the practices and principles that distinguish world-class product teams: relentless focus, fast execution, and commitment to quality.
</p>
</div>
<div class="grid md:grid-cols-3 gap-12">
<!-- Feature 1 -->
<div class="text-center scroll-animate stagger-1 card-hover">
<div class="w-16 h-16 bg-orange-100 rounded-2xl flex items-center justify-center mx-auto mb-6 icon-hover glow-subtle">
<i data-feather="cpu" class="w-8 h-8 text-orange-600"></i>
</div>
<h3 class="text-2xl font-semibold text-gray-900 mb-4">Purpose-built development</h3>
<p class="text-gray-600">
Streamline issues, projects, and product roadmaps with tools designed specifically for modern development teams.
</p>
</div>
<!-- Feature 2 -->
<div class="text-center scroll-animate stagger-2 card-hover">
<div class="w-16 h-16 bg-orange-100 rounded-2xl flex items-center justify-center mx-auto mb-6 icon-hover glow-subtle">
<i data-feather="zap" class="w-8 h-8 text-orange-600"></i>
</div>
<h3 class="text-2xl font-semibold text-gray-900 mb-4">Designed to move fast</h3>
<p class="text-gray-600">
Lightning-fast performance and intuitive workflows that keep your team focused and productive.
</p>
</div>
<!-- Feature 3 -->
<div class="text-center scroll-animate stagger-3 card-hover">
<div class="w-16 h-16 bg-orange-100 rounded-2xl flex items-center justify-center mx-auto mb-6 icon-hover glow-subtle">
<i data-feather="settings" class="w-8 h-8 text-orange-600"></i>
</div>
<h3 class="text-2xl font-semibold text-gray-900 mb-4">Crafted to perfection</h3>
<p class="text-gray-600">
Every detail carefully considered to create an experience that developers love to use.
</p>
</div>
</div>
</div>
</section>
<!-- AI Section -->
<section class="py-24 bg-gray-50 transition-colors duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid lg:grid-cols-2 gap-16 items-center">
<div class="scroll-animate">
<div class="inline-flex items-center bg-white border border-orange-200 rounded-full px-4 py-2 mb-6 color-transition hover-lift">
<span class="w-2 h-2 bg-orange-500 rounded-full mr-2 animate-pulse-subtle"></span>
<span class="text-sm font-medium text-gray-700">AI-Powered Development</span>
</div>
<h2 class="text-4xl lg:text-5xl font-bold text-gray-900 mb-6">
Artificial intelligence assisted development
</h2>
<p class="text-xl text-gray-600 mb-8">
Streamline your development workflows with AI assistance for routine, manual tasks. Let AI handle the repetitive work so you can focus on building great products.
</p>
<a href="#contact" class="inline-flex items-center text-orange-600 font-medium hover:text-orange-700 color-transition hover:translate-x-2">
Learn more
<i data-feather="arrow-right" class="w-4 h-4 ml-2"></i>
</a>
</div>
<div class="relative scroll-animate stagger-2">
<div class="bg-white rounded-2xl border border-orange-200 p-8 shadow-sm orange-shadow card-hover glow-subtle">
<div class="space-y-4">
<div class="flex items-center justify-between p-4 bg-orange-50 rounded-lg color-transition hover:bg-orange-100">
<div class="flex items-center">
<div class="w-8 h-8 bg-orange-100 rounded-full flex items-center justify-center icon-hover">
<span class="text-orange-600 text-sm font-medium">AI</span>
</div>
<span class="ml-3 text-gray-900 font-medium">Smart Suggestions</span>
</div>
<div class="w-3 h-3 bg-green-400 rounded-full animate-pulse-subtle"></div>
</div>
<div class="p-4 border border-orange-200 rounded-lg color-transition hover:bg-orange-50">
<p class="text-sm text-gray-600 mb-2">Why this assignee was suggested:</p>
<p class="text-sm text-gray-900">This person was assignee on previous issues related to similar performance problems.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Work Section -->
<section id="work" class="py-24 bg-white transition-colors duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-20 scroll-animate">
<h2 class="text-4xl font-bold text-gray-900 mb-6">
Manage projects end-to-end
</h2>
<p class="text-xl text-gray-600 max-w-3xl mx-auto">
Consolidate specs, milestones, tasks, and documentation in one centralized location for complete project visibility.
</p>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Project 1 -->
<div class="bg-gray-50 rounded-2xl p-8 hover:bg-orange-50 color-transition hover-lift scroll-animate stagger-1">
<div class="w-12 h-12 orange-gradient rounded-xl flex items-center justify-center mb-6 icon-hover">
<i data-feather="smartphone" class="w-6 h-6 text-white"></i>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">Mobile App Development</h3>
<p class="text-gray-600 mb-4">
Cross-platform mobile applications built with React Native and modern development practices.
</p>
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="w-4 h-4 mr-1"></i>
<span>Ongoing</span>
</div>
</div>
<!-- Project 2 -->
<div class="bg-gray-50 rounded-2xl p-8 hover:bg-orange-50 color-transition hover-lift scroll-animate stagger-2">
<div class="w-12 h-12 orange-gradient rounded-xl flex items-center justify-center mb-6 icon-hover">
<i data-feather="code" class="w-6 h-6 text-white"></i>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">API Integration</h3>
<p class="text-gray-600 mb-4">
Robust API solutions and third-party integrations to connect your systems seamlessly.
</p>
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="w-4 h-4 mr-1"></i>
<span>Completed</span>
</div>
</div>
<!-- Project 3 -->
<div class="bg-gray-50 rounded-2xl p-8 hover:bg-orange-50 color-transition hover-lift scroll-animate stagger-3">
<div class="w-12 h-12 orange-gradient rounded-xl flex items-center justify-center mb-6 icon-hover">
<i data-feather="layout" class="w-6 h-6 text-white"></i>
</div>
<h3 class="text-xl font-semibold text-gray-900 mb-3">Web Dashboard</h3>
<p class="text-gray-600 mb-4">
Interactive dashboards and analytics interfaces for data-driven decision making.
</p>
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="w-4 h-4 mr-1"></i>
<span>In Progress</span>
</div>
</div>
</div>
</div>
</section>
<!-- About Section -->
<section id="about" class="py-24 bg-gray-50 transition-colors duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid lg:grid-cols-2 gap-16 items-center">
<div class="scroll-animate">
<h2 class="text-4xl lg:text-5xl font-bold text-gray-900 mb-6">
Built for developers
</h2>
<p class="text-xl text-gray-600 mb-8">
Every tool and workflow is designed with developer experience in mind. From lightning-fast performance to intuitive interfaces, everything is crafted to enhance your productivity.
</p>
<div class="space-y-6">
<div class="flex items-start scroll-animate stagger-1">
<div class="flex-shrink-0 w-6 h-6 bg-orange-100 rounded-full flex items-center justify-center mt-1 icon-hover">
<i data-feather="check" class="w-3 h-3 text-orange-600"></i>
</div>
<div class="ml-4">
<h4 class="text-lg font-semibold text-gray-900">Fast Performance</h4>
<p class="text-gray-600">Optimized for speed and efficiency to keep you in flow state.</p>
</div>
</div>
<div class="flex items-start scroll-animate stagger-2">
<div class="flex-shrink-0 w-6 h-6 bg-orange-100 rounded-full flex items-center justify-center mt-1 icon-hover">
<i data-feather="check" class="w-3 h-3 text-orange-600"></i>
</div>
<div class="ml-4">
<h4 class="text-lg font-semibold text-gray-900">Intuitive Design</h4>
<p class="text-gray-600">Clean, minimal interfaces that get out of your way.</p>
</div>
</div>
<div class="flex items-start scroll-animate stagger-3">
<div class="flex-shrink-0 w-6 h-6 bg-orange-100 rounded-full flex items-center justify-center mt-1 icon-hover">
<i data-feather="check" class="w-3 h-3 text-orange-600"></i>
</div>
<div class="ml-4">
<h4 class="text-lg font-semibold text-gray-900">Developer First</h4>
<p class="text-gray-600">Built by developers, for developers, with your workflow in mind.</p>
</div>
</div>
</div>
</div>
<div class="relative scroll-animate stagger-4">
<div class="bg-white rounded-2xl border border-orange-200 p-8 shadow-sm orange-shadow card-hover glow-subtle">
<div class="space-y-4">
<div class="flex items-center justify-between p-4 bg-orange-50 rounded-lg color-transition hover:bg-orange-100">
<div class="flex items-center">
<div class="w-8 h-8 bg-gray-900 rounded-full flex items-center justify-center icon-hover">
<span class="text-white text-sm font-medium">DV</span>
</div>
<span class="ml-3 text-gray-900 font-medium">Development Velocity</span>
</div>
<span class="text-2xl font-bold text-orange-600 animate-pulse-subtle">+340%</span>
</div>
<div class="grid grid-cols-2 gap-4">
<div class="p-4 border border-orange-200 rounded-lg text-center color-transition hover:bg-orange-50 hover-lift">
<div class="text-2xl font-bold text-gray-900">2.3x</div>
<div class="text-sm text-gray-600">Faster Shipping</div>
</div>
<div class="p-4 border border-orange-200 rounded-lg text-center color-transition hover:bg-orange-50 hover-lift">
<div class="text-2xl font-bold text-gray-900">95%</div>
<div class="text-sm text-gray-600">Developer Satisfaction</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="py-24 bg-white transition-colors duration-300">
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16 scroll-animate">
<h2 class="text-4xl font-bold text-gray-900 mb-6">
Let's build something great together
</h2>
<p class="text-xl text-gray-600">
Ready to streamline your development workflow? Get in touch and let's discuss your next project.
</p>
</div>
<form class="space-y-6 max-w-2xl mx-auto scroll-animate stagger-2">
<div class="grid md:grid-cols-2 gap-6">
<div>
<label for="name" class="block text-sm font-medium text-gray-700 mb-2">Name</label>
<input type="text" id="name" name="name" class="w-full px-4 py-3 border border-gray-300 bg-white text-gray-900 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500 input-animate">
</div>
<div>
<label for="email" class="block text-sm font-medium text-gray-700 mb-2">Email</label>
<input type="email" id="email" name="email" class="w-full px-4 py-3 border border-gray-300 bg-white text-gray-900 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500 input-animate">
</div>
</div>
<div>
<label for="company" class="block text-sm font-medium text-gray-700 mb-2">Company</label>
<input type="text" id="company" name="company" class="w-full px-4 py-3 border border-gray-300 bg-white text-gray-900 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500 input-animate">
</div>
<div>
<label for="project" class="block text-sm font-medium text-gray-700 mb-2">Project Details</label>
<textarea id="project" name="project" rows="4" class="w-full px-4 py-3 border border-gray-300 bg-white text-gray-900 rounded-lg focus:ring-2 focus:ring-orange-500 focus:border-orange-500 input-animate"></textarea>
</div>
<div class="text-center">
<button type="submit" class="orange-gradient text-white hover:opacity-90 px-8 py-4 rounded-lg text-lg font-medium btn-animate">
Send Message
</button>
</div>
</form>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-900 text-white py-16 transition-colors duration-300">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid md:grid-cols-4 gap-8">
<div class="md:col-span-2">
<div class="flex items-center mb-6">
<div class="w-8 h-8 orange-gradient rounded-lg flex items-center justify-center">
<span class="text-white font-bold text-sm">L</span>
</div>
<span class="ml-3 text-xl font-semibold">Portfolio</span>
</div>
<p class="text-gray-400 mb-6 max-w-md">
Building modern products with purpose-built tools for efficient development workflows.
</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white color-transition icon-hover">
<i data-feather="github" class="w-5 h-5"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white color-transition icon-hover">
<i data-feather="twitter" class="w-5 h-5"></i>
</a>
<a href="#" class="text-gray-400 hover:text-white color-transition icon-hover">
<i data-feather="linkedin" class="w-5 h-5"></i>
</a>
</div>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Services</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Web Development</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Mobile Apps</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">API Integration</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Consulting</a></li>
</ul>
</div>
<div>
<h4 class="text-lg font-semibold mb-4">Company</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white color-transition">About</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Work</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Blog</a></li>
<li><a href="#" class="text-gray-400 hover:text-white color-transition">Contact</a></li>
</ul>
</div>
</div>
<div class="border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-400 text-sm">
© 2024 Linear Portfolio Template. Built with Tailwind CSS.
</p>
<div class="flex space-x-6 mt-4 md:mt-0">
<a href="#" class="text-gray-400 hover:text-white text-sm color-transition">Privacy</a>
<a href="#" class="text-gray-400 hover:text-white text-sm color-transition">Terms</a>
<a href="#" class="text-gray-400 hover:text-white text-sm color-transition">Security</a>
</div>
</div>
</div>
</footer>
<script>
// Initialize Feather icons
feather.replace();
// Mobile menu toggle
document.addEventListener('DOMContentLoaded', function() {
const mobileMenuButton = document.querySelector('.mobile-menu-button');
const mobileMenu = document.querySelector('.mobile-menu');
if (mobileMenuButton && mobileMenu) {
mobileMenuButton.addEventListener('click', function() {
// Toggle the show class
mobileMenu.classList.toggle('show');
});
}
// Close mobile menu when clicking on a link
const mobileMenuLinks = document.querySelectorAll('.mobile-menu a');
mobileMenuLinks.forEach(link => {
link.addEventListener('click', function() {
mobileMenu.classList.remove('show');
});
});
// Close mobile menu when clicking outside
document.addEventListener('click', function(event) {
if (mobileMenu && !mobileMenu.contains(event.target) && !mobileMenuButton.contains(event.target)) {
mobileMenu.classList.remove('show');
}
});
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const targetId = this.getAttribute('href');
if (targetId === '#') return;
const targetElement = document.querySelector(targetId);
if (targetElement) {
window.scrollTo({
top: targetElement.offsetTop - 80, // Adjust for header height
behavior: 'smooth'
});
}
});
});
// Intersection Observer for scroll animations
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('animated');
}
});
}, observerOptions);
// Observe all elements with scroll-animate class
const scrollElements = document.querySelectorAll('.scroll-animate');
scrollElements.forEach(el => {
observer.observe(el);
});
// Form submission animation
const form = document.querySelector('form');
if (form) {
form.addEventListener('submit', function(e) {
e.preventDefault();
const submitButton = form.querySelector('button[type="submit"]');
const originalText = submitButton.innerHTML;
// Show loading state
submitButton.innerHTML = '<span class="loading"></span> Sending...';
submitButton.disabled = true;
// Simulate form submission
setTimeout(() => {
submitButton.innerHTML = '✓ Message Sent!';
submitButton.classList.add('bg-green-500');
// Reset form
setTimeout(() => {
form.reset();
submitButton.innerHTML = originalText;
submitButton.disabled = false;
submitButton.classList.remove('bg-green-500');
}, 2000);
}, 1500);
});
}
// Add subtle parallax effect to hero section
window.addEventListener('scroll', () => {
const scrolled = window.pageYOffset;
const parallax = document.querySelector('#home');
if (parallax) {
const speed = 0.3; // Reduced speed for subtler effect
parallax.style.transform = `translateY(${scrolled * speed}px)`;
}
});
// Add smooth reveal animation for specific elements
const revealElements = document.querySelectorAll('.reveal');
revealElements.forEach(el => {
el.classList.add('reveal');
});
});
</script>
</body>
</html>