Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Rupinder Kaur | Web Developer 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'); | |
:root { | |
--primary: #3b82f6; | |
--secondary: #10b981; | |
--accent: #8b5cf6; | |
--dark: #1e293b; | |
--light: #f8fafc; | |
} | |
body { | |
font-family: 'Poppins', sans-serif; | |
background-color: var(--light); | |
color: var(--dark); | |
scroll-behavior: smooth; | |
} | |
.gradient-text { | |
background: linear-gradient(90deg, var(--primary), var(--accent)); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
} | |
.gradient-bg { | |
background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); | |
} | |
.secondary-bg { | |
background: linear-gradient(135deg, var(--secondary) 0%, var(--primary) 100%); | |
} | |
.glass-card { | |
background: rgba(255, 255, 255, 0.8); | |
backdrop-filter: blur(10px); | |
border: 1px solid rgba(255, 255, 255, 0.2); | |
} | |
.project-card, .skill-card { | |
transition: all 0.3s ease; | |
transform-style: preserve-3d; | |
opacity: 0; | |
transform: translateY(20px); | |
} | |
.project-card.visible, .skill-card.visible { | |
opacity: 1; | |
transform: translateY(0); | |
} | |
.project-card:hover { | |
transform: translateY(-10px) scale(1.02) ; | |
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); | |
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | |
} | |
.nav-link { | |
position: relative; | |
} | |
.nav-link::after { | |
content: ''; | |
position: absolute; | |
width: 0; | |
height: 2px; | |
bottom: -2px; | |
left: 0; | |
background: linear-gradient(90deg, var(--primary), var(--accent)); | |
transition: width 0.3s ease; | |
} | |
.nav-link:hover::after { | |
width: 100%; | |
} | |
.hero-image { | |
animation: float 6s ease-in-out infinite; | |
} | |
@keyframes float { | |
0% { transform: translateY(0px); } | |
50% { transform: translateY(-20px); } | |
100% { transform: translateY(0px); } | |
} | |
.section-title { | |
position: relative; | |
display: inline-block; | |
} | |
.section-title::after { | |
content: ''; | |
position: absolute; | |
width: 60%; | |
height: 4px; | |
bottom: -8px; | |
left: 0; | |
background: linear-gradient(90deg, var(--primary), var(--accent)); | |
border-radius: 2px; | |
} | |
.project-tag { | |
font-size: 0.75rem; | |
padding: 0.25rem 0.5rem; | |
border-radius: 0.25rem; | |
font-weight: 600; | |
} | |
.mobile-menu { | |
transform: translateX(100%); | |
transition: transform 0.3s ease; | |
} | |
.mobile-menu.open { | |
transform: translateX(0); | |
} | |
/* New animations */ | |
@keyframes pulse { | |
0% { transform: scale(1); } | |
50% { transform: scale(1.05); } | |
100% { transform: scale(1); } | |
} | |
.pulse { | |
animation: pulse 2s infinite; | |
} | |
@keyframes slideInLeft { | |
from { transform: translateX(-50px); opacity: 0; } | |
to { transform: translateX(0); opacity: 1; } | |
} | |
.slide-in-left { | |
animation: slideInLeft 0.8s ease-out forwards; | |
} | |
@keyframes slideInRight { | |
from { transform: translateX(50px); opacity: 0; } | |
to { transform: translateX(0); opacity: 1; } | |
} | |
.slide-in-right { | |
animation: slideInRight 0.8s ease-out forwards; | |
} | |
.skill-icon { | |
transition: all 0.3s ease; | |
} | |
.skill-icon:hover { | |
transform: rotate(15deg) scale(1.2); | |
} | |
.tech-stack-item { | |
transition: all 0.3s ease; | |
} | |
.tech-stack-item:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); | |
} | |
.progress-bar { | |
position: relative; | |
overflow: hidden; | |
} | |
.progress-bar::after { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: 0; | |
height: 100%; | |
width: 0; | |
background: linear-gradient(90deg, var(--primary), var(--accent)); | |
animation: progressFill 1.5s ease-out forwards; | |
} | |
@keyframes progressFill { | |
from { width: 0; } | |
to { width: var(--progress-width); } | |
} | |
</style> | |
</head> | |
<body class="antialiased"> | |
<!-- Navigation --> | |
<nav class="fixed w-full z-50 glass-card py-4 px-6 md:px-12"> | |
<div class="container mx-auto flex justify-between items-center"> | |
<a href="#" class="text-2xl font-bold gradient-text">Rupinder.</a> | |
<div class="hidden md:flex space-x-8"> | |
<a href="#home" class="nav-link font-medium">Home</a> | |
<a href="#about" class="nav-link font-medium">About</a> | |
<a href="#skills" class="nav-link font-medium">Skills</a> | |
<a href="#projects" class="nav-link font-medium">Projects</a> | |
<a href="#contact" class="nav-link font-medium">Contact</a> | |
</div> | |
<button id="menu-toggle" class="md:hidden text-xl"> | |
<i class="fas fa-bars"></i> | |
</button> | |
</div> | |
</nav> | |
<!-- Mobile Menu --> | |
<div id="mobile-menu" class="mobile-menu fixed inset-0 bg-white z-40 pt-20 px-6 md:hidden"> | |
<div class="flex flex-col space-y-6"> | |
<a href="#home" class="text-xl font-medium py-2 border-b border-gray-100">Home</a> | |
<a href="#about" class="text-xl font-medium py-2 border-b border-gray-100">About</a> | |
<a href="#skills" class="text-xl font-medium py-2 border-b border-gray-100">Skills</a> | |
<a href="#projects" class="text-xl font-medium py-2 border-b border-gray-100">Projects</a> | |
<a href="#contact" class="text-xl font-medium py-2 border-b border-gray-100">Contact</a> | |
</div> | |
<button id="menu-close" class="absolute top-6 right-6 text-2xl"> | |
<i class="fas fa-times"></i> | |
</button> | |
</div> | |
<!-- Hero Section --> | |
<section id="home" class="min-h-screen flex items-center pt-20 pb-16 px-6 md:px-12"> | |
<div class="container mx-auto grid md:grid-cols-2 gap-12 items-center"> | |
<div class="order-2 md:order-1 slide-in-left"> | |
<h1 class="text-4xl md:text-6xl font-bold mb-4">Hi, I'm <span class="gradient-text">Rupinder Kaur</span></h1> | |
<h2 class="text-2xl md:text-3xl font-semibold mb-6 text-slate-600">Frontend Developer</h2> | |
<p class="text-lg text-slate-500 mb-8 max-w-lg"> | |
I build exceptional digital experiences with modern web technologies. | |
Passionate about creating intuitive, responsive, and visually appealing interfaces. | |
</p> | |
<div class="flex flex-wrap gap-4"> | |
<a href="#contact" class="gradient-bg text-white px-6 py-3 rounded-lg font-medium hover:shadow-lg transition pulse"> | |
Get In Touch | |
</a> | |
<a href="#projects" class="border border-slate-300 px-6 py-3 rounded-lg font-medium hover:bg-slate-50 transition"> | |
View My Work | |
</a> | |
</div> | |
<div class="mt-8 flex space-x-4"> | |
<a href="#" class="text-xl text-slate-600 hover:text-indigo-500 transition"> | |
<i class="fab fa-linkedin"></i> | |
</a> | |
<a href="#" class="text-xl text-slate-600 hover:text-indigo-500 transition"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-xl text-slate-600 hover:text-indigo-500 transition"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
</div> | |
</div> | |
<div class="order-1 md:order-2 flex justify-center slide-in-right"> | |
<div class="hero-image relative w-64 h-64 md:w-80 md:h-80 rounded-full gradient-bg flex items-center justify-center"> | |
<div class="absolute inset-0 rounded-full bg-white/10 backdrop-blur-sm"></div> | |
<i class="fas fa-laptop-code text-6xl md:text-8xl text-white opacity-90"></i> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- About Section --> | |
<section id="about" class="py-16 px-6 md:px-12 bg-white"> | |
<div class="container mx-auto"> | |
<h2 class="text-3xl md:text-4xl font-bold mb-12 section-title">About Me</h2> | |
<div class="grid md:grid-cols-2 gap-12 items-center"> | |
<div> | |
<p class="text-lg text-slate-600 mb-6"> | |
I'm a passionate web developer with expertise in modern frontend technologies. | |
With a strong foundation in computer science and years of hands-on experience, | |
I create digital solutions that are both beautiful and functional. | |
</p> | |
<p class="text-lg text-slate-600 mb-6"> | |
My journey in web development started during my master's program, and since then | |
I've been constantly learning and adapting to new technologies to build better | |
user experiences. | |
</p> | |
<div class="grid grid-cols-2 gap-4"> | |
<div class="bg-slate-50 p-4 rounded-lg"> | |
<h3 class="font-bold text-indigo-600 mb-2">Education</h3> | |
<p class="text-sm text-slate-600">Master in IT</p> | |
<p class="text-xs text-slate-500">Guru Nanak Dev University</p> | |
</div> | |
<div class="bg-slate-50 p-4 rounded-lg"> | |
<h3 class="font-bold text-indigo-600 mb-2">Experience</h3> | |
<p class="text-sm text-slate-600">Frontend Developer</p> | |
<p class="text-xs text-slate-500">Since 2015</p> | |
</div> | |
</div> | |
</div> | |
<div class="bg-slate-50 rounded-xl p-8"> | |
<h3 class="text-xl font-bold mb-6 text-center">My Tech Stack</h3> | |
<div class="grid grid-cols-3 gap-4"> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fab fa-html5 text-3xl text-orange-500"></i> | |
</div> | |
<span class="text-sm font-medium">HTML5</span> | |
</div> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fab fa-css3-alt text-3xl text-blue-500"></i> | |
</div> | |
<span class="text-sm font-medium">CSS3</span> | |
</div> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fab fa-js text-3xl text-yellow-500"></i> | |
</div> | |
<span class="text-sm font-medium">JavaScript</span> | |
</div> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fab fa-react text-3xl text-blue-400"></i> | |
</div> | |
<span class="text-sm font-medium">React</span> | |
</div> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fab fa-git-alt text-3xl text-red-500"></i> | |
</div> | |
<span class="text-sm font-medium">Git</span> | |
</div> | |
<div class="flex flex-col items-center tech-stack-item"> | |
<div class="w-16 h-16 bg-white rounded-full shadow-md flex items-center justify-center mb-2 skill-icon"> | |
<i class="fas fa-code text-3xl text-purple-500"></i> | |
</div> | |
<span class="text-sm font-medium">VS Code</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Skills Section --> | |
<section id="skills" class="py-16 px-6 md:px-12 bg-slate-50"> | |
<div class="container mx-auto"> | |
<h2 class="text-3xl md:text-4xl font-bold mb-12 section-title">My Skills</h2> | |
<div class="grid md:grid-cols-2 gap-8"> | |
<!-- Technical Skills --> | |
<div class="bg-white p-8 rounded-xl shadow-sm skill-card"> | |
<h3 class="text-xl font-bold mb-6 flex items-center"> | |
<i class="fas fa-code text-indigo-500 mr-3"></i> | |
<span>Technical Skills</span> | |
</h3> | |
<!-- Languages & Technologies --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-laptop-code text-sm text-emerald-500 mr-2"></i> | |
Languages & Technologies | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-emerald-100 text-emerald-800 px-4 py-2 rounded-full">HTML5</span> | |
<span class="skill-pill bg-emerald-100 text-emerald-800 px-4 py-2 rounded-full">CSS3</span> | |
<span class="skill-pill bg-emerald-100 text-emerald-800 px-4 py-2 rounded-full">JavaScript</span> | |
<span class="skill-pill bg-emerald-100 text-emerald-800 px-4 py-2 rounded-full">React.js</span> | |
</div> | |
</div> | |
<!-- Frameworks & Libraries --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-cubes text-sm text-blue-500 mr-2"></i> | |
Frameworks & Libraries | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-blue-100 text-blue-800 px-4 py-2 rounded-full">React Router</span> | |
<span class="skill-pill bg-blue-100 text-blue-800 px-4 py-2 rounded-full">Redux</span> | |
<span class="skill-pill bg-blue-100 text-blue-800 px-4 py-2 rounded-full">Tailwind CSS</span> | |
</div> | |
</div> | |
<!-- Tools --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-tools text-sm text-purple-500 mr-2"></i> | |
Tools | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-purple-100 text-purple-800 px-4 py-2 rounded-full">Git</span> | |
<span class="skill-pill bg-purple-100 text-purple-800 px-4 py-2 rounded-full">npm</span> | |
<span class="skill-pill bg-purple-100 text-purple-800 px-4 py-2 rounded-full">VS Code</span> | |
</div> | |
</div> | |
<!-- Version Control --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-code-branch text-sm text-amber-500 mr-2"></i> | |
Version Control | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-amber-100 text-amber-800 px-4 py-2 rounded-full">GitHub</span> | |
</div> | |
</div> | |
<!-- Responsive Design --> | |
<div> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-mobile-alt text-sm text-rose-500 mr-2"></i> | |
Responsive Design | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-rose-100 text-rose-800 px-4 py-2 rounded-full">Flexbox</span> | |
<span class="skill-pill bg-rose-100 text-rose-800 px-4 py-2 rounded-full">CSS Grid</span> | |
<span class="skill-pill bg-rose-100 text-rose-800 px-4 py-2 rounded-full">Media Queries</span> | |
</div> | |
</div> | |
</div> | |
<!-- Professional Skills --> | |
<div class="bg-white p-8 rounded-xl shadow-sm skill-card"> | |
<h3 class="text-xl font-bold mb-6 flex items-center"> | |
<i class="fas fa-user-tie text-indigo-500 mr-3"></i> | |
<span>Professional Skills</span> | |
</h3> | |
<!-- Additional Skills --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700 flex items-center"> | |
<i class="fas fa-lightbulb text-sm text-indigo-500 mr-2"></i> | |
Additional Skills | |
</h4> | |
<div class="flex flex-wrap gap-2"> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Problem-solving</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Debugging</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Cross-browser compatibility</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Teamwork</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Creativity</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Communication</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Time Management</span> | |
<span class="skill-pill bg-indigo-100 text-indigo-800 px-4 py-2 rounded-full">Adaptability</span> | |
</div> | |
</div> | |
<!-- Skill Proficiency --> | |
<div class="mb-8"> | |
<h4 class="font-semibold mb-4 text-slate-700">Skill Proficiency</h4> | |
<div class="space-y-4"> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium">HTML/CSS</span> | |
<span class="text-slate-500">95%</span> | |
</div> | |
<div class="w-full bg-slate-200 rounded-full h-2 progress-bar" style="--progress-width: 95%"> | |
<div class="h-2 rounded-full"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium">JavaScript</span> | |
<span class="text-slate-500">90%</span> | |
</div> | |
<div class="w-full bg-slate-200 rounded-full h-2 progress-bar" style="--progress-width: 90%"> | |
<div class="h-2 rounded-full"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium">React.js</span> | |
<span class="text-slate-500">85%</span> | |
</div> | |
<div class="w-full bg-slate-200 rounded-full h-2 progress-bar" style="--progress-width: 85%"> | |
<div class="h-2 rounded-full"></div> | |
</div> | |
</div> | |
<div> | |
<div class="flex justify-between mb-1"> | |
<span class="font-medium">Git/GitHub</span> | |
<span class="text-slate-500">80%</span> | |
</div> | |
<div class="w-full bg-slate-200 rounded-full h-2 progress-bar" style="--progress-width: 80%"> | |
<div class="h-2 rounded-full"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Certifications --> | |
<div> | |
<h3 class="text-xl font-bold mb-6 flex items-center"> | |
<i class="fas fa-certificate text-indigo-500 mr-3"></i> | |
<span>Certifications</span> | |
</h3> | |
<div class="bg-indigo-50 p-4 rounded-lg"> | |
<h4 class="font-bold text-indigo-700">JavaScript and React.js Certification</h4> | |
<p class="text-sm text-slate-600">SimbaQuartz IT Company - June 2024</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Projects Section --> | |
<section id="projects" class="py-16 px-6 md:px-12 bg-white"> | |
<div class="container mx-auto"> | |
<h2 class="text-3xl md:text-4xl font-bold mb-12 section-title">Featured Projects</h2> | |
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8"> | |
<!-- Chat App --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1633356122544-f134324a6cee?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Chat App" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-indigo-500 text-white">React.js</span> | |
<span class="project-tag bg-purple-500 text-white ml-1">Firebase</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Real-time Chat App</h3> | |
<p class="text-slate-600 mb-4"> | |
Built a real-time chat application with user registration, login, online user management, and one-to-one messaging. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>User authentication system</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Real-time messaging</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Online status indicators</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://free-api-chat.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Rider App --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Rider App" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-indigo-500 text-white">React.js</span> | |
<span class="project-tag bg-green-500 text-white ml-1">Context API</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Food Delivery App</h3> | |
<p class="text-slate-600 mb-4"> | |
Designed an app with React.js for ordering food and drinks, with a dynamic list showing selected items and quantities. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Interactive menu system</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Dynamic cart functionality</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>State management with Context API</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://rider-app-ebf3.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Weather App --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1601134467661-268d69453fae?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Weather App" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-blue-500 text-white">JavaScript</span> | |
<span class="project-tag bg-yellow-500 text-white ml-1">API Integration</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Weather Application</h3> | |
<p class="text-slate-600 mb-4"> | |
Developed a weather application using HTML, CSS, and JavaScript integrated with a third-party weather API. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Real-time weather data</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Location-based forecasts</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Responsive design</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://weather-app-e62t.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Quiz App --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1501504905252-473c47e087f8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1374&q=80" | |
alt="Quiz App" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-blue-500 text-white">JavaScript</span> | |
<span class="project-tag bg-red-500 text-white ml-1">DOM Manipulation</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Quiz Application</h3> | |
<p class="text-slate-600 mb-4"> | |
Created a multiple-choice quiz application using JavaScript with score tracking and instant feedback. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Multiple question types</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Score tracking</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Final result display</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://quizz-app-rosy.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Random Color App --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1579547945413-497e1b99dac0?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" | |
alt="Random Color App" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-blue-500 text-white">JavaScript</span> | |
<span class="project-tag bg-pink-500 text-white ml-1">DOM Manipulation</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Random Color Generator</h3> | |
<p class="text-slate-600 mb-4"> | |
Developed a dynamic web application to generate random background and text colors with real-time updates. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Random color generation</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Real-time DOM updates</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Clean, responsive interface</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://random-color-sandy.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Image Slider --> | |
<div class="project-card bg-white rounded-xl shadow-md overflow-hidden border border-slate-100"> | |
<div class="relative h-48 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1516035069371-29a1b244cc32?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1528&q=80" | |
alt="Image Slider" class="w-full h-full object-cover"> | |
<div class="absolute inset-0 bg-gradient-to-t from-black/70 to-transparent"></div> | |
<div class="absolute bottom-4 left-4"> | |
<span class="project-tag bg-blue-500 text-white">JavaScript</span> | |
<span class="project-tag bg-orange-500 text-white ml-1">Responsive</span> | |
</div> | |
</div> | |
<div class="p-6"> | |
<h3 class="text-xl font-bold mb-2">Image Slider</h3> | |
<p class="text-slate-600 mb-4"> | |
Developed a responsive image slider with smooth transitions and navigation controls. | |
</p> | |
<ul class="text-sm text-slate-500 mb-4 space-y-1"> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Smooth transitions</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Navigation controls</span> | |
</li> | |
<li class="flex items-start"> | |
<i class="fas fa-check-circle text-green-500 mr-2 mt-1"></i> | |
<span>Fully responsive</span> | |
</li> | |
</ul> | |
<div class="flex justify-between items-center"> | |
<a href="https://image-slider-eta.vercel.app" target="_blank" class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center"> | |
View Project <i class="fas fa-external-link-alt ml-2"></i> | |
</a> | |
<a href="#" class="text-slate-400 hover:text-indigo-600"> | |
<i class="fab fa-github"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Contact Section --> | |
<section id="contact" class="py-16 px-6 md:px-12 secondary-bg text-white"> | |
<div class="container mx-auto"> | |
<h2 class="text-3xl md:text-4xl font-bold mb-12 section-title text-white">Get In Touch</h2> | |
<div class="grid md:grid-cols-2 gap-12"> | |
<div> | |
<h3 class="text-2xl font-bold mb-6">Let's work together!</h3> | |
<p class="text-lg mb-8 opacity-90"> | |
I'm currently looking for new opportunities. Whether you have a project in mind or just want to say hello, | |
I'll do my best to respond as soon as possible. | |
</p> | |
<div class="space-y-4"> | |
<div class="flex items-center"> | |
<i class="fas fa-envelope text-xl mr-4 opacity-80"></i> | |
<a href="mailto:[email protected]" class="hover:underline">[email protected]</a> | |
</div> | |
<div class="flex items-center"> | |
<i class="fas fa-phone text-xl mr-4 opacity-80"></i> | |
<a href="tel:9815742397" class="hover:underline">+91 9815742397</a> | |
</div> | |
<div class="flex items-center"> | |
<i class="fas fa-map-marker-alt text-xl mr-4 opacity-80"></i> | |
<span>Batala, Gurdaspur, Punjab</span> | |
</div> | |
</div> | |
<div class="mt-8 flex space-x-4"> | |
<a href="#" class="text-2xl hover:opacity-80 transition"> | |
<i class="fab fa-linkedin"></i> | |
</a> | |
<a href="#" class="text-2xl hover:opacity-80 transition"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-2xl hover:opacity-80 transition"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
</div> | |
</div> | |
<div class="bg-white/10 backdrop-blur-sm rounded-xl p-8 border border-white/20"> | |
<form> | |
<div class="mb-6"> | |
<label for="name" class="block mb-2 font-medium">Your Name</label> | |
<input type="text" id="name" class="w-full px-4 py-3 bg-white/10 border border-white/20 rounded-lg focus:outline-none focus:ring-2 focus:ring-white"> | |
</div> | |
<div class="mb-6"> | |
<label for="email" class="block mb-2 font-medium">Email Address</label> | |
<input type="email" id="email" class="w-full px-4 py-3 bg-white/10 border border-white/20 rounded-lg focus:outline-none focus:ring-2 focus:ring-white"> | |
</div> | |
<div class="mb-6"> | |
<label for="message" class="block mb-2 font-medium">Your Message</label> | |
<textarea id="message" rows="4" class="w-full px-4 py-3 bg-white/10 border border-white/20 rounded-lg focus:outline-none focus:ring-2 focus:ring-white"></textarea> | |
</div> | |
<button type="submit" class="w-full bg-white text-emerald-600 px-6 py-3 rounded-lg font-bold hover:bg-opacity-90 transition"> | |
Send Message | |
</button> | |
</form> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="py-8 px-6 bg-slate-900 text-white"> | |
<div class="container mx-auto"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="mb-4 md:mb-0"> | |
<a href="#" class="text-2xl font-bold gradient-text">Rupinder.</a> | |
<p class="text-sm text-slate-400 mt-1">Web Developer & UI Enthusiast</p> | |
</div> | |
<div class="flex space-x-6"> | |
<a href="#home" class="text-slate-400 hover:text-white transition">Home</a> | |
<a href="#about" class="text-slate-400 hover:text-white transition">About</a> | |
<a href="#skills" class="text-slate-400 hover:text-white transition">Skills</a> | |
<a href="#projects" class="text-slate-400 hover:text-white transition">Projects</a> | |
<a href="#contact" class="text-slate-400 hover:text-white transition">Contact</a> | |
</div> | |
</div> | |
<hr class="border-slate-800 my-6"> | |
<div class="flex flex-col md:flex-row justify-between items-center text-sm text-slate-400"> | |
<p>© 2024 Rupinder Kaur. All rights reserved.</p> | |
<div class="mt-4 md:mt-0"> | |
<a href="#" class="hover:text-white transition">Privacy Policy</a> | |
<span class="mx-2">•</span> | |
<a href="#" class="hover:text-white transition">Terms of Service</a> | |
</div> | |
</div> | |
</div> | |
</footer> | |
<script> | |
// Mobile menu toggle | |
const menuToggle = document.getElementById('menu-toggle'); | |
const menuClose = document.getElementById('menu-close'); | |
const mobileMenu = document.getElementById('mobile-menu'); | |
menuToggle.addEventListener('click', () => { | |
mobileMenu.classList.add('open'); | |
}); | |
menuClose.addEventListener('click', () => { | |
mobileMenu.classList.remove('open'); | |
}); | |
// Close menu when clicking on a link | |
document.querySelectorAll('#mobile-menu a').forEach(link => { | |
link.addEventListener('click', () => { | |
mobileMenu.classList.remove('open'); | |
}); | |
}); | |
// Smooth scrolling for navigation links | |
document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
anchor.addEventListener('click', function (e) { | |
e.preventDefault(); | |
document.querySelector(this.getAttribute('href')).scrollIntoView({ | |
behavior: 'smooth' | |
}); | |
}); | |
}); | |
// Animation for project cards and skill cards on scroll | |
const observerOptions = { | |
threshold: 0.1 | |
}; | |
const observer = new IntersectionObserver((entries) => { | |
entries.forEach(entry => { | |
if (entry.isIntersecting) { | |
entry.target.classList.add('visible'); | |
} | |
}); | |
}, observerOptions); | |
document.querySelectorAll('.project-card, .skill-card').forEach(card => { | |
card.style.transition = 'all 0.6s ease'; | |
observer.observe(card); | |
}); | |
// Add hover effect to tech stack items | |
document.querySelectorAll('.tech-stack-item').forEach(item => { | |
item.addEventListener('mouseenter', () => { | |
item.style.transform = 'translateY(-5px)'; | |
item.style.boxShadow = '0 10px 15px -3px rgba(0, 0, 0, 0.1)'; | |
}); | |
item.addEventListener('mouseleave', () => { | |
item.style.transform = ''; | |
item.style.boxShadow = ''; | |
}); | |
}); | |
// Add animation to skill icons | |
document.querySelectorAll('.skill-icon').forEach(icon => { | |
icon.addEventListener('mouseenter', () => { | |
icon.style.transform = 'rotate(15deg) scale(1.2)'; | |
}); | |
icon.addEventListener('mouseleave', () => { | |
icon.style.transform = ''; | |
}); | |
}); | |
</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=jaskaransingh/rupinder" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |