Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/observatory/llms.txt
Use this file to discover all available pages before exploring further.
ConstellationLayout is the most visually complex Aurora component. It renders a portfolio of projects as a navigable star map inside a fixed-height container. Each project is a glowing star node placed at an (x, y) percentage position. Animated SVG dashed lines connect related projects, and hovering a star reveals a glassmorphism tooltip with the project title, description, tech stack, and source/deploy links.
Visual appearance
The component renders a600px tall container (700px on md viewports) with a space-900/50 background, a subtle white border, and overflow: hidden. The SVG connection lines are rendered in a full-bleed <svg> layer using pointer-events: none.
Each star node consists of:
- A blurred
aurora-turquoiseglow ring (visible on hover and when active) - A solid white circle sized at
magnitude × 8pixels - A monospace label below the star that fades in on hover and disappears when the tooltip is open
space-800/95 glassmorphism card with a aurora-teal/30 border. It renders the project title, description, tech tag pills, and two icon links (GitHub source and external deploy).
Animations
| Effect | Implementation |
|---|---|
| Star entry | m.button with initial: scale(0), opacity(0) → animate: scale(1), opacity(1), spring type, staggered by index × 0.1s + 1s |
| Connection line draw | m.line with initial: pathLength(0), opacity(0) → animate: pathLength(1), opacity(1), 2s easeInOut, staggered by index × 0.2s |
| Tooltip entry/exit | m.div inside AnimatePresence with opacity, y(10), and scale(0.95) over 0.2s |
| Active glow ring | CSS transition-all duration-500 on opacity and scale classes |
strokeDasharray="4 4" and animate pathLength from 0 to 1, making the dashes appear to draw themselves outward from the source node.
Where it’s used
ConstellationLayout is the primary interactive element on the /projects route:
Data shape
The projects data array is defined directly incomponents/aurora/ConstellationLayout.js. Edit this array to add, remove, or reposition projects.
Unique identifier for the node. Referenced by other nodes in their
connections array (e.g., 'p1').Project name. Displayed as the small label below the star and as the heading in the tooltip.
Short project description shown in the tooltip body. Keep to 1–2 sentences for best layout.
Array of technology tags displayed as small pill badges inside the tooltip. Example:
['React', 'TypeScript', 'GraphQL'].Horizontal position as a percentage of the container width (
0–100). Maps to left: x% via absolute positioning.Vertical position as a percentage of the container height (
0–100). Maps to top: y% via absolute positioning.Visual size multiplier. The star circle is rendered at
magnitude × 8 pixels in both width and height. A value of 1.0 produces an 8px star; 2.0 produces a 16px star.Array of node IDs this project is connected to. The component deduplicates pairs (sorted alphabetically) so you only need to declare connections on one side. Lines are drawn between connected pairs.
How to customize
Edit theprojects array in the component file. Connection lines are automatically computed from the connections arrays — no need to define lines separately.
Layout tips
- Keep
xandyvalues between5and90to prevent nodes from clipping at the edges. - Nodes with higher
magnitudevalues draw more visual attention — use them for flagship projects. - Avoid placing two nodes closer than ~10% on both axes, as their tooltips will overlap.
- Connections are drawn as dashed
rgba(45, 212, 191, 0.2)lines — fewer connections keep the chart readable.