LeftNav is the persistent navigation sidebar that links all seven pages of the portfolio. It uses React Router’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/y2k-webring/llms.txt
Use this file to discover all available pages before exploring further.
NavLink for active-state detection and Framer Motion for icon animations — spinning the active route’s icon in a continuous 360° loop to reinforce the Y2K aesthetic.
Navigation Routes
The sidebar is driven by a hardcoded array of route objects. All seven entries are listed below:| Path | Display Label | Icon |
|---|---|---|
/ | Home.exe | Sparkles |
/about | About_Me | User |
/projects | Open_Projects | FolderOpen |
/skills | Charms_&_Abilities | Zap |
/writing | Archive.log | BookOpen |
/case-studies | Case_Files | FileText |
/contact | Sign_Guestbook | MessageSquare |
Active State Styles
React Router’sNavLink component provides the isActive boolean used to switch between active and inactive class sets.
Active route:
- Text color:
text-y2k-lime - Background:
bg-y2k-violet/50 - Border:
marching-ants-borderCSS animation (animated dashed outline)
- Text color:
text-y2k-lavender - Hover text:
hover:text-y2k-cyan - Hover background:
hover:bg-y2k-violet/30
Icon Animation
When a route is active, its icon continuously rotates 360° using Framer Motion. The animation configuration is:rotate: 0 — returning to their resting position if the route was previously active.
Customizing Nav Items
Navigation entries are defined in the internalPd array inside LeftNav.js. To add, remove, or reorder routes, modify that array. Each entry follows this shape:
The
label value is rendered verbatim as the link text, so underscores and dots are intentional — they are part of the Y2K filename aesthetic (e.g. Archive.log, Home.exe).Container
The outer<nav> element uses w-full lg:w-64 shrink-0 flex flex-col gap-4 — full-width below the lg breakpoint and a fixed 64 unit column on large screens. The inner panel applies border-chunky-magenta bg-y2k-black/80 p-4 to give the navigation its bordered, semi-transparent look.
No Props
LeftNav takes no props. It reads the current route internally via React Router’suseLocation hook and derives active state from NavLink’s built-in isActive callback. All data is self-contained within the component.