Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Alex Carter | Personal 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> | |
| /* Custom CSS */ | |
| @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; | |
| } | |
| .hero-gradient { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| } | |
| .skill-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); | |
| } | |
| .project-card { | |
| transition: all 0.3s ease; | |
| } | |
| .project-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1); | |
| } | |
| .nav-link { | |
| position: relative; | |
| } | |
| .nav-link::after { | |
| content: ''; | |
| position: absolute; | |
| width: 0; | |
| height: 2px; | |
| bottom: 0; | |
| left: 0; | |
| background-color: #667eea; | |
| transition: width 0.3s ease; | |
| } | |
| .nav-link:hover::after { | |
| width: 100%; | |
| } | |
| .active::after { | |
| width: 100%; | |
| } | |
| /* Animation */ | |
| @keyframes float { | |
| 0%, 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| .floating { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50"> | |
| <!-- Navigation --> | |
| <nav class="fixed w-full bg-white shadow-sm z-50"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex justify-between h-16"> | |
| <div class="flex items-center"> | |
| <a href="#" class="text-xl font-bold text-indigo-600">Alex Carter</a> | |
| </div> | |
| <div class="hidden md:flex items-center space-x-8"> | |
| <a href="#home" class="nav-link text-gray-700 hover:text-indigo-600 active">Home</a> | |
| <a href="#about" class="nav-link text-gray-700 hover:text-indigo-600">About</a> | |
| <a href="#skills" class="nav-link text-gray-700 hover:text-indigo-600">Skills</a> | |
| <a href="#projects" class="nav-link text-gray-700 hover:text-indigo-600">Projects</a> | |
| <a href="#contact" class="nav-link text-gray-700 hover:text-indigo-600">Contact</a> | |
| </div> | |
| <div class="md:hidden flex items-center"> | |
| <button id="menu-btn" class="text-gray-700 focus:outline-none"> | |
| <i class="fas fa-bars text-xl"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Mobile menu --> | |
| <div id="mobile-menu" class="hidden md:hidden bg-white py-2 px-4 shadow-lg"> | |
| <a href="#home" class="block py-2 text-gray-700 hover:text-indigo-600">Home</a> | |
| <a href="#about" class="block py-2 text-gray-700 hover:text-indigo-600">About</a> | |
| <a href="#skills" class="block py-2 text-gray-700 hover:text-indigo-600">Skills</a> | |
| <a href="#projects" class="block py-2 text-gray-700 hover:text-indigo-600">Projects</a> | |
| <a href="#contact" class="block py-2 text-gray-700 hover:text-indigo-600">Contact</a> | |
| </div> | |
| </nav> | |
| <!-- Hero Section --> | |
| <section id="home" class="hero-gradient pt-24 pb-16 md:pt-32 md:pb-24 text-white"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex flex-col md:flex-row items-center"> | |
| <div class="md:w-1/2 mb-10 md:mb-0"> | |
| <h1 class="text-4xl md:text-5xl font-bold mb-4">Hi, I'm Alex Carter</h1> | |
| <h2 class="text-2xl md:text-3xl font-semibold mb-6">Full Stack Developer</h2> | |
| <p class="text-lg mb-8">I build exceptional digital experiences that make people's lives easier.</p> | |
| <div class="flex space-x-4"> | |
| <a href="#contact" class="bg-white text-indigo-600 px-6 py-3 rounded-lg font-medium hover:bg-gray-100 transition duration-300">Get In Touch</a> | |
| <a href="#projects" class="border-2 border-white text-white px-6 py-3 rounded-lg font-medium hover:bg-white hover:text-indigo-600 transition duration-300">View My Work</a> | |
| </div> | |
| </div> | |
| <div class="md:w-1/2 flex justify-center"> | |
| <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="rounded-full w-64 h-64 md:w-80 md:h-80 object-cover border-4 border-white floating shadow-xl"> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- About Section --> | |
| <section id="about" class="py-16 bg-white"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">About Me</h2> | |
| <div class="flex flex-col md:flex-row items-center"> | |
| <div class="md:w-1/3 mb-8 md:mb-0 flex justify-center"> | |
| <img src="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="About" class="rounded-lg w-full max-w-md shadow-lg"> | |
| </div> | |
| <div class="md:w-2/3 md:pl-12"> | |
| <h3 class="text-2xl font-semibold mb-4 text-gray-800">Who I Am</h3> | |
| <p class="text-gray-600 mb-6">I'm a passionate full-stack developer with 5 years of experience creating web applications. I specialize in JavaScript technologies across the whole stack (React.js, Node.js, Express, MongoDB).</p> | |
| <p class="text-gray-600 mb-6">My journey in tech started when I built my first website at 15. Since then, I've worked with startups and established companies to deliver high-quality digital products.</p> | |
| <p class="text-gray-600 mb-8">When I'm not coding, you can find me hiking, reading sci-fi novels, or experimenting with new cooking recipes.</p> | |
| <div class="flex flex-wrap gap-4"> | |
| <div class="bg-indigo-50 px-4 py-2 rounded-full"> | |
| <span class="text-indigo-600 font-medium">Web Development</span> | |
| </div> | |
| <div class="bg-indigo-50 px-4 py-2 rounded-full"> | |
| <span class="text-indigo-600 font-medium">UI/UX Design</span> | |
| </div> | |
| <div class="bg-indigo-50 px-4 py-2 rounded-full"> | |
| <span class="text-indigo-600 font-medium">Mobile Apps</span> | |
| </div> | |
| <div class="bg-indigo-50 px-4 py-2 rounded-full"> | |
| <span class="text-indigo-600 font-medium">Cloud Computing</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Skills Section --> | |
| <section id="skills" class="py-16 bg-gray-50"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">My Skills</h2> | |
| <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8"> | |
| <!-- Skill Card 1 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fab fa-js text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">JavaScript</h3> | |
| <p class="text-gray-600 mb-4">Advanced knowledge of modern JavaScript (ES6+) and frameworks like React and Node.js.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 90%"></div> | |
| </div> | |
| </div> | |
| <!-- Skill Card 2 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fab fa-react text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">React.js</h3> | |
| <p class="text-gray-600 mb-4">Building interactive user interfaces with React hooks, context API, and Redux.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 85%"></div> | |
| </div> | |
| </div> | |
| <!-- Skill Card 3 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fas fa-server text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">Backend Development</h3> | |
| <p class="text-gray-600 mb-4">Node.js, Express, MongoDB, PostgreSQL, and RESTful API design.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 80%"></div> | |
| </div> | |
| </div> | |
| <!-- Skill Card 4 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fas fa-mobile-alt text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">Responsive Design</h3> | |
| <p class="text-gray-600 mb-4">Creating websites that work perfectly on all devices using modern CSS techniques.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 95%"></div> | |
| </div> | |
| </div> | |
| <!-- Skill Card 5 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fab fa-git-alt text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">Version Control</h3> | |
| <p class="text-gray-600 mb-4">Proficient with Git and GitHub for collaborative development workflows.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 85%"></div> | |
| </div> | |
| </div> | |
| <!-- Skill Card 6 --> | |
| <div class="skill-card bg-white p-6 rounded-xl shadow-md transition duration-300"> | |
| <div class="text-indigo-600 mb-4"> | |
| <i class="fas fa-cloud text-4xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-2 text-gray-800">Cloud Services</h3> | |
| <p class="text-gray-600 mb-4">Experience with AWS, Firebase, and Heroku for deployment and hosting.</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 75%"></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Projects Section --> | |
| <section id="projects" class="py-16 bg-white"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">My Projects</h2> | |
| <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-lg border border-gray-100"> | |
| <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-48 object-cover"> | |
| <div class="p-6"> | |
| <h3 class="text-xl font-bold mb-2 text-gray-800">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="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">React</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">Node.js</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">MongoDB</span> | |
| </div> | |
| <div class="flex space-x-3"> | |
| <a href="#" class="text-indigo-600 hover:text-indigo-800 font-medium">Live Demo</a> | |
| <a href="#" class="text-gray-600 hover:text-gray-800 font-medium">Code</a> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Project 2 --> | |
| <div class="project-card bg-white rounded-xl overflow-hidden shadow-lg border border-gray-100"> | |
| <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-48 object-cover"> | |
| <div class="p-6"> | |
| <h3 class="text-xl font-bold mb-2 text-gray-800">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="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">Vue.js</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">Firebase</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">TailwindCSS</span> | |
| </div> | |
| <div class="flex space-x-3"> | |
| <a href="#" class="text-indigo-600 hover:text-indigo-800 font-medium">Live Demo</a> | |
| <a href="#" class="text-gray-600 hover:text-gray-800 font-medium">Code</a> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Project 3 --> | |
| <div class="project-card bg-white rounded-xl overflow-hidden shadow-lg border border-gray-100"> | |
| <img src="https://images.unsplash.com/photo-1555066931-4365d14bab8c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Project 3" class="w-full h-48 object-cover"> | |
| <div class="p-6"> | |
| <h3 class="text-xl font-bold mb-2 text-gray-800">Code Editor</h3> | |
| <p class="text-gray-600 mb-4">An online code editor with syntax highlighting, auto-completion, and real-time collaboration.</p> | |
| <div class="flex flex-wrap gap-2 mb-4"> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">TypeScript</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">WebSockets</span> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">Docker</span> | |
| </div> | |
| <div class="flex space-x-3"> | |
| <a href="#" class="text-indigo-600 hover:text-indigo-800 font-medium">Live Demo</a> | |
| <a href="#" class="text-gray-600 hover:text-gray-800 font-medium">Code</a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="text-center mt-12"> | |
| <a href="#" class="inline-block bg-indigo-600 text-white px-6 py-3 rounded-lg font-medium hover:bg-indigo-700 transition duration-300">View All Projects</a> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Contact Section --> | |
| <section id="contact" class="py-16 bg-gray-50"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Get In Touch</h2> | |
| <div class="flex flex-col md:flex-row"> | |
| <div class="md:w-1/2 mb-10 md:mb-0 md:pr-8"> | |
| <h3 class="text-2xl font-semibold mb-4 text-gray-800">Contact Information</h3> | |
| <p class="text-gray-600 mb-6">Feel free to reach out if you're looking for a developer, have a question, or just want to connect.</p> | |
| <div class="space-y-4"> | |
| <div class="flex items-start"> | |
| <div class="text-indigo-600 mr-4 mt-1"> | |
| <i class="fas fa-envelope text-xl"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">Email</h4> | |
| <p class="text-gray-600">alex@example.com</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="text-indigo-600 mr-4 mt-1"> | |
| <i class="fas fa-phone-alt text-xl"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">Phone</h4> | |
| <p class="text-gray-600">+1 (555) 123-4567</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="text-indigo-600 mr-4 mt-1"> | |
| <i class="fas fa-map-marker-alt text-xl"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">Location</h4> | |
| <p class="text-gray-600">San Francisco, CA</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-8"> | |
| <h4 class="font-medium text-gray-800 mb-4">Follow Me</h4> | |
| <div class="flex space-x-4"> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600 text-xl"> | |
| <i class="fab fa-github"></i> | |
| </a> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600 text-xl"> | |
| <i class="fab fa-linkedin-in"></i> | |
| </a> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600 text-xl"> | |
| <i class="fab fa-twitter"></i> | |
| </a> | |
| <a href="#" class="text-gray-600 hover:text-indigo-600 text-xl"> | |
| <i class="fab fa-instagram"></i> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md:w-1/2"> | |
| <form class="bg-white p-6 rounded-xl shadow-md"> | |
| <div class="mb-4"> | |
| <label for="name" class="block text-gray-700 font-medium mb-2">Name</label> | |
| <input type="text" id="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500"> | |
| </div> | |
| <div class="mb-4"> | |
| <label for="email" class="block text-gray-700 font-medium mb-2">Email</label> | |
| <input type="email" id="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500"> | |
| </div> | |
| <div class="mb-4"> | |
| <label for="subject" class="block text-gray-700 font-medium mb-2">Subject</label> | |
| <input type="text" id="subject" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500"> | |
| </div> | |
| <div class="mb-6"> | |
| <label for="message" class="block text-gray-700 font-medium mb-2">Message</label> | |
| <textarea id="message" rows="4" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500"></textarea> | |
| </div> | |
| <button type="submit" class="w-full bg-indigo-600 text-white py-3 rounded-lg font-medium hover:bg-indigo-700 transition duration-300">Send Message</button> | |
| </form> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Footer --> | |
| <footer class="bg-gray-800 text-white py-8"> | |
| <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="mb-4 md:mb-0"> | |
| <a href="#" class="text-xl font-bold">Alex Carter</a> | |
| <p class="text-gray-400 mt-1">Full Stack Developer</p> | |
| </div> | |
| <div class="flex space-x-6"> | |
| <a href="#" class="text-gray-400 hover:text-white transition duration-300"> | |
| <i class="fab fa-github text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition duration-300"> | |
| <i class="fab fa-linkedin-in text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition duration-300"> | |
| <i class="fab fa-twitter text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition duration-300"> | |
| <i class="fab fa-instagram text-xl"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400"> | |
| <p>© 2023 Alex Carter. All rights reserved.</p> | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| // Mobile menu toggle | |
| const menuBtn = document.getElementById('menu-btn'); | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| menuBtn.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 | |
| if (!mobileMenu.classList.contains('hidden')) { | |
| mobileMenu.classList.add('hidden'); | |
| } | |
| // Update active nav link | |
| document.querySelectorAll('.nav-link').forEach(link => { | |
| link.classList.remove('active'); | |
| }); | |
| this.classList.add('active'); | |
| // Scroll to section | |
| const targetId = this.getAttribute('href'); | |
| const targetElement = document.querySelector(targetId); | |
| if (targetElement) { | |
| window.scrollTo({ | |
| top: targetElement.offsetTop - 70, | |
| behavior: 'smooth' | |
| }); | |
| } | |
| }); | |
| }); | |
| // Update active nav link on scroll | |
| window.addEventListener('scroll', () => { | |
| const scrollPosition = window.scrollY; | |
| document.querySelectorAll('section').forEach(section => { | |
| const sectionTop = section.offsetTop - 100; | |
| const sectionHeight = section.offsetHeight; | |
| const sectionId = section.getAttribute('id'); | |
| if (scrollPosition >= sectionTop && scrollPosition < sectionTop + sectionHeight) { | |
| document.querySelectorAll('.nav-link').forEach(link => { | |
| link.classList.remove('active'); | |
| if (link.getAttribute('href') === `#${sectionId}`) { | |
| link.classList.add('active'); | |
| } | |
| }); | |
| } | |
| }); | |
| }); | |
| // Form submission | |
| const contactForm = document.querySelector('form'); | |
| if (contactForm) { | |
| contactForm.addEventListener('submit', (e) => { | |
| e.preventDefault(); | |
| alert('Thank you for your message! I will get back to you soon.'); | |
| contactForm.reset(); | |
| }); | |
| } | |
| </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=Henry1223/personal-website-test" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body> | |
| </html> |