Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-haunt/llms.txt
Use this file to discover all available pages before exploring further.
Navigation is DevHaunt’s persistent top bar. It lives at the very top of every page thanks to its fixed positioning and z-50 stacking order. On large screens it shows a centered pill of themed route links with a frosted-glass background. On smaller screens the links collapse behind a hamburger button that animates a dropdown menu in and out with Framer Motion. The brand mark in the top-left corner combines a Lucide Ghost icon with the site name, and the whole nav uses pointer-events: none on its outer wrapper so transparent gaps don’t accidentally swallow mouse events — only the interactive elements re-enable pointer events individually.
Nav links
The full list of routes and their Halloween-flavoured labels is defined in a static array inside the component:Active link highlighting
useLocation() from React Router provides the current pathname. Each link compares its path against location.pathname at render time:
- Active route →
text-pumpkin(orange#ff7a1a) - Inactive routes →
text-ghost(cream#f4f1ea)
hover:text-pumpkin class provides the hover state on inactive links so the colour feedback is instant and consistent with the active state.
Desktop navigation
The desktop strip is visible only atlg breakpoints and above (hidden lg:flex). It uses a pill-shaped container styled with bg-night/80 backdrop-blur-sm for a frosted-glass effect and a border border-tombstone/30 outline that subtly separates it from the background without being distracting.
Mobile menu
On viewports narrower thanlg, the desktop strip is hidden and a circular hamburger button appears in the top-right corner. The button toggles a boolean state value (isOpen) managed by useState.
- Closed — shows the Lucide
Menuicon (three horizontal lines) - Open — shows the Lucide
Xicon (close)
AnimatePresence so Framer Motion can play the exit animation before the element unmounts:
y: -20 → 0 motion combined with opacity: 0 → 1 gives the dropdown a quick fall-in feel when opening, and the reverse plays on dismiss.
Brand link
The top-left brand mark is always visible. It is a React Router<Link to="/"> containing:
- A Lucide
Ghosticon (w-8 h-8) that plays a floating animation on hover - The text “DevHaunt” in the
font-spookytypeface — hidden on mobile (hidden sm:block) to keep the bar uncluttered on small screens
Adding a new route
Add an entry to the navLinks array in source
In the original (pre-build) source for
Navigation, append your new route to the navLinks array following the { path, label } shape, then rebuild the project.The desktop nav and mobile dropdown both derive their links from the same
navLinks array, so a single addition to that array updates both menus automatically.