The Whispers from the Coven page transforms traditional testimonials into a living, breathing gallery. Rather than a static list, each endorsement drifts freely across the viewport as an independent floating card — positioned absolutely on a darkDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/oracle/llms.txt
Use this file to discover all available pages before exploring further.
midnight canvas and perpetually animated with gentle oscillation. Visitors are invited to “catch the floating echoes of past collaborators,” reinforcing Oracle’s mystical narrative while giving each voice its own spatial identity. Hovering any card draws it forward, sharpening the turquoise border glow and scaling it up to reading size.
The Coven’s Voices
Sarah J. — Lead Sorceress (CTO)
“Alex doesn’t just write code; they weave spells that make our infrastructure resilient and our UI enchanting.”
Marcus T. — Product Oracle
“A true master of the frontend arts. The performance gains we saw were nothing short of magical.”
Elena R. — Senior Alchemist
“Brought order to our chaotic legacy codebase. A debugger of the highest order.”
David W. — Design Magus
“The attention to detail in the animations makes our app feel alive. Truly mystical work.”
Card Placement
Each testimonial card is positioned with CSSleft and top values derived from the source data, spreading them naturally across the 600 px tall canvas so they never overlap at rest:
| ID | Author | Left | Top |
|---|---|---|---|
| t1 | Sarah J. | 10% | 10% |
| t2 | Marcus T. | 55% | 25% |
| t3 | Elena R. | 15% | 55% |
| t4 | David W. | 60% | 65% |
Interaction Design
Every card is rendered as a Framer Motionmotion.div with three layers of animation working in concert.
Entrance animation — cards spring into view from a scaled-down, transparent state. The initial prop sets opacity: 0, scale: 0.8, and the animate prop transitions to full opacity and scale. Each card receives a staggered delay (0 s, 1.5 s, 0.8 s, and 2.2 s respectively) so the coven assembles sequentially rather than all at once.
Ambient float — once visible, cards never stop moving. The same animate prop drives continuous y and x oscillation using keyframe arrays:
whileHover lifts the card forward with a subtle scale-up and elevates its stacking order, letting it break free from its neighbours:
shadow-[0_0_15px_rgba(29,233,182,0.05)] to shadow-[0_0_25px_rgba(29,233,182,0.15)] and the border brightens from border-turquoise/20 to border-turquoise/40, reinforcing the sense that the card is emerging from the ether.
The ambient float is driven entirely by Framer Motion’s
animate prop using infinite-repeat keyframe arrays — no useEffect, no setInterval, no manual RAF loop. Passing y: [0, -15, 0] with repeat: Infinity tells Framer Motion to tween through those values endlessly. The ease: "easeInOut" curve gives each oscillation a natural, breath-like deceleration at the extremes, while the per-card delay keeps the four orbs drifting out of phase so the gallery feels organically alive.