Tune Aurora Cosmos Animations and Visual Motion Effects
Adjust Framer Motion aurora drift speeds, starfield parallax ratios, CSS keyframe durations, and shooting star timing to match your preferred intensity.
Use this file to discover all available pages before exploring further.
Aurora Cosmos has two distinct animation systems working in parallel. Framer Motion drives everything that responds to scroll or requires smooth, physics-aware interpolation — the drifting aurora gradient layers, the starfield parallax, and the navigation active indicator. CSS keyframes handle the ambient, looping effects — star twinkle, shooting stars, orbiting decorative elements, and the generic pulse utility. Understanding which system controls which effect makes tuning straightforward.
The three aurora gradient layers in components/AuroraBackground.js each receive their own Framer Motion animate and transition props. The values below are the defaults used in the template.
Increasing duration slows the drift and creates a more tranquil atmosphere. Decreasing it adds energy. The ease: "linear" value keeps the motion perfectly loopable without any acceleration artifacts — switching to "easeInOut" will cause subtle speed pulsing at each cycle boundary.
Each layer exposes two levers for dialing back the visual weight without touching the motion values.Opacity — each layer <motion.div> has an opacity-* class. The defaults are opacity-40, opacity-30, and opacity-20 for layers 1, 2, and 3 respectively. Reducing these values makes the aurora more subtle against the dark background.Blur radius — the blur-[Npx] class on each layer controls how far the gradient softens outward. The defaults are blur-[100px], blur-[120px], and blur-[90px]. Larger values create a more diffuse, lower-contrast glow; smaller values make the aurora shapes tighter and more defined.
// Example: muted aurora — lower opacity and tighter blur on all three layersclassName="... opacity-20 mix-blend-screen filter blur-[80px]" // layer 1className="... opacity-15 mix-blend-screen filter blur-[100px]" // layer 2className="... opacity-10 mix-blend-screen filter blur-[70px]" // layer 3
components/Starfield.js uses Framer Motion’s useScroll and useTransform to move three star layers at different speeds as the visitor scrolls down the page, creating a depth-of-field illusion.
The second argument to useTransform is the input range (scroll position in pixels) and the third is the output range (pixel offset applied to the layer). To reduce the parallax effect — useful for users who find heavy motion distracting — decrease the absolute value of the output range endpoints:
The three star layers are generated in a useEffect inside Starfield.js using Array.from({length: N}). The default counts are 100 stars for layer 1, 50 for layer 2, and 25 for layer 3.
Larger counts create a denser, Milky-Way-style field. Lower counts give a sparse, minimalist sky. Star sizes are in pixels and scale with each layer to reinforce the depth effect.
The four looping CSS animations are defined as @keyframes blocks in assets/main.css. Edit the animation duration value in that file to change the speed of each effect.
The animationDelay on individual shooting star elements is set inline in Starfield.js — the first streak fires after 5s and the second after 12s. Increase these delay values to space the streaks further apart and reduce how often they appear.
Wrap any Framer Motion component with the useReducedMotion hook to detect when the visitor’s OS-level “reduce motion” preference is active, then skip the animation entirely.
Aurora Cosmos’s page sections each fade and slide in as they enter the viewport. These entrance animations use a stagger pattern — each child element starts its animation a fixed number of milliseconds after the previous one, creating a cascading reveal. To adjust stagger timing, look for transition={{ delay: index * 0.1 }} patterns in the page components and change the multiplier. A value of 0.05 feels snappier; 0.2 feels more deliberate and editorial.