The Testimonials page is titled “The Fan Club” and showcases kind words from three colleagues through theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/groovy/llms.txt
Use this file to discover all available pages before exploring further.
GroovyBubble component — a retro speech-bubble UI element styled to evoke the comic-strip lettering and bubbly typography of 1970s pop art. Each bubble floats at a slightly different vertical offset and animates in with a staggered delay, creating a lively, cascading entrance effect. The three bubbles use the portfolio’s signature accent colours — fuchsia, teal, and yellow — so the page reads as a cohesive rainbow spread even without a dedicated background component.
Route
| Property | Value |
|---|---|
| Path | /testimonials |
| React component | I |
| Router type | HashRouter — accessed as /#/testimonials |
Current testimonials
Sarah Jenkins — Product Manager
“Alex brought so much color to our drab corporate dashboard…” · Colour:
#d946efMike Chen — Lead Designer
“I’ve never seen someone write CSS with such soul…” · Colour:
#2dd4bfElena Rodriguez — Engineering Director
“Not only is the code clean, but Alex’s positive energy…” · Colour:
#fde047GroovyBubble props
EachGroovyBubble instance accepts the following props:
The testimonial text displayed inside the bubble. Full sentence(s) preferred — the bubble shape scales with content height, so a two-to-four sentence quote fills the bubble naturally without awkward white space.
The full name of the person giving the testimonial. Rendered in a bold style at the base of the bubble’s tail, beneath the quote body.
The professional title or role of the testimonial author. Displayed in a smaller, secondary style immediately below the
author name.The background fill colour of the speech bubble. Also used for the bubble’s tail triangle. Should be high-contrast against white text — all three current bubbles use saturated, mid-to-dark tones for this reason.
Controls which side the bubble tail points toward. Alternating
"left" and "right" across consecutive bubbles gives the page a conversation-thread feel. Defaults to "left" if omitted.Vertical pixel offset applied to the bubble’s resting position. Staggering
yOffset values across bubbles (e.g. 0, 30, -20) creates the floating, scattered layout that distinguishes the page from a plain list. Positive values push the bubble downward; negative values push it upward.Framer Motion entrance animation delay in seconds. Stagger each bubble by
0.15–0.25 seconds to produce the cascading pop-in effect. The current three bubbles use 0, 0.2, and 0.4 respectively.Full testimonials array (as defined in source)
Adding a new testimonial
Append a new object to thetestimonials array and provide a delay value 0.2 seconds greater than the previous entry’s:
The
yOffset prop is a presentational nudge — it does not affect document flow, only the visual transform. If you add many bubbles with large yOffset values, the bubbles may visually overlap each other or clip outside the page container. Check at both mobile (375 px) and desktop (1280 px) breakpoints after any layout change.Related components
GroovyBubble Component
Full props reference, tail positioning options, and entrance animation configuration.
Contact Page
The natural next step after visitors read positive testimonials — prompt them to get in touch.