Skip to content

Commit 89a67f1

Browse files
committed
Add honors and awards section
1 parent 518aa33 commit 89a67f1

3 files changed

Lines changed: 79 additions & 16 deletions

File tree

src/layouts/Layout.astro

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,49 @@ import Starfield from '../components/Starfield.astro';
211211
}
212212
}
213213

214+
function updateActiveLinks() {
215+
const currentPath = window.location.pathname.replace(/\/$/, '') || '/';
216+
const nav = document.querySelector('nav');
217+
if (!nav) return;
218+
219+
const links = nav.querySelectorAll('a[href]');
220+
links.forEach(link => {
221+
const href = link.getAttribute('href').replace(/\/$/, '') || '/';
222+
const isHomeLink = href === '/'; // Special handling for logo if needed, but assuming nav links
223+
224+
// Skip the logo link which has class "group flex items-center gap-2"
225+
if (link.classList.contains('group') && link.classList.contains('gap-2')) return;
226+
227+
const isActive = currentPath === href;
228+
229+
// Check if it's a mobile menu link (inside #mobile-menu)
230+
const isMobile = link.closest('#mobile-menu');
231+
232+
if (isActive) {
233+
if (isMobile) {
234+
link.classList.remove('text-text-secondary', 'hover:text-white', 'hover:bg-white/5');
235+
link.classList.add('bg-white/10', 'text-white');
236+
} else {
237+
link.classList.remove('text-text-secondary', 'hover:text-text-primary', 'hover:bg-white/5');
238+
link.classList.add('text-text-primary', 'bg-white/10');
239+
}
240+
} else {
241+
if (isMobile) {
242+
link.classList.remove('bg-white/10', 'text-white');
243+
link.classList.add('text-text-secondary', 'hover:text-white', 'hover:bg-white/5');
244+
} else {
245+
link.classList.remove('text-text-primary', 'bg-white/10');
246+
link.classList.add('text-text-secondary', 'hover:text-text-primary', 'hover:bg-white/5');
247+
}
248+
}
249+
});
250+
}
251+
214252
// Run on view transitions (and initial load)
215-
document.addEventListener('astro:page-load', setupMobileMenu);
253+
document.addEventListener('astro:page-load', () => {
254+
setupMobileMenu();
255+
updateActiveLinks();
256+
});
216257
</script>
217258

218259
<div class="pt-24"> <!-- Spacer for floating nav -->

src/pages/experience.astro

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ const education = [
4949
description: 'Focused on software engineering and algorithms. Winner of Smart Transaction Hackathon (PayPal).'
5050
}
5151
];
52+
53+
const awards = [
54+
{
55+
title: 'Winner of Smart Transaction Hackathon (Daksh)',
56+
institution: 'SASTRA University',
57+
icon: '🏆'
58+
},
59+
{
60+
title: "Dean's Merit Scholarship",
61+
institution: 'SASTRA University',
62+
icon: '🎖️'
63+
}
64+
];
5265
---
5366

5467
<Layout
@@ -148,5 +161,27 @@ const education = [
148161
))}
149162
</div>
150163
</div>
164+
165+
<!-- Honors & Awards -->
166+
<div class="pt-24 border-t border-zinc-800/50">
167+
<div class="max-w-3xl space-y-6 mb-16 animate-in">
168+
<h2 class="text-xs font-bold uppercase tracking-[0.2em] text-accent">Achievement</h2>
169+
<h2 class="text-3xl font-bold tracking-tight text-text-primary">Honors & Awards</h2>
170+
</div>
171+
172+
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-4xl">
173+
{awards.map((award) => (
174+
<div class="glass-card p-8 flex items-start gap-4">
175+
<div class="text-accent text-3xl">
176+
{award.icon}
177+
</div>
178+
<div class="space-y-2">
179+
<h3 class="text-lg font-bold text-text-primary leading-tight">{award.title}</h3>
180+
<p class="text-sm font-medium text-text-secondary">{award.institution}</p>
181+
</div>
182+
</div>
183+
))}
184+
</div>
185+
</div>
151186
</section>
152187
</Layout>

src/pages/projects.astro

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,15 @@ const projects = [
1010
github: 'https://github.com/Vashanth/Blind_Assist',
1111
featured: true
1212
},
13-
{
14-
title: 'Tic-Tac-Toe with AI',
15-
description: 'Classic game implementation featuring minimax algorithm for intelligent AI opponent. Clean UI with smooth animations and game state management.',
16-
tech: ['JavaScript', 'AI Algorithms', 'Game Development'],
17-
link: 'https://tic-tac-toe-3x3.web.app/',
18-
github: 'https://github.com/Vashanth/Tic-Tac-Toe',
19-
featured: true
20-
},
13+
2114
{
2215
title: 'Chat Application',
2316
description: 'Real-time chat application built with Socket.io enabling instant messaging between users with clean, responsive interface.',
2417
tech: ['Node.js', 'Socket.io', 'JavaScript', 'Real-time Systems'],
2518
link: 'https://chat-app-vash.netlify.app/',
2619
featured: true
2720
},
28-
{
29-
title: 'Hangman Game',
30-
description: 'Interactive word guessing game with movie-themed words, featuring engaging UI and smooth game mechanics.',
31-
tech: ['JavaScript', 'Game Logic', 'UI/UX'],
32-
link: 'https://hangmanweb.web.app',
33-
github: 'https://github.com/Vashanth/Hangman-Game'
34-
},
21+
3522
{
3623
title: 'COVID-19 Tracker',
3724
description: 'Real-time dashboard tracking COVID-19 statistics with data visualization and regional breakdowns.',

0 commit comments

Comments
 (0)