Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Nithishkumar | 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; | |
background-color: #f8fafc; | |
scroll-behavior: smooth; | |
} | |
.gradient-bg { | |
background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #d946ef 100%); | |
} | |
.card-hover { | |
transition: all 0.3s ease; | |
} | |
.card-hover:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
} | |
.skill-bar { | |
height: 8px; | |
border-radius: 4px; | |
background-color: #e2e8f0; | |
overflow: hidden; | |
} | |
.skill-progress { | |
height: 100%; | |
border-radius: 4px; | |
background: linear-gradient(90deg, #6366f1, #8b5cf6); | |
transition: width 1s ease-in-out; | |
} | |
.floating { | |
animation: floating 3s ease-in-out infinite; | |
} | |
@keyframes floating { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-15px); } | |
100% { transform: translateY(0px); } | |
} | |
.typewriter { | |
overflow: hidden; | |
border-right: .15em solid #6366f1; | |
white-space: nowrap; | |
margin: 0 auto; | |
letter-spacing: .15em; | |
animation: | |
typing 3.5s steps(40, end), | |
blink-caret .75s step-end infinite; | |
} | |
@keyframes typing { | |
from { width: 0 } | |
to { width: 100% } | |
} | |
@keyframes blink-caret { | |
from, to { border-color: transparent } | |
50% { border-color: #6366f1; } | |
} | |
</style> | |
</head> | |
<body class="antialiased"> | |
<!-- Navigation --> | |
<nav class="bg-white shadow-lg sticky top-0 z-50"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<div class="flex justify-between items-center py-4"> | |
<div class="flex items-center space-x-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white font-bold text-xl">N</div> | |
<span class="text-xl font-semibold text-gray-800">Nithishkumar</span> | |
</div> | |
<div class="hidden md:flex items-center space-x-8"> | |
<a href="#home" class="text-indigo-600 font-medium">Home</a> | |
<a href="#about" class="text-gray-600 hover:text-indigo-600 transition">About</a> | |
<a href="#projects" class="text-gray-600 hover:text-indigo-600 transition">Projects</a> | |
<a href="#skills" class="text-gray-600 hover:text-indigo-600 transition">Skills</a> | |
<a href="#contact" class="text-gray-600 hover:text-indigo-600 transition">Contact</a> | |
</div> | |
<div class="md:hidden"> | |
<button id="menu-btn" class="text-gray-600 focus:outline-none"> | |
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> | |
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path> | |
</svg> | |
</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-indigo-600 font-medium">Home</a> | |
<a href="#about" class="block py-2 text-gray-600 hover:text-indigo-600 transition">About</a> | |
<a href="#projects" class="block py-2 text-gray-600 hover:text-indigo-600 transition">Projects</a> | |
<a href="#skills" class="block py-2 text-gray-600 hover:text-indigo-600 transition">Skills</a> | |
<a href="#contact" class="block py-2 text-gray-600 hover:text-indigo-600 transition">Contact</a> | |
</div> | |
</nav> | |
<!-- Hero Section --> | |
<section id="home" class="gradient-bg text-white py-20"> | |
<div class="max-w-6xl mx-auto px-4 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 <span class="typewriter">Nithishkumar</span></h1> | |
<p class="text-xl md:text-2xl mb-6">Software Engineer at Infosys | Android Developer | AI Enthusiast</p> | |
<div class="flex space-x-4"> | |
<a href="#projects" class="bg-white text-indigo-600 px-6 py-2 rounded-full font-medium hover:bg-gray-100 transition">View My Work</a> | |
<a href="#contact" class="border-2 border-white text-white px-6 py-2 rounded-full font-medium hover:bg-white hover:text-indigo-600 transition">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-white bg-opacity-20 rounded-full blur-xl"></div> | |
<img src="https://images.unsplash.com/photo-1570295999919-56ceb5ecca61?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=880&q=80" | |
alt="Profile" | |
class="relative w-full h-full rounded-full object-cover border-4 border-white floating"> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- About Section --> | |
<section id="about" class="py-20 bg-white"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<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"> | |
<div class="w-64 h-64 rounded-full overflow-hidden border-4 border-indigo-100"> | |
<img src="https://images.unsplash.com/photo-1570295999919-56ceb5ecca61?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=880&q=80" | |
alt="Profile" | |
class="w-full h-full object-cover"> | |
</div> | |
</div> | |
<div class="md:w-2/3 md:pl-12"> | |
<h3 class="text-2xl font-semibold text-gray-800 mb-4">Who am I?</h3> | |
<p class="text-gray-600 mb-6"> | |
I'm Nithishkumar, a passionate Software Engineer currently working at Infosys with expertise in Android application development and AI technologies. | |
I've successfully developed and published multiple Android applications on the Play Store and have hands-on experience in training AI models, | |
including a text-to-audio conversion model. | |
</p> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-6"> | |
<div class="bg-gray-50 p-6 rounded-lg card-hover"> | |
<div class="flex items-center mb-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-briefcase"></i> | |
</div> | |
<h4 class="text-lg font-semibold text-gray-800">Professional</h4> | |
</div> | |
<p class="text-gray-600"> | |
Currently working as a Software Engineer at Infosys, contributing to innovative projects and solutions. | |
</p> | |
</div> | |
<div class="bg-gray-50 p-6 rounded-lg card-hover"> | |
<div class="flex items-center mb-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-mobile-alt"></i> | |
</div> | |
<h4 class="text-lg font-semibold text-gray-800">Android Developer</h4> | |
</div> | |
<p class="text-gray-600"> | |
Developed and published multiple Android applications available on the Google Play Store. | |
</p> | |
</div> | |
<div class="bg-gray-50 p-6 rounded-lg card-hover"> | |
<div class="flex items-center mb-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-brain"></i> | |
</div> | |
<h4 class="text-lg font-semibold text-gray-800">AI Enthusiast</h4> | |
</div> | |
<p class="text-gray-600"> | |
Trained a text-to-audio AI model, exploring the fascinating world of machine learning and neural networks. | |
</p> | |
</div> | |
<div class="bg-gray-50 p-6 rounded-lg card-hover"> | |
<div class="flex items-center mb-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-graduation-cap"></i> | |
</div> | |
<h4 class="text-lg font-semibold text-gray-800">Education</h4> | |
</div> | |
<p class="text-gray-600"> | |
Strong academic background in Computer Science with a focus on software development and AI technologies. | |
</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Projects Section --> | |
<section id="projects" class="py-20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<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"> | |
<!-- Android Project 1 --> | |
<div class="bg-white rounded-xl overflow-hidden shadow-lg card-hover"> | |
<div class="h-48 bg-indigo-100 flex items-center justify-center"> | |
<i class="fas fa-mobile-alt text-6xl text-indigo-500"></i> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-2">Android App 1</h3> | |
<p class="text-gray-600 mb-4">A feature-rich Android application available on the Play Store with thousands of downloads.</p> | |
<div class="flex justify-between items-center"> | |
<span class="text-sm text-indigo-600 font-medium">Play Store</span> | |
<a href="#" class="text-indigo-600 hover:text-indigo-800 transition"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Android Project 2 --> | |
<div class="bg-white rounded-xl overflow-hidden shadow-lg card-hover"> | |
<div class="h-48 bg-purple-100 flex items-center justify-center"> | |
<i class="fas fa-mobile-alt text-6xl text-purple-500"></i> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-2">Android App 2</h3> | |
<p class="text-gray-600 mb-4">Another successful Android application solving real-world problems with innovative features.</p> | |
<div class="flex justify-between items-center"> | |
<span class="text-sm text-purple-600 font-medium">Play Store</span> | |
<a href="#" class="text-purple-600 hover:text-purple-800 transition"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- AI Project --> | |
<div class="bg-white rounded-xl overflow-hidden shadow-lg card-hover"> | |
<div class="h-48 bg-pink-100 flex items-center justify-center"> | |
<i class="fas fa-robot text-6xl text-pink-500"></i> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-2">Text-to-Audio AI</h3> | |
<p class="text-gray-600 mb-4">A trained AI model that converts text to natural sounding audio with multiple voice options.</p> | |
<div class="flex justify-between items-center"> | |
<span class="text-sm text-pink-600 font-medium">AI Model</span> | |
<a href="#" class="text-pink-600 hover:text-pink-800 transition"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="text-center mt-12"> | |
<a href="#" class="inline-flex items-center px-6 py-3 gradient-bg text-white rounded-full font-medium hover:opacity-90 transition"> | |
<span>View All Projects</span> | |
<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-4"> | |
<h2 class="text-3xl font-bold text-center mb-12 text-gray-800">My Skills</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-12"> | |
<div> | |
<h3 class="text-xl font-semibold text-gray-800 mb-6">Technical Skills</h3> | |
<div class="space-y-6"> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Android Development</span> | |
<span class="text-gray-500">90%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 90%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Java/Kotlin</span> | |
<span class="text-gray-500">85%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 85%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Machine Learning</span> | |
<span class="text-gray-500">75%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 75%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Python</span> | |
<span class="text-gray-500">80%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 80%"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div> | |
<h3 class="text-xl font-semibold text-gray-800 mb-6">Professional Skills</h3> | |
<div class="space-y-6"> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Problem Solving</span> | |
<span class="text-gray-500">95%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 95%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Team Collaboration</span> | |
<span class="text-gray-500">90%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 90%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Communication</span> | |
<span class="text-gray-500">85%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 85%"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-2"> | |
<span class="text-gray-700 font-medium">Project Management</span> | |
<span class="text-gray-500">80%</span> | |
</div> | |
<div class="skill-bar"> | |
<div class="skill-progress" style="width: 80%"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="mt-16"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-6 text-center">Tools & Technologies</h3> | |
<div class="flex flex-wrap justify-center gap-4"> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fab fa-android text-green-500 mr-2"></i> | |
<span class="text-gray-700">Android Studio</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fab fa-java text-red-500 mr-2"></i> | |
<span class="text-gray-700">Java</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fas fa-code text-purple-500 mr-2"></i> | |
<span class="text-gray-700">Kotlin</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fab fa-python text-blue-500 mr-2"></i> | |
<span class="text-gray-700">Python</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fas fa-brain text-indigo-500 mr-2"></i> | |
<span class="text-gray-700">TensorFlow</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fab fa-git-alt text-orange-500 mr-2"></i> | |
<span class="text-gray-700">Git</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fas fa-database text-yellow-500 mr-2"></i> | |
<span class="text-gray-700">SQL</span> | |
</div> | |
<div class="bg-gray-100 px-4 py-2 rounded-full flex items-center"> | |
<i class="fab fa-google-play text-blue-400 mr-2"></i> | |
<span class="text-gray-700">Play Console</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Contact Section --> | |
<section id="contact" class="py-20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<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 gap-12"> | |
<div class="md:w-1/2"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-6">Contact Information</h3> | |
<div class="space-y-6"> | |
<div class="flex items-start"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-envelope"></i> | |
</div> | |
<div> | |
<h4 class="text-lg font-medium text-gray-800">Email</h4> | |
<p class="text-gray-600">[email protected]</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-phone-alt"></i> | |
</div> | |
<div> | |
<h4 class="text-lg font-medium text-gray-800">Phone</h4> | |
<p class="text-gray-600">+91 9876543210</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white mr-4"> | |
<i class="fas fa-map-marker-alt"></i> | |
</div> | |
<div> | |
<h4 class="text-lg font-medium text-gray-800">Location</h4> | |
<p class="text-gray-600">Bangalore, India</p> | |
</div> | |
</div> | |
</div> | |
<div class="mt-10"> | |
<h3 class="text-xl font-semibold text-gray-800 mb-6">Connect With Me</h3> | |
<div class="flex space-x-4"> | |
<a href="#" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center text-indigo-600 hover:bg-indigo-100 transition"> | |
<i class="fab fa-linkedin-in text-xl"></i> | |
</a> | |
<a href="#" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center text-blue-500 hover:bg-blue-100 transition"> | |
<i class="fab fa-twitter text-xl"></i> | |
</a> | |
<a href="#" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center text-gray-800 hover:bg-gray-200 transition"> | |
<i class="fab fa-github text-xl"></i> | |
</a> | |
<a href="#" class="w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center text-red-500 hover:bg-red-100 transition"> | |
<i class="fab fa-youtube text-xl"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<div class="md:w-1/2"> | |
<form class="bg-white p-8 rounded-xl shadow-lg"> | |
<div class="mb-6"> | |
<label for="name" class="block text-gray-700 font-medium mb-2">Your 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 focus:border-transparent"> | |
</div> | |
<div class="mb-6"> | |
<label for="email" class="block text-gray-700 font-medium mb-2">Your 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 focus:border-transparent"> | |
</div> | |
<div class="mb-6"> | |
<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 focus:border-transparent"> | |
</div> | |
<div class="mb-6"> | |
<label for="message" class="block text-gray-700 font-medium mb-2">Your Message</label> | |
<textarea id="message" rows="5" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></textarea> | |
</div> | |
<button type="submit" class="w-full gradient-bg text-white py-3 rounded-lg font-medium hover:opacity-90 transition focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"> | |
Send Message | |
</button> | |
</form> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="bg-gray-800 text-white py-12"> | |
<div class="max-w-6xl mx-auto px-4"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="mb-6 md:mb-0"> | |
<div class="flex items-center space-x-4"> | |
<div class="gradient-bg w-10 h-10 rounded-full flex items-center justify-center text-white font-bold text-xl">N</div> | |
<span class="text-xl font-semibold">Nithishkumar</span> | |
</div> | |
<p class="mt-2 text-gray-400">Software Engineer | Android Developer | AI Enthusiast</p> | |
</div> | |
<div class="flex space-x-6"> | |
<a href="#" class="text-gray-400 hover:text-white transition"> | |
<i class="fab fa-linkedin-in text-xl"></i> | |
</a> | |
<a href="#" class="text-gray-400 hover:text-white transition"> | |
<i class="fab fa-twitter text-xl"></i> | |
</a> | |
<a href="#" class="text-gray-400 hover:text-white transition"> | |
<i class="fab fa-github text-xl"></i> | |
</a> | |
<a href="#" class="text-gray-400 hover:text-white transition"> | |
<i class="fab fa-youtube text-xl"></i> | |
</a> | |
</div> | |
</div> | |
<div class="border-t border-gray-700 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center"> | |
<p class="text-gray-400 text-sm mb-4 md:mb-0">© 2023 Nithishkumar. All rights reserved.</p> | |
<div class="flex space-x-6"> | |
<a href="#" class="text-gray-400 hover:text-white text-sm transition">Privacy Policy</a> | |
<a href="#" class="text-gray-400 hover:text-white text-sm transition">Terms of Service</a> | |
<a href="#" class="text-gray-400 hover:text-white text-sm transition">Contact</a> | |
</div> | |
</div> | |
</div> | |
</footer> | |
<!-- Back to Top Button --> | |
<button id="back-to-top" class="fixed bottom-8 right-8 w-12 h-12 gradient-bg text-white rounded-full shadow-lg flex items-center justify-center opacity-0 invisible transition-all duration-300"> | |
<i class="fas fa-arrow-up"></i> | |
</button> | |
<script> | |
// Mobile menu toggle | |
const menuBtn = document.getElementById('menu-btn'); | |
const mobileMenu = document.getElementById('mobile-menu'); | |
menuBtn.addEventListener('click', () => { | |
mobileMenu.classList.toggle('hidden'); | |
}); | |
// Back to top button | |
const backToTopBtn = document.getElementById('back-to-top'); | |
window.addEventListener('scroll', () => { | |
if (window.pageYOffset > 300) { | |
backToTopBtn.classList.remove('opacity-0', 'invisible'); | |
backToTopBtn.classList.add('opacity-100', 'visible'); | |
} else { | |
backToTopBtn.classList.remove('opacity-100', 'visible'); | |
backToTopBtn.classList.add('opacity-0', 'invisible'); | |
} | |
}); | |
backToTopBtn.addEventListener('click', () => { | |
window.scrollTo({ | |
top: 0, | |
behavior: 'smooth' | |
}); | |
}); | |
// Smooth scrolling for navigation links | |
document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
anchor.addEventListener('click', function(e) { | |
e.preventDefault(); | |
const targetId = this.getAttribute('href'); | |
const targetElement = document.querySelector(targetId); | |
if (targetElement) { | |
window.scrollTo({ | |
top: targetElement.offsetTop - 80, | |
behavior: 'smooth' | |
}); | |
// Close mobile menu if open | |
if (!mobileMenu.classList.contains('hidden')) { | |
mobileMenu.classList.add('hidden'); | |
} | |
} | |
}); | |
}); | |
// Animate skill bars on scroll | |
const skillBars = document.querySelectorAll('.skill-progress'); | |
function animateSkillBars() { | |
skillBars.forEach(bar => { | |
const width = bar.style.width; | |
bar.style.width = '0'; | |
setTimeout(() => { | |
bar.style.width = width; | |
}, 100); | |
}); | |
} | |
const skillsObserver = new IntersectionObserver((entries) => { | |
entries.forEach(entry => { | |
if (entry.isIntersecting) { | |
animateSkillBars(); | |
skillsObserver.unobserve(entry.target); | |
} | |
}); | |
}, { threshold: 0.2 }); | |
const skillsSection = document.getElementById('skills'); | |
if (skillsSection) { | |
skillsObserver.observe(skillsSection); | |
} | |
</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=Nithish310/my-portfolio" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |