Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/aurora-borealis/llms.txt
Use this file to discover all available pages before exploring further.
ConstellationNav is the primary navigation surface of the Aurora Borealis portfolio. It renders a horizontal top bar whose links are decorated with animated star nodes and connecting lines styled to evoke a constellation map. The component is entirely self-contained: it bundles React Router DOM, Framer Motion, and the React DOM production runtime internally and re-exports all of those primitives for consumption by the rest of the app — which means you must not install or import those libraries separately.
Usage
ConstellationNav accepts no props. Active-route highlighting, animation state, and link targets are all managed internally by the component.Navigation links
The component renders links to the seven primary routes of the portfolio:| Label | Route | Notes |
|---|---|---|
| Home | / | Root landing page |
| About | /about | Biography and background |
| Projects | /projects | Portfolio project grid |
| Skills | /skills | Technology and skill matrix |
| Writing | /writing | Blog / article index |
| Missions | /case-studies | Deep-dive project write-ups |
| Contact | /contact | Contact form |
Link component. Active-route detection is handled by comparing useLocation().pathname against each link’s path, so the component does not rely on NavLink’s built-in active class mechanism.
Active-route detection
ConstellationNav calls React Router’s useLocation hook internally to read the current pathname from the router context. When the pathname matches a link’s to value, Framer Motion drives the star decoration from its idle state (small, dim) to its active state (larger, fully opaque):
Because
useLocation requires a live router context, you must render ConstellationNav inside a <BrowserRouter> (or equivalent) wrapper. Import BrowserRouter via its alias H from ConstellationNav’s bundle (import { H as BrowserRouter } from './components/ConstellationNav.js') rather than from a separately installed package.Constellation decorations
Each navigation link is paired with:- Star node — a small animated circle rendered as a
motion.div. On hover and on active routes it scales up and brightens. - Connecting line — a
motion.divor inline SVG line drawn between adjacent star nodes. Line opacity and length animate on route change using Framer Motion’s layout animations.
mix-blend-mode: screen technique as AuroraBackground, so they glow naturally over the dark sky backdrop rather than painting as flat shapes.
Bundled dependencies and re-exports
All primitives you need are available as named exports from the bundle:React Router DOM re-exports
The following React Router primitives are available as aliased named exports:| Export alias | Primitive |
|---|---|
H | BrowserRouter |
R | Routes |
a | Route |
u | useLocation |
Framer Motion re-exports
OnlyAnimatePresence is re-exported from the bundle (as alias A). The motion object, useScroll, and other Framer Motion hooks are not separately exported — they are used internally by ConstellationNav only.
Full recommended import pattern
Implementation notes
Single React root
Bundling
react-dom internally ensures the navigation bar and every page it renders share a single React root, which is required for React context (including the Router context) to propagate correctly.Scheduler included
The React Scheduler (
scheduler.production.min.js) is bundled alongside react-dom because the production build of React DOM requires it as a peer. You do not need to reference it directly.No external router import
Because React Router DOM is embedded in the bundle, you should remove any standalone
react-router-dom package from package.json. A duplicate installation wastes bytes and risks version mismatches.Framer Motion tree
All Framer Motion layout IDs and shared animation contexts must live under the same
motion instance. Because motion is used internally by this bundle’s embedded Framer Motion copy, avoid installing a separate Framer Motion package to prevent conflicting instances.Stacking and z-index
ConstellationNav positions itself above the AuroraBackground and StarField canvas layers. Ensure your layout provides a z-index context that keeps the nav above z-0:
z-index so you retain full control over how it stacks relative to modals, drawers, or other overlays in your layout.