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.
AuroraRibbon is a decorative background component that renders four undulating wave shapes styled after the northern lights. It sits behind all page content using position: absolute and blends into the scene with mix-blend-screen and 70% opacity, so it glows without overwhelming the text.
Visual appearance
The component renders an<svg> element that is 150% the height of the viewport, offset upward by 20vh. Inside it, four <path> elements are filled with vertical <linearGradient> definitions — each gradient transitions from an opaque aurora color at the top to fully transparent at the bottom, creating the characteristic curtain-like fade.
A feGaussianBlur SVG filter with stdDeviation="40" is applied to all four paths via a <g filter="url(#blur)"> wrapper, giving the ribbons their soft, luminous appearance.
The four ribbon layers
| Layer | Color | Opacity | Amplitude | Speed |
|---|---|---|---|---|
| 0 | #14b8a6 (aurora-teal) | 0.4 | 120 px | 0.001 |
| 1 | #2dd4bf (aurora-turquoise) | 0.6 | 150 px | 0.0015 |
| 2 | #5eead4 (aurora-seafoam) | 0.3 | 100 px | 0.0008 |
| 3 | #8b5cf6 (aurora-violet) | 0.15 | 80 px | 0.0012 |
Animation
The wave shapes are not driven by Framer Motion. Instead, arequestAnimationFrame loop runs outside React’s render cycle and directly mutates the SVG d attributes of each <path> on every tick:
- A shared time counter
sincrements by16each frame (approximately 60 fps). - For each ribbon, the component samples
Math.sin(x * frequency + s * speed) * amplitudeat 100 px intervals across the full viewport width. - A secondary
Math.costerm at half the frequency and 1.2× the speed adds an organic secondary wobble. - The resulting point list is assembled into a closed SVG path that sweeps to the bottom of the canvas.
cancelAnimationFrame.
Where it’s used
AuroraRibbon is used exclusively in the Home page (/) hero section, layered behind Starfield:
Adding AuroraRibbon to another page
AuroraRibbon is self-contained and works inside any position: relative container. The SVG is absolutely positioned and will fill its nearest positioned ancestor.
Tailwind color tokens used
| Token | Hex | Role |
|---|---|---|
aurora-teal | #14b8a6 | Primary ribbon base |
aurora-turquoise | #2dd4bf | Dominant bright ribbon |
aurora-seafoam | #5eead4 | Highlight ribbon |
aurora-violet | #8b5cf6 | Purple undertone ribbon |
tailwind.config.js under the extend.colors.aurora namespace and are available to all Aurora components.