The Home page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/aurora-cosmos/llms.txt
Use this file to discover all available pages before exploring further.
/) is the first thing visitors see: a near-full-viewport hero that draws the eye immediately with a custom animated SVG name treatment, a short punchy tagline, and two CTA buttons. Every element enters with a Framer Motion staggered sequence so the page feels alive, not static. The two background layers — AuroraBackground and Starfield — are shared across all pages and render behind the content as fixed decorative elements.
Layout overview
The hero is a single<div> flex-column set to min-h-[80vh], centred both horizontally and vertically. It divides into two logical blocks:
-
Name / SVG treatment — An
<svg viewBox="0 0 800 200">renders a multi-point path that traces an abstract cosmic shape, then animatespathLengthfrom0 → 1over three seconds. Glow dots appear at each vertex with a staggereddelay: 2 + index * 0.1entrance. The name itself (SARAH DEVin the template) overlays the SVG as an absolutely-positioned<h1>with a gradient clip fromwhite → aurora-turquoise → cosmic-violet. -
Subtitle and CTAs — Below the SVG block, a
motion.diventers withinitial={{ opacity: 0, y: 20 }}andanimate={{ opacity: 1, y: 0 }}atdelay: 4, duration: 0.8. Inside it sits: a pill badge (glass-panel withTerminalicon and a status string), a<p>tagline intext-slate-300, and the two CTA buttons.
The
delay: 3.5 and delay: 4 values on the text blocks are intentionally long — they wait for the SVG path animation to finish. If you shorten the path animation duration (default 3), reduce the text delays to match so the page doesn’t feel sluggish.Framer Motion animations
SVG path draw
The hero name path uses
initial={{ pathLength: 0, opacity: 0 }} → animate={{ pathLength: 1, opacity: 0.3 }} over duration: 3, ease: "easeInOut". This creates the “constellation drawing itself” effect.Vertex dots
Thirteen
motion.circle elements stagger in at delay: 2 + index * 0.1, duration: 0.5 with initial={{ scale: 0, opacity: 0 }} → animate={{ scale: 1, opacity: 1 }}. Each dot has a cyan drop-shadow glow class.Name overlay
The
<h1> enters via a wrapping motion.div at delay: 3.5, duration: 1 from y: 20 to y: 0 with opacity 0 → 1.CTA block
The subtitle and buttons share a single
motion.div at delay: 4, duration: 0.8 with the same y: 20 → 0 entrance. Buttons have whileHover={{ scale: 1.05 }} and whileTap={{ scale: 0.95 }} for tactile feedback.Color tokens used
| Element | Token / class |
|---|---|
| Name gradient | from-white via-aurora-turquoise to-cosmic-violet |
| SVG path stroke | url(#aurora-gradient) — teal #14b8a6 → turquoise #5eead4 → violet |
| Glow dots | text-aurora-turquoise, drop-shadow-[0_0_8px_rgba(94,234,212,0.8)] |
| Primary CTA button | bg-gradient-to-r from-aurora-teal to-cosmic-violet |
| Secondary CTA button | glass-panel (glassmorphism panel) |
| Status pill | glass-panel, border-aurora-teal/30, text-aurora-turquoise |
| Tagline | text-slate-300 |
CTA buttons
The primary button links to/projects and uses a gradient fill. The secondary links to /about and uses the glass-panel style. Both are wrapped in React Router <Link> components:
Customization guide
Replace your name
The hero component is compiled into
assets/main.js. To change the name, fork the original source and find the <h1> inside the motion.div at delay: 3.5, then rebuild. Change "SARAH DEV" to your own display name. The gradient is applied via text-transparent bg-clip-text bg-gradient-to-r from-white via-aurora-turquoise to-cosmic-violet — no other changes needed for the text color to work.Update the status badge
The pill badge above the tagline shows a live-status style indicator. Change the
<span> text to your own current focus:Rewrite the tagline
The
<p> below the badge is your elevator pitch. Keep it to 1–2 sentences and use text-slate-300 text-xl sm:text-2xl font-light leading-relaxed to preserve the visual weight:Relabel the CTA buttons
Change the button label strings and update the
<Link to="..."> targets if needed. Both buttons are in the flex flex-col sm:flex-row container directly below the tagline.