Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/neocities-dev/llms.txt
Use this file to discover all available pages before exploring further.
FrameNav is the persistent sidebar rendered on every page of the portfolio. It takes no props — the route list, avatar, and footer text are all hardcoded inside the component. It uses React Router’s NavLink to apply an active class to the currently matched route.
No props
FrameNav is a zero-configuration component. Simply mount it alongside your page content:
Hardcoded route list
The navigation items are defined in the internalLp array (minified name in the compiled output). The full list is:
components/FrameNav.js and add the corresponding <Route> in assets/main.js.
NavLink active state
Each route is rendered as a React RouterNavLink. When the link’s path matches the current URL, the following classes are applied to produce the “selected file” look:
text-y2k-text hover:text-y2k-magenta. The transition creates a clear visual indicator of the current page without any JavaScript state.
Avatar and header section
At the top of the sidebar,FrameNav renders:
- Avatar image — a square portrait fetched from a hardcoded Unsplash URL (
https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?q=80&w=200&h=200&auto=format&fit=crop), displayed atw-24 h-24withimageRendering: "pixelated"and inside aborder-2 border-y2k-cyanframe. SYS_ADMINheading — rendered infont-pixel text-2xl text-y2k-magenta animate-chromatic. Theanimate-chromaticanimation applies a shifting RGB text-shadow to produce a chromatic aberration glitch effect.Status: ONLINEline — rendered intext-xs text-y2k-lime font-mono animate-blink. Theanimate-blinkclass makes the status line pulse at a 1-second interval, mimicking a classic BBS terminal.
Footer
The bottom of the sidebar shows a small version/resolution note rendered in two lines:text-xs text-y2k-textMuted text-center font-mono and serves as a nostalgic nod to the era when personal homepages included browser-compatibility warnings.
FrameNav does not manage its own open/close state. On mobile breakpoints, the layout is handled by the parent flex container in assets/main.js. If you need a collapsible drawer version, wrap FrameNav in a state-controlled container and toggle its visibility externally.