TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/nightshade/llms.txt
Use this file to discover all available pages before exploring further.
Navigation component is the persistent top bar that appears on every page. It renders a row of nine sigil icons — one per route — and uses Framer Motion’s shared layout animation to slide a glowing amber flame indicator between icons as the active route changes.
Visual structure
The bar is afixed element spanning the full viewport width, sitting above all page content. Its background is a gradient that fades from the dark witch theme color into transparency, allowing the smoke layer beneath to bleed through the bottom edge:
Navigation items
ThenavItems array is the single source of truth for the navigation bar. Each entry maps a route path to a display label, a sigil icon component, and a Latin incantation shown on hover.
| Path | Label | Incantation |
|---|---|---|
/ | The Sanctum | Initium Novum |
/about | The Witch | Nosce Te Ipsum |
/projects | Summonings | Fiat Lux |
/skills | Arcana | Potentia Abscondita |
/work | Pacts | Foedus Aeternum |
/case-studies | Workings | Opus Magnum |
/blog | Journal | Verba Volant |
/testimonials | Whispers | Vox Populi |
/contact | Commune | Nuntius Transmissus |
Active flame indicator
The active route is highlighted by amotion.div rendered behind the active icon. Because it carries layoutId="activeFlame", Framer Motion tracks its position in the DOM and automatically animates it from the previous icon position to the new one whenever the active route changes — no custom animation code required.
layoutId animations require AnimatePresence to be present somewhere in the component tree. Because Navigation is always mounted (it lives inside Layout), the AnimatePresence wrapping the route transitions at the router level is sufficient.Active and inactive icon styles
| State | CSS classes |
|---|---|
| Active | text-witch-amber drop-shadow-[0_0_5px_rgba(245,158,11,0.5)] |
| Inactive | text-witch-moonlight/60 |
text-witch-amber from its wrapper, which in turn colors the sigil SVG via stroke="currentColor". The drop shadow creates the amber glow effect.
Hover incantation tooltip
When the user hovers over a nav item, the Latin incantation slides in from below usingAnimatePresence and a motion.p element:
y: 10 (10px below) to y: 0 on enter, and back down on exit, giving it a gentle rising motion.
Adding a new nav item
To add a new route to the navigation bar:- Create or import a sigil component from
Sigils.jsfollowing the existing pattern. - Append a new object to the
navItemsarray inNavigation.js:
- Ensure the corresponding route is registered in the router configuration.