The Home page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/magical/llms.txt
Use this file to discover all available pages before exploring further.
/) is the entry point — the Portal — of Magical Portfolio. It renders a full-viewport hero section that introduces Elara Nightshade through a stroke-drawn SVG text animation, then presents six navigation menu cards as the primary wayfinding UI for the entire site.
Visual & UX Overview
Animated SVG Hero
The name “Elara Nightshade” is drawn onto the screen using a
strokeDasharray animation that sweeps from "0 1000" to "1000 0", followed by a fill fade from transparent to #e2e8f0. The subtitle “Software Alchemist & Digital Weaver” appears beneath in font-mono styled in mystic-teal/80.3D Tilt Navigation Cards
Six navigation menu cards sit in a
flex-wrap row. Each card is w-48 h-72 (192 × 288 px) and responds to mouse movement with a live 3D tilt effect powered by Framer Motion’s useMotionValue and useTransform hooks (rotateX / rotateY derived from cursor position, ranging ±15°).Background Alchemy Sigil
A large alchemy
<Sigil> component is rendered at 10% opacity centered behind all content, providing ambient mystical atmosphere without distracting from foreground elements.Staggered Card Entrance
Cards animate in from
opacity: 0, y: 50 to opacity: 1, y: 0. Each card’s animation is delayed by 2 + (index × 0.1) seconds, creating a cascading reveal after the hero text finishes drawing.Tagline
The hero section includes a sardonic one-liner displayed beneath the subtitle:“No actual spells, just suspiciously organized files and a concerning amount of coffee.”
Navigation Card Data
Each card is driven by a static data array. The six entries are:| ID | Title | Subtitle | Path | Roman Numeral | Color Gradient |
|---|---|---|---|---|---|
about | The Chronicle | Origins & Lore | /about | I | from-mystic-800 to-mystic-950 |
projects | The Grimoire | Summoned Works | /projects | II | from-mystic-900 to-mystic-800 |
skills | Affinities | Arcane Competencies | /skills | III | from-mystic-800 to-mystic-900 |
writing | The Tomes | Inscribed Thoughts | /writing | IV | from-mystic-950 to-mystic-800 |
case-studies | Rituals | Deep Magic | /case-studies | V | from-mystic-800 to-mystic-950 |
contact | The Summoning | Send a Raven | /contact | VI | from-mystic-900 to-mystic-800 |
The
Sigil type cycles through ["star", "moon", "alchemy", "eye"] by index position (i.e., sigils[index % 4]). Card 0 (about) gets star, card 1 (projects) gets moon, card 2 (skills) gets alchemy, card 3 (writing) gets eye, card 4 (case-studies) gets star, and card 5 (contact) gets moon.3D Tilt Interaction
Each card tracks mouse position relative to its own bounding box and feeds those values into Framer Motion motion values:perspective is set on the card’s wrapper so the rotateX/rotateY values produce a genuine 3D tilt effect. On mouseLeave, both motion values are reset to 0.
Customization
Changing the hero name or subtitle
Changing the hero name or subtitle
The SVG text element renders the literal string
"Elara Nightshade". To change it, update the <text> element’s content inside the hero section and adjust the strokeDasharray end value if the new name is significantly longer or shorter (longer names need a higher max value than 1000).The subtitle "Software Alchemist & Digital Weaver" and tagline are plain string literals inside the component — find and replace them directly.Adding or removing navigation cards
Adding or removing navigation cards
Adjusting card entrance timing
Adjusting card entrance timing
The stagger delay formula is
delay: 2 + index * 0.1. To make cards appear sooner, reduce the base 2 seconds. To tighten or loosen the cascade spread, adjust the 0.1 multiplier.Component Dependencies
| Component | Source | Role |
|---|---|---|
Sigil | components/Sigil.js | Draws animated SVG sigil icons inside each card and as the background watermark |
BackgroundEffects | components/BackgroundEffects.js | Renders floating particle orbs and the deep purple/teal ambient blurs |
Navigation | components/Navigation.js | Fixed top navigation bar (rendered globally, visible here) |
motion (Framer Motion) | assets/proxy.js | Powers strokeDasharray hero animation, card tilt, and stagger entrance |
useMotionValue / useTransform | Framer Motion | Derives rotateX/rotateY from live mouse coordinates for the tilt effect |