Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/webmaster/llms.txt
Use this file to discover all available pages before exploring further.
RetroNav is Webmaster’s site-wide navigation bar. It renders nine hardcoded route links across a silver bevel-container panel that sticks to the top of the viewport while scrolling. The active route gets a sunken inset effect, a hot-pink text color, and an animated marching-ants dashed border. Inactive routes display as raised bevel buttons in the VT323 pixel font that turn hot-pink on hover.
Requirements
RetroNav uses React Router v6’s <NavLink> internally to detect the active route. It must be rendered inside a React Router context — either <HashRouter> or <BrowserRouter>. In the Webmaster app, the root App component wraps the entire tree in <HashRouter> (imported as H from the bundle).
Rendering
<RetroNav /> outside of a router context will throw a React Router invariant error at runtime. Always place it inside <HashRouter> or <BrowserRouter>.Props
RetroNav accepts no props. All nine routes and their labels are hardcoded inside the component.
Routes
The navigation items are defined as the following static array:Active vs. Inactive State
Each nav item is rendered as a<NavLink>. React Router v6’s NavLink passes an isActive boolean to the className callback, which RetroNav uses to apply one of two class sets:
| State | CSS Classes Applied |
|---|---|
| Active | bevel-button px-3 py-1 font-pixel text-lg sm:text-xl text-black no-underline hover:text-hotpink bevel-container-inset bg-white text-hotpink marching-ants |
| Inactive | bevel-button px-3 py-1 font-pixel text-lg sm:text-xl text-black no-underline hover:text-hotpink |
.bevel-container-inset bg-white text-hotpink marching-ants for the sunken pressed-in look, white background, hot-pink text (#FF69B4), and the .marching-ants animated dashed border. The inactive state uses .bevel-button alone for the raised look with black text and a hot-pink hover. Note the sm:text-xl responsive size step and no-underline are present on both states.
Blinking ▶ / ◀ Indicators
When a route is active, the component renders a blinking▶ arrow before the label and a blinking ◀ arrow after it, sandwiching the bracketed label text (e.g. ▶ [Home] ◀). Both arrows use the .animate-blink class — a CSS keyframe animation that toggles opacity between 1 and 0 in a 1s step-start loop:
The blinking indicators are suppressed when
prefers-reduced-motion: reduce is set in the user’s OS accessibility preferences. The .animate-blink animation is disabled globally under that media query in main.css.Container Layout
The outer wrapper uses these classes:flex flex-wrap gap-2 justify-center inner div, so they reflow naturally on narrow screens.
Usage
Basic — inside HashRouter
This is howRetroNav is used in the Webmaster App component (fe in the compiled bundle):