| | <!DOCTYPE html> |
| | <html lang="en" class="scroll-smooth"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | <title>Portfolio | Creative Developer</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"> |
| | <script> |
| | tailwind.config = { |
| | darkMode: 'class', |
| | theme: { |
| | extend: { |
| | animation: { |
| | 'fade-in': 'fadeIn 1s ease-in-out', |
| | 'slide-up': 'slideUp 0.8s ease-out', |
| | 'float': 'float 3s ease-in-out infinite', |
| | }, |
| | keyframes: { |
| | fadeIn: { |
| | '0%': { opacity: '0' }, |
| | '100%': { opacity: '1' }, |
| | }, |
| | slideUp: { |
| | '0%': { transform: 'translateY(20px)', opacity: '0' }, |
| | '100%': { transform: 'translateY(0)', opacity: '1' }, |
| | }, |
| | float: { |
| | '0%, 100%': { transform: 'translateY(0)' }, |
| | '50%': { transform: 'translateY(-10px)' }, |
| | } |
| | } |
| | } |
| | } |
| | } |
| | </script> |
| | <style> |
| | .gradient-text { |
| | background-clip: text; |
| | -webkit-background-clip: text; |
| | color: transparent; |
| | background-image: linear-gradient(90deg, #3b82f6, #8b5cf6); |
| | } |
| | |
| | .project-card:hover .project-overlay { |
| | opacity: 1; |
| | transform: translateY(0); |
| | } |
| | |
| | .skill-item:hover { |
| | transform: translateY(-5px); |
| | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); |
| | } |
| | |
| | .dark .gradient-text { |
| | background-image: linear-gradient(90deg, #60a5fa, #a78bfa); |
| | } |
| | |
| | @media (max-width: 768px) { |
| | .nav-menu { |
| | position: fixed; |
| | top: 0; |
| | right: -100%; |
| | width: 80%; |
| | height: 100vh; |
| | background-color: white; |
| | transition: 0.5s; |
| | z-index: 10; |
| | padding-top: 80px; |
| | } |
| | .nav-menu.active { |
| | right: 0; |
| | } |
| | .dark .nav-menu { |
| | background-color: #1f2937; |
| | } |
| | } |
| | </style> |
| | </head> |
| | <body class="bg-white dark:bg-gray-900 text-gray-800 dark:text-gray-200 transition-colors duration-300"> |
| | |
| | <header class="fixed w-full z-50 bg-white/80 dark:bg-gray-900/80 backdrop-blur-sm shadow-sm"> |
| | <div class="container mx-auto px-6 py-3 flex justify-between items-center"> |
| | <a href="#" class="text-2xl font-bold gradient-text">Bennison's Portfolio</a> |
| | <div class="flex items-center space-x-6"> |
| | <nav class="hidden md:flex space-x-8"> |
| | <a href="#home" class="hover:text-blue-500 dark:hover:text-blue-400 transition">Home</a> |
| | <a href="#about" class="hover:text-blue-500 dark:hover:text-blue-400 transition">About</a> |
| | <a href="#projects" class="hover:text-blue-500 dark:hover:text-blue-400 transition">Projects</a> |
| | <a href="#skills" class="hover:text-blue-500 dark:hover:text-blue-400 transition">Skills</a> |
| | <a href="#contact" class="hover:text-blue-500 dark:hover:text-blue-400 transition">Contact</a> |
| | </nav> |
| | |
| | <button id="theme-toggle" class="p-2 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 transition"> |
| | <i class="fas fa-moon dark:hidden"></i> |
| | <i class="fas fa-sun hidden dark:block"></i> |
| | </button> |
| | |
| | <button id="menu-toggle" class="md:hidden p-2 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 transition"> |
| | <i class="fas fa-bars"></i> |
| | </button> |
| | </div> |
| | </div> |
| | |
| | |
| | <div id="nav-menu" class="nav-menu md:hidden"> |
| | <div class="flex flex-col space-y-6 p-8"> |
| | <a href="#home" class="text-xl hover:text-blue-500 dark:hover:text-blue-400 transition">Home</a> |
| | <a href="#about" class="text-xl hover:text-blue-500 dark:hover:text-blue-400 transition">About</a> |
| | <a href="#projects" class="text-xl hover:text-blue-500 dark:hover:text-blue-400 transition">Projects</a> |
| | <a href="#skills" class="text-xl hover:text-blue-500 dark:hover:text-blue-400 transition">Skills</a> |
| | <a href="#contact" class="text-xl hover:text-blue-500 dark:hover:text-blue-400 transition">Contact</a> |
| | </div> |
| | </div> |
| | </header> |
| |
|
| | |
| | <section id="home" class="min-h-[90vh] flex items-center pt-16"> |
| | <div class="container mx-auto px-6 py-16 flex flex-col md:flex-row items-center"> |
| | <div class="md:w-1/2 mb-12 md:mb-0 animate-fade-in"> |
| | <h1 class="text-4xl md:text-6xl font-bold mb-6"> |
| | Hi, I'm <span class="gradient-text">Bennison</span> |
| | </h1> |
| | <h2 class="text-2xl md:text-3xl font-semibold mb-6 animate-slide-up"> |
| | AI Engineer & Backend Specialist |
| | </h2> |
| | <p class="text-lg mb-8 text-gray-600 dark:text-gray-300 max-w-lg animate-slide-up"> |
| | I architect intelligent systems with Python, Node.js and Generative AI to solve complex problems. |
| | </p> |
| | <div class="flex space-x-4 animate-slide-up"> |
| | <a href="#projects" class="px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-medium transition shadow-lg"> |
| | View My Work |
| | </a> |
| | <a href="#contact" class="px-6 py-3 border-2 border-blue-600 text-blue-600 hover:bg-blue-50 dark:hover:bg-gray-800 rounded-lg font-medium transition"> |
| | Contact Me |
| | </a> |
| | </div> |
| | </div> |
| | <div class="md:w-1/2 flex justify-center animate-float"> |
| | <div class="relative w-64 h-64 md:w-80 md:h-80 flex items-center justify-center rounded-full bg-gradient-to-br from-blue-500 to-purple-600 shadow-2xl"> |
| | <span class="text-white text-5xl md:text-7xl font-bold">BD</span> |
| | </div> |
| | </div> |
| | </div> |
| | </section> |
| |
|
| | |
| | <section id="about" class="py-16 bg-gray-50 dark:bg-gray-800"> |
| | <div class="container mx-auto px-6"> |
| | <h2 class="text-3xl font-bold text-center mb-12 gradient-text">About Me</h2> |
| | |
| | <div class="flex flex-col md:flex-row items-center gap-8"> |
| | <div class="md:w-1/3 flex justify-center"> |
| | <div class="relative w-56 h-56 rounded-lg bg-gradient-to-br from-blue-400 to-indigo-600 shadow-xl flex items-center justify-center"> |
| | <span class="text-white text-4xl font-bold">AI</span> |
| | </div> |
| | </div> |
| | <div class="md:w-2/3"> |
| | <h3 class="text-2xl font-semibold mb-4">Who I Am</h3> |
| | <p class="text-gray-600 dark:text-gray-300 mb-6"> |
| | I'm a passionate AI Engineer with 3.5+ years of experience in backend development and generative AI systems. |
| | I specialize in Python, Node.js, and building RAG (Retrieval-Augmented Generation) architectures with Agentic AI workflows. |
| | </p> |
| | |
| | <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"> |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-blue-100 dark:bg-blue-900 rounded-full"> |
| | <i class="fas fa-code text-blue-600 dark:text-blue-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-semibold">Web Development</h4> |
| | <p class="text-gray-500 dark:text-gray-400 text-sm"> |
| | Building responsive and interactive web applications |
| | </p> |
| | </div> |
| | </div> |
| | |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-green-100 dark:bg-green-900 rounded-full"> |
| | <i class="fas fa-server text-green-600 dark:text-green-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-semibold">Backend Development</h4> |
| | <p class="text-gray-500 dark:text-gray-400 text-sm"> |
| | Designing scalable APIs and database architectures |
| | </p> |
| | </div> |
| | </div> |
| | |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-purple-100 dark:bg-purple-900 rounded-full"> |
| | <i class="fas fa-brain text-purple-600 dark:text-purple-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-semibold">Generative AI (RAG)</h4> |
| | <p class="text-gray-500 dark:text-gray-400 text-sm"> |
| | Building Retrieval-Augmented Generation systems |
| | </p> |
| | </div> |
| | </div> |
| | |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-indigo-100 dark:bg-indigo-900 rounded-full"> |
| | <i class="fas fa-robot text-indigo-600 dark:text-indigo-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-semibold">Agentic AI</h4> |
| | <p class="text-gray-500 dark:text-gray-400 text-sm"> |
| | Developing autonomous AI agents with reasoning capabilities |
| | </p> |
| | </div> |
| | </div> |
| | </div> |
| | <a href="https://linkedin.com/in/bennisondevadoss" target="_blank" class="inline-flex items-center px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition mr-4"> |
| | <i class="fab fa-linkedin-in mr-2"></i> LinkedIn |
| | </a> |
| | <a href="https://github.com/BennisonDevadoss" target="_blank" class="inline-flex items-center px-4 py-2 bg-gray-800 text-white rounded-lg hover:bg-gray-700 transition"> |
| | <i class="fab fa-github mr-2"></i> GitHub |
| | </a> |
| | </div> |
| | </div> |
| | </div> |
| | </section> |
| |
|
| | |
| | <section id="projects" class="py-16"> |
| | <div class="container mx-auto px-6"> |
| | <h2 class="text-3xl font-bold text-center mb-4 gradient-text">My Projects</h2> |
| | <p class="text-center text-gray-600 dark:text-gray-300 max-w-2xl mx-auto mb-16"> |
| | Here are some of my recent projects. Each one was built to solve a specific problem or explore new technologies. |
| | </p> |
| | |
| | <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> |
| | |
| | <div class="project-card rounded-lg overflow-hidden shadow-lg hover:shadow-xl transition duration-300 relative"> |
| | <div class="relative h-52"> |
| | <img src="http://static.photos/technology/640x360/789" |
| | alt="Project 1" class="w-full h-full object-cover"> |
| | <div class="project-overlay absolute inset-0 bg-black/70 flex flex-col justify-center items-center opacity-0 transition duration-300 transform translate-y-4 p-6"> |
| | <h3 class="text-white text-xl font-bold mb-2">E-commerce Platform</h3> |
| | <p class="text-gray-300 text-sm mb-4 text-center"> |
| | A full-featured online store with payment integration and admin dashboard. |
| | </p> |
| | <div class="flex space-x-2"> |
| | <span class="px-2 py-1 bg-blue-600 text-white text-xs rounded">React</span> |
| | <span class="px-2 py-1 bg-green-600 text-white text-xs rounded">Node.js</span> |
| | <span class="px-2 py-1 bg-yellow-600 text-white text-xs rounded">MongoDB</span> |
| | </div> |
| | <div class="mt-4 flex space-x-4"> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fab fa-github"></i> |
| | </a> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fas fa-external-link-alt"></i> |
| | </a> |
| | </div> |
| | </div> |
| | </div> |
| | <div class="p-4 bg-white dark:bg-gray-800"> |
| | <h3 class="font-semibold text-lg mb-2">E-commerce Platform</h3> |
| | <p class="text-gray-600 dark:text-gray-300 text-sm"> |
| | Online store with Stripe payment integration and admin dashboard. |
| | </p> |
| | </div> |
| | </div> |
| | |
| | |
| | <div class="project-card rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300 relative"> |
| | <div class="relative h-60"> |
| | <img src="http://static.photos/technology/640x360/321" |
| | alt="Project 2" class="w-full h-full object-cover"> |
| | <div class="project-overlay absolute inset-0 bg-black/70 flex flex-col justify-center items-center opacity-0 transition duration-300 transform translate-y-4 p-6"> |
| | <h3 class="text-white text-xl font-bold mb-2">Task Management App</h3> |
| | <p class="text-gray-300 text-sm mb-4 text-center"> |
| | A collaborative task management tool with real-time updates. |
| | </p> |
| | <div class="flex space-x-2"> |
| | <span class="px-2 py-1 bg-blue-600 text-white text-xs rounded">React</span> |
| | <span class="px-2 py-1 bg-purple-600 text-white text-xs rounded">GraphQL</span> |
| | <span class="px-2 py-1 bg-green-600 text-white text-xs rounded">Firebase</span> |
| | </div> |
| | <div class="mt-4 flex space-x-4"> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fab fa-github"></i> |
| | </a> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fas fa-external-link-alt"></i> |
| | </a> |
| | </div> |
| | </div> |
| | </div> |
| | <div class="p-4 bg-white dark:bg-gray-800"> |
| | <h3 class="font-semibold text-lg mb-2">Task Management App</h3> |
| | <p class="text-gray-600 dark:text-gray-300 text-sm"> |
| | Collaborative tool with real-time updates and team features. |
| | </p> |
| | </div> |
| | </div> |
| | |
| | |
| | <div class="project-card rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition duration-300 relative"> |
| | <div class="relative h-60"> |
| | <img src="http://static.photos/technology/640x360/654" |
| | alt="Project 3" class="w-full h-full object-cover"> |
| | <div class="project-overlay absolute inset-0 bg-black/70 flex flex-col justify-center items-center opacity-0 transition duration-300 transform translate-y-4 p-6"> |
| | <h3 class="text-white text-xl font-bold mb-2">Social Media Dashboard</h3> |
| | <p class="text-gray-300 text-sm mb-4 text-center"> |
| | Analytics dashboard for tracking social media performance. |
| | </p> |
| | <div class="flex space-x-2"> |
| | <span class="px-2 py-1 bg-blue-600 text-white text-xs rounded">Vue.js</span> |
| | <span class="px-2 py-1 bg-green-600 text-white text-xs rounded">D3.js</span> |
| | <span class="px-2 py-1 bg-yellow-600 text-white text-xs rounded">Express</span> |
| | </div> |
| | <div class="mt-4 flex space-x-4"> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fab fa-github"></i> |
| | </a> |
| | <a href="#" class="text-white hover:text-blue-300 transition"> |
| | <i class="fas fa-external-link-alt"></i> |
| | </a> |
| | </div> |
| | </div> |
| | </div> |
| | <div class="p-4 bg-white dark:bg-gray-800"> |
| | <h3 class="font-semibold text-lg mb-2">Social Media Dashboard</h3> |
| | <p class="text-gray-600 dark:text-gray-300 text-sm"> |
| | Analytics platform with data visualization for social metrics. |
| | </p> |
| | </div> |
| | </div> |
| | </div> |
| | |
| | <div class="text-center mt-12"> |
| | <a href="#" class="px-6 py-3 border-2 border-blue-600 text-blue-600 hover:bg-blue-50 dark:hover:bg-gray-800 rounded-lg font-medium transition inline-flex items-center"> |
| | View All Projects |
| | <i class="fas fa-arrow-right ml-2"></i> |
| | </a> |
| | </div> |
| | </div> |
| | </section> |
| |
|
| | |
| | <section id="skills" class="py-16 bg-gray-50 dark:bg-gray-800"> |
| | <div class="container mx-auto px-6"> |
| | <h2 class="text-3xl font-bold text-center mb-4 gradient-text">My Skills</h2> |
| | <p class="text-center text-gray-600 dark:text-gray-300 max-w-2xl mx-auto mb-16"> |
| | I've worked with a variety of technologies in the web development world. |
| | </p> |
| | |
| | <div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-6"> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fab fa-python text-4xl text-blue-500"></i> |
| | </div> |
| | <h3 class="font-semibold">Python</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-blue-500 h-2 rounded-full" style="width: 95%"></div> |
| | </div> |
| | </div> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fab fa-node-js text-4xl text-green-500"></i> |
| | </div> |
| | <h3 class="font-semibold">Node.js</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-green-500 h-2 rounded-full" style="width: 90%"></div> |
| | </div> |
| | </div> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fas fa-robot text-4xl text-purple-500"></i> |
| | </div> |
| | <h3 class="font-semibold">Generative AI</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-purple-500 h-2 rounded-full" style="width: 85%"></div> |
| | </div> |
| | </div> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fas fa-database text-4xl text-blue-600"></i> |
| | </div> |
| | <h3 class="font-semibold">PostgreSQL</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-blue-600 h-2 rounded-full" style="width: 90%"></div> |
| | </div> |
| | </div> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fas fa-brain text-4xl text-pink-500"></i> |
| | </div> |
| | <h3 class="font-semibold">RAG Systems</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-pink-500 h-2 rounded-full" style="width: 88%"></div> |
| | </div> |
| | </div> |
| | |
| | <div class="skill-item p-6 bg-white dark:bg-gray-700 rounded-xl shadow-md hover:shadow-lg transition duration-300 flex flex-col items-center"> |
| | <div class="w-16 h-16 mb-4 flex items-center justify-center"> |
| | <i class="fas fa-code text-4xl text-indigo-500"></i> |
| | </div> |
| | <h3 class="font-semibold">FastAPI/NestJS</h3> |
| | <div class="w-full bg-gray-200 dark:bg-gray-600 rounded-full h-2 mt-3"> |
| | <div class="bg-indigo-500 h-2 rounded-full" style="width: 85%"></div> |
| | </div> |
| | </div> |
| | </div> |
| | |
| | <div class="mt-16"> |
| | <h3 class="text-xl font-semibold text-center mb-8">Workflow & Tools</h3> |
| | <div class="flex flex-wrap justify-center gap-4"> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fab fa-git-alt text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>Git</span> |
| | </div> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fab fa-github text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>GitHub</span> |
| | </div> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fab fa-figma text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>Figma</span> |
| | </div> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fas fa-terminal text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>VS Code</span> |
| | </div> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fab fa-npm text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>npm</span> |
| | </div> |
| | <div class="px-4 py-2 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center"> |
| | <i class="fab fa-docker text-gray-700 dark:text-gray-300 mr-2"></i> |
| | <span>Docker</span> |
| | </div> |
| | </div> |
| | </div> |
| | </div> |
| | </section> |
| |
|
| | |
| | <section id="contact" class="py-16"> |
| | <div class="container mx-auto px-6"> |
| | <h2 class="text-3xl font-bold text-center mb-4 gradient-text">Get In Touch</h2> |
| | <p class="text-center text-gray-600 dark:text-gray-300 max-w-2xl mx-auto mb-16"> |
| | Have a project in mind or want to discuss potential opportunities? Feel free to reach out! |
| | </p> |
| | |
| | <div class="flex flex-col lg:flex-row gap-12"> |
| | <div class="lg:w-1/2"> |
| | <form class="space-y-4"> |
| | <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> |
| | <div> |
| | <label for="name" class="block text-sm font-medium mb-1">Name</label> |
| | <input type="text" id="name" class="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 transition"> |
| | </div> |
| | <div> |
| | <label for="email" class="block text-sm font-medium mb-1">Email</label> |
| | <input type="email" id="email" class="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 transition"> |
| | </div> |
| | </div> |
| | <div> |
| | <label for="subject" class="block text-sm font-medium mb-1">Subject</label> |
| | <input type="text" id="subject" class="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 transition"> |
| | </div> |
| | <div> |
| | <label for="message" class="block text-sm font-medium mb-1">Message</label> |
| | <textarea id="message" rows="5" class="w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 transition"></textarea> |
| | </div> |
| | <button type="submit" class="px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-medium transition shadow-lg w-full"> |
| | Send Message |
| | </button> |
| | </form> |
| | </div> |
| | |
| | <div class="lg:w-1/2"> |
| | <div class="bg-gray-50 dark:bg-gray-800 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 space-x-4"> |
| | <div class="p-3 bg-blue-100 dark:bg-blue-900 rounded-full"> |
| | <i class="fas fa-map-marker-alt text-blue-600 dark:text-blue-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-medium">Location</h4> |
| | <p class="text-gray-600 dark:text-gray-300">Coimbatore, Tamil Nadu</p> |
| | </div> |
| | </div> |
| | |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-green-100 dark:bg-green-900 rounded-full"> |
| | <i class="fas fa-envelope text-green-600 dark:text-green-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-medium">Email</h4> |
| | <p class="text-gray-600 dark:text-gray-300">bennisondevadoss@gmail.com</p> |
| | </div> |
| | </div> |
| | |
| | <div class="flex items-start space-x-4"> |
| | <div class="p-3 bg-purple-100 dark:bg-purple-900 rounded-full"> |
| | <i class="fas fa-phone-alt text-purple-600 dark:text-purple-300"></i> |
| | </div> |
| | <div> |
| | <h4 class="font-medium">Phone</h4> |
| | <p class="text-gray-600 dark:text-gray-300">+91 6379705181</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="https://linkedin.com/in/bennisondevadoss" target="_blank" class="p-3 bg-gray-200 dark:bg-gray-700 rounded-full hover:bg-blue-100 dark:hover:bg-blue-900 transition"> |
| | <i class="fab fa-linkedin-in text-gray-700 dark:text-gray-300"></i> |
| | </a> |
| | <a href="https://github.com/BennisonDevadoss" target="_blank" class="p-3 bg-gray-200 dark:bg-gray-700 rounded-full hover:bg-blue-100 dark:hover:bg-blue-900 transition"> |
| | <i class="fab fa-github text-gray-700 dark:text-gray-300"></i> |
| | </a> |
| | <a href="https://medium.com/@bennisondevadoss" target="_blank" class="p-3 bg-gray-200 dark:bg-gray-700 rounded-full hover:bg-blue-100 dark:hover:bg-blue-900 transition"> |
| | <i class="fab fa-medium text-gray-700 dark:text-gray-300"></i> |
| | </a> |
| | </div> |
| | </div> |
| | </div> |
| | </div> |
| | </div> |
| | </div> |
| | </section> |
| |
|
| | |
| | <footer class="bg-gray-100 dark:bg-gray-800 py-8"> |
| | <div class="container 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-600 dark:text-gray-300 mt-2"> |
| | © 2023 My Portfolio. All rights reserved. |
| | </p> |
| | </div> |
| | |
| | <div class="flex space-x-6"> |
| | <a href="#home" class="text-gray-600 dark:text-gray-300 hover:text-blue-500 dark:hover:text-blue-400 transition">Home</a> |
| | <a href="#about" class="text-gray-600 dark:text-gray-300 hover:text-blue-500 dark:hover:text-blue-400 transition">About</a> |
| | <a href="#projects" class="text-gray-600 dark:text-gray-300 hover:text-blue-500 dark:hover:text-blue-400 transition">Projects</a> |
| | <a href="#contact" class="text-gray-600 dark:text-gray-300 hover:text-blue-500 dark:hover:text-blue-400 transition">Contact</a> |
| | </div> |
| | </div> |
| | |
| | <div class="border-t border-gray-200 dark:border-gray-700 mt-8 pt-8 text-center text-gray-500 dark:text-gray-400 text-sm"> |
| | <p>Made with <i class="fas fa-heart text-red-500"></i> by Bennison Devadoss</p> |
| | </div> |
| | </div> |
| | </footer> |
| |
|
| | |
| | <button id="back-to-top" class="fixed bottom-8 right-8 p-3 bg-blue-600 text-white rounded-full shadow-lg opacity-0 invisible transition-all duration-300"> |
| | <i class="fas fa-arrow-up"></i> |
| | </button> |
| |
|
| | <script> |
| | |
| | const themeToggle = document.getElementById('theme-toggle'); |
| | const html = document.documentElement; |
| | |
| | |
| | const savedTheme = localStorage.getItem('theme') || |
| | (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); |
| | |
| | |
| | if (savedTheme === 'dark') { |
| | html.classList.add('dark'); |
| | } else { |
| | html.classList.remove('dark'); |
| | } |
| | |
| | |
| | themeToggle.addEventListener('click', () => { |
| | html.classList.toggle('dark'); |
| | const theme = html.classList.contains('dark') ? 'dark' : 'light'; |
| | localStorage.setItem('theme', theme); |
| | }); |
| | |
| | |
| | const menuToggle = document.getElementById('menu-toggle'); |
| | const navMenu = document.getElementById('nav-menu'); |
| | |
| | menuToggle.addEventListener('click', () => { |
| | navMenu.classList.toggle('active'); |
| | }); |
| | |
| | |
| | document.querySelectorAll('#nav-menu a').forEach(link => { |
| | link.addEventListener('click', () => { |
| | navMenu.classList.remove('active'); |
| | }); |
| | }); |
| | |
| | |
| | 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' |
| | }); |
| | } |
| | }); |
| | }); |
| | |
| | |
| | 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' |
| | }); |
| | }); |
| | |
| | |
| | const animateOnScroll = () => { |
| | const elements = document.querySelectorAll('.animate-fade-in, .animate-slide-up, .animate-float'); |
| | |
| | const observer = new IntersectionObserver((entries) => { |
| | entries.forEach(entry => { |
| | if (entry.isIntersecting) { |
| | entry.target.classList.add('animate-fade-in', 'animate-slide-up', 'animate-float'); |
| | observer.unobserve(entry.target); |
| | } |
| | }); |
| | }, { |
| | threshold: 0.1 |
| | }); |
| | |
| | elements.forEach(element => { |
| | observer.observe(element); |
| | }); |
| | }; |
| | |
| | |
| | document.addEventListener('DOMContentLoaded', animateOnScroll); |
| | </script> |
| | </body> |
| | </html> |