Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>My Portfolio</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); | |
body { | |
font-family: 'Poppins', sans-serif; | |
scroll-behavior: smooth; | |
} | |
.gradient-text { | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
} | |
.nav-link { | |
position: relative; | |
} | |
.nav-link::after { | |
content: ''; | |
position: absolute; | |
width: 0; | |
height: 2px; | |
bottom: -2px; | |
left: 0; | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
transition: width 0.3s ease; | |
} | |
.nav-link:hover::after { | |
width: 100%; | |
} | |
.project-card { | |
transition: all 0.3s ease; | |
transform: translateY(0); | |
} | |
.project-card:hover { | |
transform: translateY(-10px); | |
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
} | |
.skill-pill { | |
transition: all 0.3s ease; | |
} | |
.skill-pill:hover { | |
transform: scale(1.05); | |
} | |
.floating { | |
animation: floating 3s ease-in-out infinite; | |
} | |
@keyframes floating { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-15px); } | |
100% { transform: translateY(0px); } | |
} | |
.section { | |
opacity: 0; | |
transform: translateY(20px); | |
transition: all 0.6s ease; | |
} | |
.section.visible { | |
opacity: 1; | |
transform: translateY(0); | |
} | |
</style> | |
</head> | |
<body class="bg-gray-50 text-gray-800"> | |
<!-- Navigation --> | |
<nav class="fixed w-full bg-white/80 backdrop-blur-md shadow-sm z-50"> | |
<div class="max-w-6xl mx-auto px-6 py-4 flex justify-between items-center"> | |
<a href="#" class="text-2xl font-bold gradient-text">Portfolio</a> | |
<div class="hidden md:flex space-x-8"> | |
<a href="#home" class="nav-link">Home</a> | |
<a href="#about" class="nav-link">About</a> | |
<a href="#projects" class="nav-link">Projects</a> | |
<a href="#skills" class="nav-link">Skills</a> | |
<a href="#contact" class="nav-link">Contact</a> | |
</div> | |
<button id="mobile-menu-button" class="md:hidden text-gray-600"> | |
<i class="fas fa-bars text-2xl"></i> | |
</button> | |
</div> | |
<!-- Mobile Menu --> | |
<div id="mobile-menu" class="hidden md:hidden bg-white px-6 py-4 shadow-lg"> | |
<div class="flex flex-col space-y-4"> | |
<a href="#home" class="nav-link">Home</a> | |
<a href="#about" class="nav-link">About</a> | |
<a href="#projects" class="nav-link">Projects</a> | |
<a href="#skills" class="nav-link">Skills</a> | |
<a href="#contact" class="nav-link">Contact</a> | |
</div> | |
</div> | |
</nav> | |
<!-- Hero Section --> | |
<section id="home" class="min-h-screen flex items-center pt-16"> | |
<div class="max-w-6xl mx-auto px-6 py-20 flex flex-col md:flex-row items-center"> | |
<div class="md:w-1/2 mb-12 md:mb-0"> | |
<h1 class="text-4xl md:text-6xl font-bold mb-4">Hi, I'm <span class="gradient-text">Alex</span></h1> | |
<h2 class="text-2xl md:text-3xl font-semibold mb-6">Frontend Developer</h2> | |
<p class="text-gray-600 mb-8 max-w-lg">I create beautiful, responsive websites and web applications with modern technologies and best practices.</p> | |
<div class="flex space-x-4"> | |
<a href="#projects" class="px-6 py-3 bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-full font-medium hover:shadow-lg transition-all">View My Work</a> | |
<a href="#contact" class="px-6 py-3 border border-gray-300 rounded-full font-medium hover:bg-gray-100 transition-all">Contact Me</a> | |
</div> | |
</div> | |
<div class="md:w-1/2 flex justify-center"> | |
<div class="relative w-64 h-64 md:w-80 md:h-80"> | |
<div class="absolute inset-0 bg-gradient-to-r from-blue-500 to-purple-600 rounded-full blur-xl opacity-30"></div> | |
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80" | |
alt="Profile" | |
class="relative w-full h-full rounded-full object-cover border-4 border-white shadow-xl floating"> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- About Section --> | |
<section id="about" class="py-20 bg-white"> | |
<div class="max-w-6xl mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center mb-4">About <span class="gradient-text">Me</span></h2> | |
<p class="text-gray-500 text-center max-w-2xl mx-auto mb-16">Get to know me better</p> | |
<div class="flex flex-col md:flex-row items-center gap-12"> | |
<div class="md:w-1/3 flex justify-center"> | |
<div class="relative w-64 h-64"> | |
<div class="absolute inset-0 bg-gradient-to-r from-blue-500 to-purple-600 rounded-2xl rotate-6"></div> | |
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80" | |
alt="About" | |
class="relative w-full h-full rounded-2xl object-cover border-4 border-white shadow-lg"> | |
</div> | |
</div> | |
<div class="md:w-2/3"> | |
<h3 class="text-2xl font-semibold mb-4">Who am I?</h3> | |
<p class="text-gray-600 mb-6">I'm a passionate frontend developer with 3 years of experience creating modern web applications. I specialize in React, Vue.js, and responsive design principles.</p> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"> | |
<div> | |
<h4 class="font-medium mb-2 flex items-center"> | |
<i class="fas fa-user mr-2 text-blue-500"></i> Name | |
</h4> | |
<p class="text-gray-600">Alex Johnson</p> | |
</div> | |
<div> | |
<h4 class="font-medium mb-2 flex items-center"> | |
<i class="fas fa-envelope mr-2 text-purple-500"></i> Email | |
</h4> | |
<p class="text-gray-600">[email protected]</p> | |
</div> | |
<div> | |
<h4 class="font-medium mb-2 flex items-center"> | |
<i class="fas fa-phone mr-2 text-blue-500"></i> Phone | |
</h4> | |
<p class="text-gray-600">+1 (555) 123-4567</p> | |
</div> | |
<div> | |
<h4 class="font-medium mb-2 flex items-center"> | |
<i class="fas fa-map-marker-alt mr-2 text-purple-500"></i> Location | |
</h4> | |
<p class="text-gray-600">San Francisco, CA</p> | |
</div> | |
</div> | |
<div class="flex space-x-4"> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-linkedin-in"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-instagram"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Projects Section --> | |
<section id="projects" class="py-20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center mb-4">My <span class="gradient-text">Projects</span></h2> | |
<p class="text-gray-500 text-center max-w-2xl mx-auto mb-16">Some of my recent work</p> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | |
<!-- Project 1 --> | |
<div class="project-card bg-white rounded-xl overflow-hidden shadow-md"> | |
<div class="h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Project 1" | |
class="w-full h-full object-cover transition-transform duration-500 hover:scale-110"> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold mb-2">E-commerce Platform</h3> | |
<p class="text-gray-600 mb-4">A full-featured online store with cart functionality, user authentication, and payment processing.</p> | |
<div class="flex flex-wrap gap-2 mb-4"> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">React</span> | |
<span class="px-3 py-1 bg-purple-100 text-purple-800 rounded-full text-sm">Node.js</span> | |
<span class="px-3 py-1 bg-green-100 text-green-800 rounded-full text-sm">MongoDB</span> | |
</div> | |
<a href="#" class="text-blue-500 font-medium flex items-center hover:text-blue-700"> | |
View Project <i class="fas fa-arrow-right ml-2"></i> | |
</a> | |
</div> | |
</div> | |
<!-- Project 2 --> | |
<div class="project-card bg-white rounded-xl overflow-hidden shadow-md"> | |
<div class="h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1467232004584-a241de8bcf5d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80" | |
alt="Project 2" | |
class="w-full h-full object-cover transition-transform duration-500 hover:scale-110"> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold mb-2">Task Management App</h3> | |
<p class="text-gray-600 mb-4">A productivity application for organizing tasks with drag-and-drop functionality and team collaboration.</p> | |
<div class="flex flex-wrap gap-2 mb-4"> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">Vue.js</span> | |
<span class="px-3 py-1 bg-yellow-100 text-yellow-800 rounded-full text-sm">Firebase</span> | |
<span class="px-3 py-1 bg-red-100 text-red-800 rounded-full text-sm">Tailwind CSS</span> | |
</div> | |
<a href="#" class="text-blue-500 font-medium flex items-center hover:text-blue-700"> | |
View Project <i class="fas fa-arrow-right ml-2"></i> | |
</a> | |
</div> | |
</div> | |
<!-- Project 3 --> | |
<div class="project-card bg-white rounded-xl overflow-hidden shadow-md"> | |
<div class="h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Project 3" | |
class="w-full h-full object-cover transition-transform duration-500 hover:scale-110"> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold mb-2">Portfolio Website</h3> | |
<p class="text-gray-600 mb-4">A custom portfolio website with animations, dark mode, and contact form integration.</p> | |
<div class="flex flex-wrap gap-2 mb-4"> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">HTML/CSS</span> | |
<span class="px-3 py-1 bg-green-100 text-green-800 rounded-full text-sm">JavaScript</span> | |
<span class="px-3 py-1 bg-purple-100 text-purple-800 rounded-full text-sm">GSAP</span> | |
</div> | |
<a href="#" class="text-blue-500 font-medium flex items-center hover:text-blue-700"> | |
View Project <i class="fas fa-arrow-right ml-2"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<div class="text-center mt-12"> | |
<a href="#" class="px-6 py-3 border border-gray-300 rounded-full font-medium hover:bg-gray-100 transition-all inline-flex items-center"> | |
View All Projects <i class="fas fa-arrow-right ml-2"></i> | |
</a> | |
</div> | |
</div> | |
</section> | |
<!-- Skills Section --> | |
<section id="skills" class="py-20 bg-white"> | |
<div class="max-w-6xl mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center mb-4">My <span class="gradient-text">Skills</span></h2> | |
<p class="text-gray-500 text-center max-w-2xl mx-auto mb-16">Technologies I work with</p> | |
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-6 mb-12"> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-html5 text-5xl text-orange-500 mb-3"></i> | |
<span class="font-medium">HTML5</span> | |
</div> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-css3-alt text-5xl text-blue-500 mb-3"></i> | |
<span class="font-medium">CSS3</span> | |
</div> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-js text-5xl text-yellow-500 mb-3"></i> | |
<span class="font-medium">JavaScript</span> | |
</div> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-react text-5xl text-blue-400 mb-3"></i> | |
<span class="font-medium">React</span> | |
</div> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-vuejs text-5xl text-green-500 mb-3"></i> | |
<span class="font-medium">Vue.js</span> | |
</div> | |
<div class="skill-pill flex flex-col items-center p-6 bg-gray-50 rounded-xl hover:shadow-md"> | |
<i class="fab fa-node-js text-5xl text-green-600 mb-3"></i> | |
<span class="font-medium">Node.js</span> | |
</div> | |
</div> | |
<div class="bg-gray-50 rounded-xl p-8"> | |
<h3 class="text-xl font-semibold mb-6">My Experience</h3> | |
<div class="space-y-8"> | |
<!-- Experience 1 --> | |
<div class="flex flex-col md:flex-row"> | |
<div class="md:w-1/4 mb-4 md:mb-0"> | |
<h4 class="font-medium text-gray-700">2021 - Present</h4> | |
</div> | |
<div class="md:w-3/4"> | |
<h4 class="font-semibold text-lg mb-2">Senior Frontend Developer</h4> | |
<p class="text-gray-600 mb-2">Tech Solutions Inc.</p> | |
<p class="text-gray-600">Led a team of 5 developers to build responsive web applications using React and TypeScript. Implemented CI/CD pipelines and improved performance by 40%.</p> | |
</div> | |
</div> | |
<!-- Experience 2 --> | |
<div class="flex flex-col md:flex-row"> | |
<div class="md:w-1/4 mb-4 md:mb-0"> | |
<h4 class="font-medium text-gray-700">2019 - 2021</h4> | |
</div> | |
<div class="md:w-3/4"> | |
<h4 class="font-semibold text-lg mb-2">Frontend Developer</h4> | |
<p class="text-gray-600 mb-2">Digital Creations</p> | |
<p class="text-gray-600">Developed and maintained e-commerce platforms using Vue.js. Collaborated with designers to implement pixel-perfect UIs.</p> | |
</div> | |
</div> | |
<!-- Experience 3 --> | |
<div class="flex flex-col md:flex-row"> | |
<div class="md:w-1/4 mb-4 md:mb-0"> | |
<h4 class="font-medium text-gray-700">2017 - 2019</h4> | |
</div> | |
<div class="md:w-3/4"> | |
<h4 class="font-semibold text-lg mb-2">Junior Web Developer</h4> | |
<p class="text-gray-600 mb-2">WebStart Agency</p> | |
<p class="text-gray-600">Built responsive websites for small businesses using HTML, CSS, and JavaScript. Learned modern frameworks and best practices.</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Contact Section --> | |
<section id="contact" class="py-20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px-6"> | |
<h2 class="text-3xl font-bold text-center mb-4">Get In <span class="gradient-text">Touch</span></h2> | |
<p class="text-gray-500 text-center max-w-2xl mx-auto mb-16">Feel free to reach out for collaborations or just a friendly hello</p> | |
<div class="flex flex-col lg:flex-row gap-12"> | |
<div class="lg:w-1/2"> | |
<form id="contact-form" class="space-y-6"> | |
<div> | |
<label for="name" class="block text-gray-700 mb-2">Your Name</label> | |
<input type="text" id="name" name="name" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" required> | |
</div> | |
<div> | |
<label for="email" class="block text-gray-700 mb-2">Your Email</label> | |
<input type="email" id="email" name="email" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" required> | |
</div> | |
<div> | |
<label for="subject" class="block text-gray-700 mb-2">Subject</label> | |
<input type="text" id="subject" name="subject" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" required> | |
</div> | |
<div> | |
<label for="message" class="block text-gray-700 mb-2">Your Message</label> | |
<textarea id="message" name="message" rows="5" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" required></textarea> | |
</div> | |
<button type="submit" class="px-6 py-3 bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-lg font-medium hover:shadow-lg transition-all w-full"> | |
Send Message <i class="fas fa-paper-plane ml-2"></i> | |
</button> | |
</form> | |
</div> | |
<div class="lg:w-1/2"> | |
<div class="bg-white p-8 rounded-xl shadow-md h-full"> | |
<h3 class="text-xl font-semibold mb-6">Contact Information</h3> | |
<div class="space-y-6"> | |
<div class="flex items-start"> | |
<div class="bg-blue-100 p-3 rounded-full mr-4"> | |
<i class="fas fa-map-marker-alt text-blue-500"></i> | |
</div> | |
<div> | |
<h4 class="font-medium mb-1">Location</h4> | |
<p class="text-gray-600">San Francisco, California</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-purple-100 p-3 rounded-full mr-4"> | |
<i class="fas fa-envelope text-purple-500"></i> | |
</div> | |
<div> | |
<h4 class="font-medium mb-1">Email</h4> | |
<p class="text-gray-600">[email protected]</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-green-100 p-3 rounded-full mr-4"> | |
<i class="fas fa-phone text-green-500"></i> | |
</div> | |
<div> | |
<h4 class="font-medium mb-1">Phone</h4> | |
<p class="text-gray-600">+1 (555) 123-4567</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-yellow-100 p-3 rounded-full mr-4"> | |
<i class="fas fa-clock text-yellow-500"></i> | |
</div> | |
<div> | |
<h4 class="font-medium mb-1">Working Hours</h4> | |
<p class="text-gray-600">Mon-Fri: 9AM - 5PM</p> | |
</div> | |
</div> | |
</div> | |
<div class="mt-8"> | |
<h4 class="font-medium mb-4">Follow Me</h4> | |
<div class="flex space-x-4"> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-linkedin-in"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-blue-500 hover:text-white transition-all"> | |
<i class="fab fa-instagram"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="bg-gray-800 text-white py-12"> | |
<div class="max-w-6xl mx-auto px-6"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="mb-6 md:mb-0"> | |
<a href="#" class="text-2xl font-bold gradient-text">Portfolio</a> | |
<p class="text-gray-400 mt-2">Creating digital experiences that matter.</p> | |
</div> | |
<div class="flex flex-col md:flex-row md:space-x-12 space-y-4 md:space-y-0"> | |
<div> | |
<h4 class="font-semibold mb-3">Quick Links</h4> | |
<ul class="space-y-2"> | |
<li><a href="#home" class="text-gray-400 hover:text-white transition">Home</a></li> | |
<li><a href="#about" class="text-gray-400 hover:text-white transition">About</a></li> | |
<li><a href="#projects" class="text-gray-400 hover:text-white transition">Projects</a></li> | |
<li><a href="#contact" class="text-gray-400 hover:text-white transition">Contact</a></li> | |
</ul> | |
</div> | |
<div> | |
<h4 class="font-semibold mb-3">Services</h4> | |
<ul class="space-y-2"> | |
<li><a href="#" class="text-gray-400 hover:text-white transition">Web Development</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition">UI/UX Design</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition">Mobile Apps</a></li> | |
<li><a href="#" class="text-gray-400 hover:text-white transition">SEO</a></li> | |
</ul> | |
</div> | |
<div> | |
<h4 class="font-semibold mb-3">Connect</h4> | |
<div class="flex space-x-4"> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center hover:bg-blue-500 transition"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center hover:bg-blue-500 transition"> | |
<i class="fab fa-linkedin-in"></i> | |
</a> | |
<a href="#" class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center hover:bg-blue-500 transition"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="border-t border-gray-700 mt-12 pt-8 text-center text-gray-400"> | |
<p>© 2023 Portfolio. All rights reserved.</p> | |
</div> | |
</div> | |
</footer> | |
<!-- Back to Top Button --> | |
<button id="back-to-top" class="fixed bottom-8 right-8 w-12 h-12 bg-gradient-to-r from-blue-500 to-purple-600 text-white rounded-full shadow-lg flex items-center justify-center opacity-0 invisible transition-all"> | |
<i class="fas fa-arrow-up"></i> | |
</button> | |
<script> | |
// Mobile Menu Toggle | |
const mobileMenuButton = document.getElementById('mobile-menu-button'); | |
const mobileMenu = document.getElementById('mobile-menu'); | |
mobileMenuButton.addEventListener('click', () => { | |
mobileMenu.classList.toggle('hidden'); | |
}); | |
// Smooth Scrolling for Navigation Links | |
document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
anchor.addEventListener('click', function (e) { | |
e.preventDefault(); | |
// Close mobile menu if open | |
mobileMenu.classList.add('hidden'); | |
document.querySelector(this.getAttribute('href')).scrollIntoView({ | |
behavior: 'smooth' | |
}); | |
}); | |
}); | |
// Back to Top Button | |
const backToTopButton = document.getElementById('back-to-top'); | |
window.addEventListener('scroll', () => { | |
if (window.pageYOffset > 300) { | |
backToTopButton.classList.remove('opacity-0', 'invisible'); | |
backToTopButton.classList.add('opacity-100', 'visible'); | |
} else { | |
backToTopButton.classList.remove('opacity-100', 'visible'); | |
backToTopButton.classList.add('opacity-0', 'invisible'); | |
} | |
}); | |
backToTopButton.addEventListener('click', () => { | |
window.scrollTo({ | |
top: 0, | |
behavior: 'smooth' | |
}); | |
}); | |
// Form Submission | |
const contactForm = document.getElementById('contact-form'); | |
contactForm.addEventListener('submit', (e) => { | |
e.preventDefault(); | |
// Get form values | |
const name = document.getElementById('name').value; | |
const email = document.getElementById('email').value; | |
const subject = document.getElementById('subject').value; | |
const message = document.getElementById('message').value; | |
// Here you would typically send the form data to a server | |
// For this example, we'll just show an alert | |
alert(`Thank you, ${name}! Your message has been sent. I'll get back to you soon.`); | |
// Reset form | |
contactForm.reset(); | |
}); | |
// Scroll Animation | |
const sections = document.querySelectorAll('.section'); | |
const observer = new IntersectionObserver((entries) => { | |
entries.forEach(entry => { | |
if (entry.isIntersecting) { | |
entry.target.classList.add('visible'); | |
} | |
}); | |
}, { | |
threshold: 0.1 | |
}); | |
sections.forEach(section => { | |
observer.observe(section); | |
section.classList.add('section'); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=dschandra/my-portfolio" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |