The Testimonials page shows six 88×31 badges representing reviewers — hovering each reveals a popover tooltip with their quote and a CSS arrow pointer.
Use this file to discover all available pages before exploring further.
The Testimonials page (/testimonials) uses the same 88×31 Button88x31 component seen on the Projects page, repurposed here as reviewer identity badges. Six badges are laid out in a flex-wrap row centred inside a silver bevel-container. Hovering any badge scales it up 110% and reveals a yellow popover tooltip anchored below it with a CSS triangle arrow pointer. Bouncing 👍 and ⭐ emojis are absolutely positioned in the bottom corners of the container.
<h2 className="text-4xl md:text-5xl text-white bg-black inline-block px-8 py-4 mb-12 border-4 border-turquoise shadow-[8px_8px_0_#00CED1] font-pixel"> Cool People Who Like Me</h2>
The turquoise shadow-[8px_8px_0_#00CED1] drop shadow creates the retro offset-box effect. The text is font-pixel on bg-black with border-4 border-turquoise.
Unlike the Projects page (which uses opacity/scale transitions for the card), the testimonial tooltip is conditionally rendered with && — it mounts and unmounts from the DOM on hover.
The tooltip is an absolutely-positioned w-64 bg-yellow-100 border-2 border-black p-4 shadow-[4px_4px_0_rgba(0,0,0,0.5)] panel anchored top-full (below the badge) and horizontally centred with left-1/2 -translate-x-1/2:
The arrow pointer uses two overlapping CSS border-trick triangles: the outer black triangle is 10px, the inner yellow-fill triangle is 8px and offset by 1px upward — creating the illusion of a bordered arrow.
// assets/main.js — append to the pe array{ id: 7, name: "Cat", quote: "Knocked laptop off desk. 10/10.", color: "#FF8C00", // dark orange},
The Button88x31 component receives an icon="♥" prop on this page (unlike the Projects page which does not pass an icon). Check components/Button88x31.js to see how the icon prop is rendered on the badge face.