Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-coven/llms.txt
Use this file to discover all available pages before exploring further.
CardsOfFate is the home page’s central navigation device, dressed up as a tarot reading. Each card represents a section of the portfolio — Projects, About, Skills, Writing, Case Studies, and Contact — and is styled with occult iconography, corner rune markers, and 3-D perspective hover effects. The component bridges the atmospheric opening sequence (the summoning circle and hero text) with the rest of the site.
Visual Role on the Home Page
CardsOfFate renders third in the home page stack, appearing below HeroText after the name and tagline animations have concluded. It draws the eye downward and provides the primary call-to-action for first-time visitors. Each card is a <Link> component from React Router, making the entire card surface a navigation target.
Home page render order:
| Position | Component |
|---|---|
| 1 | SummoningCircle |
| 2 | HeroText |
| 3 | CardsOfFate |
| 4 | TerminalStatus |
| 5 | ProjectMarquee |
Props
CardsOfFate accepts no props. The navigation destinations and their metadata are defined as a static array inside the component:
To add, remove, or reorder cards, edit the
navItems array directly in CardsOfFate.js. The grid layout is responsive and adapts automatically from 1 to 3 columns.Framer Motion Animations
Scroll-triggered card entrance
Each card useswhileInView to animate in from below as the user scrolls:
viewport: { once: true } means the entrance animation plays exactly once. Cards that have already animated in do not reset if the user scrolls up and back down.
3-D hover effect
On pointer entry, each card lifts and tilts in 3-D space, and a purple box-shadow glow expands:transformStyle: "preserve-3d" inline style is required for the rotateX/rotateY values to produce a genuine perspective tilt rather than a flat CSS transform.
CSS Classes and Color Tokens
Section container
Grid wrapper
Per-card motion.div
electric-purple/30 (30 % opacity) to full electric-purple, making the card boundary visibly sharpen.
Section heading
Card icon
electric-purple to cyan with a cyan drop-shadow glow, giving the impression the symbol has been activated.
Card title
Card description
Decorative corner runes
Each card has four<div> corner accents — top-left, top-right, bottom-left, bottom-right — that draw partial border brackets:
Background dot grid overlay
Aradial-gradient CSS background creates a subtle polka-dot pattern inside each card at 10 % opacity:
Interactive Behaviour
| Interaction | Effect |
|---|---|
| Hover | Scale up (1.05×), 3-D tilt (rotateY: 10°, rotateX: -10°), border brightens, icon turns cyan, description text lightens, purple glow expands |
| Click / tap | Navigates to the card’s path via React Router <Link> |
| Scroll into view | Cards animate in from y: 50 with a 0.1 s stagger per card |