Spaces:
Running
🌐 Prompt: Create a Super-Stylish Official Website for Sasmitha Kaushan
Browse filesDesign a futuristic, visually captivating personal website for Sasmitha Kaushan, a robotics and programming expert. The site should reflect cutting-edge tech skills, creative innovation, and a bold personal brand. Include dynamic animations, sleek transitions, and interactive elements throughout.
🧠 Identity & Branding
Name: Sasmitha Kaushan
Title: Robotics & Programming Expert | Innovator | Tech Visionary
Tagline: “Engineering the Future, One Line of Code at a Time”
Logo: Minimalist monogram “SK” with circuit-inspired accents
🎨 Design Style
Theme: Futuristic tech meets elegant minimalism
Color Palette: Electric blue, deep indigo, black, and white
Fonts: Sleek sans-serif (e.g., Orbitron, Montserrat)
Layout: Full-screen hero section, parallax scrolling, modular cards
✨ Animations & Effects
Animated particle background in the hero section
Sticky navbar with hover transitions and feather icons
Smooth parallax scroll effects and fade-ins
Flip-on-hover project cards with 3D tilt
Floating labels and ripple effects in the contact form
Glowing gradient footer with animated social icons
📄 Pages & Sections
1. Home
Hero image with animated intro text: “Hi, I’m Sasmitha Kaushan”
Call-to-action button: “Explore My Work” with hover pulse
2. About Me
Timeline animation of career milestones
Interactive skill bars (HTML, Python, ROS, Arduino, etc.)
Optional embedded video intro
3. Projects
Grid of project cards with hover animations
Tags for filtering: #Robotics #AI #WebDev #IoT
Modal popups with detailed descriptions and GitHub links
4. Blog
Animated post previews with featured images
Categories: Tech Insights, Tutorials, Personal Journey
5. Contact
Stylish form with validation and animated success message
Embedded map (if relevant)
Social media icons with hover glow
🏆 Latest Achievement Section
Add a bold, animated section titled “Latest Achievement” prominently on the homepage or just below the "About Me" section.
Highlight: “PIXEL TO POTENTIAL” Competition – First Place Winner
Include a trophy or award image with a glowing border and hover animation
Add a short description: “Sasmitha Kaushan secured 1st place in the prestigious PIXEL TO POTENTIAL digital innovation challenge, showcasing exceptional creativity and technical mastery.”
Use animated text entrance and hover effects to make the section pop
🔧 Tech Stack Suggestions
Frontend: HTML5, TailwindCSS, JavaScript (GSAP for animations)
Backend (optional): Node.js or Firebase
Hosting: GitHub Pages, Vercel, or Netlify
- components/achievement-card.js +75 -0
- index.html +51 -23
- script.js +67 -0
- style.css +36 -2
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class AchievementCard extends HTMLElement {
|
| 2 |
+
connectedCallback() {
|
| 3 |
+
this.attachShadow({ mode: 'open' });
|
| 4 |
+
this.shadowRoot.innerHTML = `
|
| 5 |
+
<style>
|
| 6 |
+
:host {
|
| 7 |
+
display: block;
|
| 8 |
+
perspective: 1000px;
|
| 9 |
+
}
|
| 10 |
+
.card {
|
| 11 |
+
background: linear-gradient(145deg, #1a1a2e, #16213e);
|
| 12 |
+
border-radius: 16px;
|
| 13 |
+
padding: 2rem;
|
| 14 |
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
| 15 |
+
transition: all 0.5s ease;
|
| 16 |
+
transform-style: preserve-3d;
|
| 17 |
+
position: relative;
|
| 18 |
+
overflow: hidden;
|
| 19 |
+
}
|
| 20 |
+
.card:hover {
|
| 21 |
+
transform: translateY(-10px) rotateX(5deg);
|
| 22 |
+
box-shadow: 0 15px 35px rgba(100, 65, 165, 0.4);
|
| 23 |
+
}
|
| 24 |
+
.card::before {
|
| 25 |
+
content: '';
|
| 26 |
+
position: absolute;
|
| 27 |
+
top: -50%;
|
| 28 |
+
left: -50%;
|
| 29 |
+
width: 200%;
|
| 30 |
+
height: 200%;
|
| 31 |
+
background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%);
|
| 32 |
+
transform: rotate(45deg);
|
| 33 |
+
transition: all 0.5s ease;
|
| 34 |
+
}
|
| 35 |
+
.card:hover::before {
|
| 36 |
+
transform: rotate(45deg) translate(20px, 20px);
|
| 37 |
+
}
|
| 38 |
+
.trophy {
|
| 39 |
+
font-size: 3rem;
|
| 40 |
+
color: #fbbf24;
|
| 41 |
+
text-shadow: 0 0 10px rgba(251, 191, 36, 0.5);
|
| 42 |
+
margin-bottom: 1rem;
|
| 43 |
+
transition: all 0.3s ease;
|
| 44 |
+
}
|
| 45 |
+
.card:hover .trophy {
|
| 46 |
+
transform: scale(1.1);
|
| 47 |
+
}
|
| 48 |
+
h3 {
|
| 49 |
+
font-family: 'Orbitron', sans-serif;
|
| 50 |
+
color: white;
|
| 51 |
+
margin: 0 0 0.5rem 0;
|
| 52 |
+
font-size: 1.5rem;
|
| 53 |
+
}
|
| 54 |
+
p {
|
| 55 |
+
color: #a1a1aa;
|
| 56 |
+
margin: 0;
|
| 57 |
+
line-height: 1.6;
|
| 58 |
+
}
|
| 59 |
+
.date {
|
| 60 |
+
color: #818cf8;
|
| 61 |
+
font-size: 0.9rem;
|
| 62 |
+
margin-top: 1rem;
|
| 63 |
+
display: inline-block;
|
| 64 |
+
}
|
| 65 |
+
</style>
|
| 66 |
+
<div class="card">
|
| 67 |
+
<div class="trophy">🏆</div>
|
| 68 |
+
<h3>${this.getAttribute('title')}</h3>
|
| 69 |
+
<p>${this.getAttribute('description')}</p>
|
| 70 |
+
<span class="date">${this.getAttribute('date')}</span>
|
| 71 |
+
</div>
|
| 72 |
+
`;
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
customElements.define('achievement-card', AchievementCard);
|
|
@@ -15,43 +15,69 @@
|
|
| 15 |
<custom-navbar></custom-navbar>
|
| 16 |
|
| 17 |
<main class="container mx-auto px-4 py-12 max-w-6xl">
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
<div class="flex justify-center mb-6">
|
| 21 |
-
<div class="w-
|
| 22 |
<img src="http://static.photos/technology/320x240/42" alt="Profile" class="w-full h-full rounded-full object-cover border-4 border-white">
|
| 23 |
</div>
|
| 24 |
</div>
|
| 25 |
-
<h1 class="text-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
| 31 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
</section>
|
| 33 |
|
| 34 |
<!-- Achievements -->
|
| 35 |
<section class="mb-20">
|
| 36 |
<div class="flex items-center mb-8">
|
| 37 |
<i data-feather="award" class="mr-3 text-indigo-600"></i>
|
| 38 |
-
<h2 class="text-3xl font-bold">🏆 Achievements</h2>
|
| 39 |
</div>
|
| 40 |
<div class="grid md:grid-cols-2 gap-6">
|
| 41 |
-
<
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
</
|
| 46 |
-
<
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
</
|
| 51 |
</div>
|
| 52 |
</section>
|
| 53 |
-
|
| 54 |
-
<!-- Skills -->
|
| 55 |
<section class="mb-20">
|
| 56 |
<div class="flex items-center mb-8">
|
| 57 |
<i data-feather="code" class="mr-3 text-indigo-600"></i>
|
|
@@ -153,6 +179,8 @@
|
|
| 153 |
</div>
|
| 154 |
<div>
|
| 155 |
<label for="message" class="block text-sm font-medium text-gray-700 mb
|
| 156 |
-
<script src="
|
|
|
|
|
|
|
| 157 |
</body>
|
| 158 |
</html>
|
|
|
|
| 15 |
<custom-navbar></custom-navbar>
|
| 16 |
|
| 17 |
<main class="container mx-auto px-4 py-12 max-w-6xl">
|
| 18 |
+
<!-- Hero Section -->
|
| 19 |
+
<section class="hero-section mb-20 text-center relative overflow-hidden py-20">
|
| 20 |
+
<div class="absolute inset-0 overflow-hidden">
|
| 21 |
+
<div class="particles absolute inset-0"></div>
|
| 22 |
+
</div>
|
| 23 |
+
<div class="hero-content relative z-10">
|
| 24 |
<div class="flex justify-center mb-6">
|
| 25 |
+
<div class="w-40 h-40 rounded-full bg-gradient-to-r from-blue-500 to-indigo-600 p-1 animate-float">
|
| 26 |
<img src="http://static.photos/technology/320x240/42" alt="Profile" class="w-full h-full rounded-full object-cover border-4 border-white">
|
| 27 |
</div>
|
| 28 |
</div>
|
| 29 |
+
<h1 class="text-5xl md:text-6xl font-bold mb-4 font-orbitron bg-clip-text text-transparent bg-gradient-to-r from-blue-400 to-indigo-600">
|
| 30 |
+
Hi, I'm <span class="text-white">Sasmitha Kaushan</span>
|
| 31 |
+
</h1>
|
| 32 |
+
<h2 class="text-2xl md:text-3xl font-semibold mb-6 text-gray-300">
|
| 33 |
+
Robotics & Programming Expert | Innovator | Tech Visionary
|
| 34 |
+
</h2>
|
| 35 |
+
<p class="text-xl text-gray-300 max-w-2xl mx-auto mb-8">
|
| 36 |
+
"Engineering the Future, One Line of Code at a Time"
|
| 37 |
</p>
|
| 38 |
+
<a href="#projects" class="inline-flex items-center px-8 py-3 bg-gradient-to-r from-blue-500 to-indigo-600 text-white font-medium rounded-full hover:shadow-lg transition-all duration-300 hover:scale-105">
|
| 39 |
+
Explore My Work
|
| 40 |
+
<i data-feather="arrow-right" class="ml-2 w-5 h-5"></i>
|
| 41 |
+
</a>
|
| 42 |
+
</section>
|
| 43 |
+
<!-- Latest Achievement -->
|
| 44 |
+
<section class="mb-20 relative overflow-hidden">
|
| 45 |
+
<div class="absolute inset-0 bg-gradient-to-r from-blue-900/10 to-indigo-900/10 rounded-3xl -z-10"></div>
|
| 46 |
+
<div class="flex items-center mb-8">
|
| 47 |
+
<div class="relative">
|
| 48 |
+
<div class="absolute -inset-1 bg-gradient-to-r from-blue-500 to-indigo-600 rounded-lg blur opacity-75 animate-pulse"></div>
|
| 49 |
+
<h2 class="relative text-3xl font-bold bg-gray-900 px-4 py-2 rounded-lg text-white font-orbitron">
|
| 50 |
+
LATEST ACHIEVEMENT
|
| 51 |
+
</h2>
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
<achievement-card
|
| 55 |
+
title="PIXEL TO POTENTIAL Competition - First Place Winner"
|
| 56 |
+
description="Sasmitha Kaushan secured 1st place in the prestigious PIXEL TO POTENTIAL digital innovation challenge, showcasing exceptional creativity and technical mastery."
|
| 57 |
+
date="2024">
|
| 58 |
+
</achievement-card>
|
| 59 |
</section>
|
| 60 |
|
| 61 |
<!-- Achievements -->
|
| 62 |
<section class="mb-20">
|
| 63 |
<div class="flex items-center mb-8">
|
| 64 |
<i data-feather="award" class="mr-3 text-indigo-600"></i>
|
| 65 |
+
<h2 class="text-3xl font-bold">🏆 Other Achievements</h2>
|
| 66 |
</div>
|
| 67 |
<div class="grid md:grid-cols-2 gap-6">
|
| 68 |
+
<achievement-card
|
| 69 |
+
title="FIRST Robotics World Championship"
|
| 70 |
+
description="Led software team to develop autonomous navigation system that placed in top 1% of international competitors."
|
| 71 |
+
date="Finalist | 2023">
|
| 72 |
+
</achievement-card>
|
| 73 |
+
<achievement-card
|
| 74 |
+
title="IEEE Hardware Competition"
|
| 75 |
+
description="Designed embedded control system for autonomous robot that outperformed 50+ university teams."
|
| 76 |
+
date="1st Place | 2022">
|
| 77 |
+
</achievement-card>
|
| 78 |
</div>
|
| 79 |
</section>
|
| 80 |
+
<!-- Skills -->
|
|
|
|
| 81 |
<section class="mb-20">
|
| 82 |
<div class="flex items-center mb-8">
|
| 83 |
<i data-feather="code" class="mr-3 text-indigo-600"></i>
|
|
|
|
| 179 |
</div>
|
| 180 |
<div>
|
| 181 |
<label for="message" class="block text-sm font-medium text-gray-700 mb
|
| 182 |
+
<script src="components/achievement-card.js"></script>
|
| 183 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>
|
| 184 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/ScrollTrigger.min.js"></script>
|
| 185 |
</body>
|
| 186 |
</html>
|
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 2 |
+
// Initialize Feather Icons
|
| 3 |
+
feather.replace();
|
| 4 |
+
|
| 5 |
+
// GSAP Animations
|
| 6 |
+
gsap.registerPlugin(ScrollTrigger);
|
| 7 |
+
|
| 8 |
+
// Animate achievement cards on scroll
|
| 9 |
+
gsap.utils.toArray('achievement-card').forEach(card => {
|
| 10 |
+
gsap.from(card, {
|
| 11 |
+
scrollTrigger: {
|
| 12 |
+
trigger: card,
|
| 13 |
+
start: "top 80%",
|
| 14 |
+
toggleActions: "play none none none"
|
| 15 |
+
},
|
| 16 |
+
y: 50,
|
| 17 |
+
opacity: 0,
|
| 18 |
+
duration: 0.8,
|
| 19 |
+
ease: "power2.out"
|
| 20 |
+
});
|
| 21 |
+
});
|
| 22 |
+
|
| 23 |
+
// Hero section animation
|
| 24 |
+
gsap.from(".hero-content", {
|
| 25 |
+
duration: 1.5,
|
| 26 |
+
y: 50,
|
| 27 |
+
opacity: 0,
|
| 28 |
+
ease: "power3.out"
|
| 29 |
+
});
|
| 30 |
+
|
| 31 |
+
// Skill bars animation
|
| 32 |
+
gsap.utils.toArray(".skill-bar").forEach(bar => {
|
| 33 |
+
const width = bar.getAttribute("data-width");
|
| 34 |
+
gsap.fromTo(bar,
|
| 35 |
+
{ width: "0%" },
|
| 36 |
+
{
|
| 37 |
+
width: width,
|
| 38 |
+
scrollTrigger: {
|
| 39 |
+
trigger: bar,
|
| 40 |
+
start: "top 80%",
|
| 41 |
+
toggleActions: "play none none none"
|
| 42 |
+
},
|
| 43 |
+
duration: 1.5,
|
| 44 |
+
ease: "power2.out"
|
| 45 |
+
}
|
| 46 |
+
);
|
| 47 |
+
});
|
| 48 |
+
|
| 49 |
+
// Tilt effect for cards
|
| 50 |
+
document.querySelectorAll('.card').forEach(card => {
|
| 51 |
+
card.addEventListener('mousemove', (e) => {
|
| 52 |
+
const rect = card.getBoundingClientRect();
|
| 53 |
+
const x = e.clientX - rect.left;
|
| 54 |
+
const y = e.clientY - rect.top;
|
| 55 |
+
const centerX = rect.width / 2;
|
| 56 |
+
const centerY = rect.height / 2;
|
| 57 |
+
const angleX = (y - centerY) / 20;
|
| 58 |
+
const angleY = (centerX - x) / 20;
|
| 59 |
+
|
| 60 |
+
card.style.transform = `perspective(1000px) rotateX(${angleX}deg) rotateY(${angleY}deg)`;
|
| 61 |
+
});
|
| 62 |
+
|
| 63 |
+
card.addEventListener('mouseleave', () => {
|
| 64 |
+
card.style.transform = 'perspective(1000px) rotateX(0) rotateY(0)';
|
| 65 |
+
});
|
| 66 |
+
});
|
| 67 |
+
});
|
|
@@ -1,8 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
body {
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
}
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
h1 {
|
| 7 |
font-size: 16px;
|
| 8 |
margin-top: 0;
|
|
|
|
| 1 |
+
|
| 2 |
+
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Montserrat:wght@300;400;600;700&display=swap');
|
| 3 |
+
|
| 4 |
+
:root {
|
| 5 |
+
--primary: #667eea;
|
| 6 |
+
--primary-dark: #5a67d8;
|
| 7 |
+
--secondary: #764ba2;
|
| 8 |
+
--dark: #1a202c;
|
| 9 |
+
--light: #f7fafc;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
body {
|
| 13 |
+
padding: 0;
|
| 14 |
+
margin: 0;
|
| 15 |
+
font-family: 'Montserrat', sans-serif;
|
| 16 |
+
background-color: #f8fafc;
|
| 17 |
+
color: var(--dark);
|
| 18 |
+
overflow-x: hidden;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.font-orbitron {
|
| 22 |
+
font-family: 'Orbitron', sans-serif;
|
| 23 |
}
|
| 24 |
|
| 25 |
+
@keyframes float {
|
| 26 |
+
0%, 100% { transform: translateY(0); }
|
| 27 |
+
50% { transform: translateY(-10px); }
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
@keyframes pulse {
|
| 31 |
+
0%, 100% { opacity: 1; }
|
| 32 |
+
50% { opacity: 0.5; }
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
@keyframes gradientBG {
|
| 36 |
+
0% { background-position: 0% 50%; }
|
| 37 |
+
50% { background-position: 100% 50%; }
|
| 38 |
+
100% { background-position: 0% 50%; }
|
| 39 |
+
}
|
| 40 |
h1 {
|
| 41 |
font-size: 16px;
|
| 42 |
margin-top: 0;
|