Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-alchemy/llms.txt
Use this file to discover all available pages before exploring further.
Constellation is the primary visual on the Skills (/skills) page. It renders an aspect-[4/3] panel containing eight technology nodes displayed as glowing turquoise stars connected by constellation lines that animate into view when the component enters the viewport.
The component takes no props — the skill data and connection graph are hardcoded inside the component.
Skill Nodes
Eight technologies are mapped to X/Y percentage positions within the panel:| ID | Label | X% | Y% | Level |
|---|---|---|---|---|
react | React | 50 | 50 | 3 (large) |
ts | TypeScript | 30 | 20 | 3 (large) |
js | JavaScript | 70 | 20 | 3 (large) |
next | Next.js | 20 | 60 | 2 (medium) |
node | Node.js | 80 | 60 | 2 (medium) |
css | Tailwind | 50 | 85 | 3 (large) |
framer | Framer Motion | 35 | 75 | 2 (medium) |
graphql | GraphQL | 65 | 75 | 1 (small) |
level:
- Level 3 →
w-3 h-3— core technologies - Level 2 →
w-2 h-2— strong secondaries - Level 1 →
w-1.5 h-1.5— proficient
Connection Lines
Eight constellation lines connect related technologies:motion.line elements in an SVG overlay (viewBox="0 0 100 100", preserveAspectRatio="none") so percentage coordinates map directly to SVG units.
Animation System
Viewport entry gating (useInView)
A custom useInView hook wraps the IntersectionObserver API. It attaches to the component’s root ref with { once: true, margin: "-100px" }, setting inView = true once the panel scrolls 100 px into the viewport. All animations are gated on inView:
Line draw-in
Node entrance
Node glow
Each star hasbg-turquoise shadow-[0_0_15px_rgba(64,224,208,0.8)] and an inner animate-pulse opacity-50 white div for a gentle heartbeat effect.
Hover Tooltip
Hovering a node reveals a tooltip viaopacity: 0 → group-hover:opacity-100:
bg-ink/90 border border-turquoise/30 card with backdrop-blur-sm. Proficiency is shown as three dots — filled bg-turquoise up to level, empty bg-turquoise/20 beyond.
Each node also includes an invisible w-8 h-8 rounded-full cursor-pointer hit-area element positioned at the node centre to increase the clickable/hoverable target size.
Background
The panel has abg-midnight/30 base with 50 randomly positioned w-0.5 h-0.5 white dot “background stars” at 30% opacity. Each uses an inline animation: flicker keyframe with a randomised 2–5 s duration for a subtle starfield shimmer.
Because
useInView is called with once: true, the animation only fires once on the first scroll into view. Scrolling back up and down will not re-trigger the draw-in sequence.Page Context
The Constellation is accompanied by an explanatory paragraph that fades in 1.5 s after the page mounts:“Hover over the celestial bodies to reveal proficiency. The brightest stars represent my core incantations, while the connecting lines show how these technologies weave together to form complete digital ecosystems.”