Showcase client reviews and build trust with an elegant testimonial carousel. No dependencies, mobile responsive, accessible.
Showcase customer reviews with auto-rotation and star ratings.
<div data-tradecalcs-testimonials data-autoplay="true" data-interval="5000">
<div data-testimonial>
<div data-testimonial-content>The kitchen remodel exceeded our expectations...</div>
<div data-testimonial-author>Sarah Johnson</div>
<div data-testimonial-role>Homeowner, Mission Valley</div>
<div data-testimonial-rating>5</div>
</div>
<!-- More testimonials... -->
</div>
Interaction: Carousel auto-rotates every 5 seconds. Hover to pause. Use arrow buttons or dots to navigate.
Disable auto-rotation to let users control the pace.
<div data-tradecalcs-testimonials data-autoplay="false">
<!-- Testimonials... -->
</div>
Show authentic reviews with varying ratings.
Customize colors using CSS variables to match your brand.
<div data-tradecalcs-testimonials
data-autoplay="true"
style="--tc-testimonials-bg: #f0fdf4;
--tc-testimonials-border: #86efac;
--tc-testimonials-btn-bg: #10b981;
--tc-testimonials-btn-hover: #059669;
--tc-testimonials-dot-active: #10b981;">
<!-- Testimonials... -->
</div>
Step 1: Add the CSS and JavaScript files to your HTML:
<!-- Add to <head> -->
<link rel="stylesheet" href="/widgets/testimonials-carousel.css">
<!-- Add before closing </body> -->
<script src="/widgets/testimonials-carousel.js"></script>
Step 2: Add your testimonials:
<div data-tradecalcs-testimonials data-autoplay="true" data-interval="5000">
<div data-testimonial>
<div data-testimonial-content>Your testimonial text here...</div>
<div data-testimonial-author>Customer Name</div>
<div data-testimonial-role>Title or Location</div>
<div data-testimonial-rating>5</div>
</div>
<!-- Add more testimonials... -->
</div>
Note: Replace d790a6cc.tradecalcs.pages.dev with tradecalcs.com once the production domain is configured.
data-tradecalcs-testimonials (required) — Main containerdata-autoplay (optional) — Enable auto-rotation ("true"/"false", default: "true")data-interval (optional) — Auto-rotation interval in milliseconds (default: 5000)data-testimonial (required) — Individual testimonial containerdata-testimonial-content (required) — Testimonial quote textdata-testimonial-author (required) — Customer namedata-testimonial-role (optional) — Customer title or locationdata-testimonial-rating (optional) — Star rating 1-5 (default: 5)--tc-testimonials-bg — Testimonial card background--tc-testimonials-border — Card border color--tc-testimonials-content-text — Quote text color--tc-testimonials-author-text — Author name color--tc-testimonials-role-text — Role/location color--tc-testimonials-star-filled — Filled star color--tc-testimonials-star-empty — Empty star color--tc-testimonials-btn-bg — Navigation button background--tc-testimonials-btn-hover — Button hover color--tc-testimonials-btn-text — Button icon color--tc-testimonials-dot-bg — Pagination dot background--tc-testimonials-dot-active — Active dot color--tc-testimonials-padding — Card padding--tc-testimonials-gap — Spacing between elements--tc-testimonials-radius — Border radius// Initialize all carousels manually
TradeCalcsTestimonials.init();
// Initialize specific carousel
const element = document.querySelector('[data-tradecalcs-testimonials]');
TradeCalcsTestimonials.initElement(element);
// Control specific carousel
const carouselId = element.id; // Auto-generated ID
// Go to next slide
TradeCalcsTestimonials.next(carouselId);
// Go to previous slide
TradeCalcsTestimonials.prev(carouselId);
// Go to specific slide (0-indexed)
TradeCalcsTestimonials.goTo(carouselId, 2);
// Start autoplay
TradeCalcsTestimonials.startAutoplay(carouselId);
// Stop autoplay
TradeCalcsTestimonials.stopAutoplay(carouselId);
// Listen for slide change
element.addEventListener('tc-testimonials-slide-change', function(e) {
console.log('Slide changed:', e.detail);
// { carouselId: "tc-testimonials-1", currentIndex: 2, totalSlides: 5 }
});
The carousel is fully keyboard accessible:
Works in all modern browsers:
Our Network
Built by Cali Dream Construction · CSLB #1054602
Need a custom calculator for your trade business? We'll get back to you within 24 hours.