testimonials.tsx

src/app/(hero)/_blocks/testimonials.tsx
import { Section } from '@/components/section'
import { Swiper } from '@/components/swiper'
import { Heading } from '@/components/heading'
import { Paragraph } from '@/components/paragraph'
import { TestimonialCard } from '@/components/testimonial-card'
import { TESTIMONIALS } from '@/catalog'
export default function Testimonials() {
return (
<Section
id="testimonials"
className="bg-body py-20 md:py-28 overflow-hidden"
>
<div className="mb-12 max-w-3xl md:mb-16">
<Heading as="h2">What Customers Say</Heading>
<Heading as="h3">Trusted by the Crews Doing the Work</Heading>
<Paragraph
color="text-contrast-light"
margin="mb-0"
>
Contractors, roofers, and builders who order from us week in and week
out.
</Paragraph>
</div>
<Swiper
layout="carousel"
columns={3}
nextButtonText="More Reviews"
>
{TESTIMONIALS.map((testimonial) => (
<TestimonialCard
key={testimonial.name}
testimonial={testimonial}
className="h-full"
/>
))}
</Swiper>
</Section>
)
}

Support

Talk to the developers of this project to learn more

We have been building professional websites for big clients for over 15 years. Gallop templates and blocks is our best foundation for SEO websites and web apps.

© 2026 Web Plant Media, LLC