Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-haunt/llms.txt
Use this file to discover all available pages before exploring further.
FloatingGhost displays a single testimonial — a quote, reviewer name, and job title — beneath a hand-crafted ghost SVG avatar that bobs endlessly up and down using Framer Motion’s infinite animation loop. A soft shadow below the ghost pulses in sync, selling the illusion of gentle levitation. Cards are staggered into view on the Testimonials page using each ghost’s individual delay value.
Props
The testimonial data object to render inside this component.
The reviewer’s full name, displayed in bold beneath the quote.
The reviewer’s job title and/or company (e.g.
"CEO, BloodBank Inc."), rendered in small monospace text below the name.The testimonial body text. Displayed in the spooky font, wrapped in curly quotes, inside the scroll-shaped card.
Framer Motion entrance delay in seconds. Controls when this card fades up into view relative to the page load, creating a staggered appearance across the three testimonials.
Testimonials Data
The three built-in testimonials are defined inassets/main.js and mapped to individual <FloatingGhost> components on the Testimonials page:
Ghost Avatar
The ghost is a custom inline SVG (not a Lucide icon) built from a single filled path and several facial features:w-40 h-40 container with mb-[-20px] so it overlaps the top edge of the card below it, giving the appearance of hovering directly above the scroll.
Animations
Continuous float (ghost + shadow)
Both the ghost avatar and its elliptical shadow use the same looping animation parameters, linked bytestimonial.delay so each ghost floats in its own rhythm:
20px upward and back while rocking ±2°; the shadow simultaneously shrinks and fades, reinforcing the sense of height change.
Card entrance
The outermotion.div wrapper on the Testimonials page slides each card up from y: 50 with a staggered delay:
Usage
Full testimonials grid
Single ghost (preview / testing)
Card Visual Design
The testimonial card uses a scroll or cushion shape achieved with overlapping rounded bars:- Body —
bg-[#e2d5c4]with aborder-2 border-[#c7bcae]outline andshadow-xl. - Top cap — an absolutely positioned
h-6bar inbg-[#d7ccc8]withrounded-fullcreates the rolled-top-of-scroll effect. - Bottom cap — the same treatment mirrored at the bottom.
- Quote — displayed in
font-spooky text-xlwrapped in""curly quote characters. - Attribution — name in
font-bold text-sm, role infont-code text-xs opacity-70, separated from the quote by aborder-t border-night/10.
Customisation
To add or change testimonials, edit thetestimonials array in assets/main.js. Each entry only needs the four fields documented above.
The ghost shape is a bespoke SVG path, not a Lucide icon. If you want to swap it for a different avatar (e.g. a Lucide
ghost icon), replace the <svg> block inside the w-40 h-40 container div. Keep the container dimensions the same so the -mb-[20px] overlap with the card below is preserved.