ReTestimonial
Sign inStart free
WidgetsListL·08

Expandable List

Accordion rows that show a headline first and expand to the full story on click — depth on demand, without a wall of text.

yoursite.com — Expandable ListLIVE RENDER
<div class="retestimonial-widget" data-widget-key="expandable-list">click a row to expand the full story.
Demo content — illustrative examples, not real customers

This is the real widget, rendered live by the same runtime your visitors would see — go ahead, click around.

Why this style works

Built to convert, not just to decorate.

Tidy first, deep on demand

Long testimonials collapse to a headline so the section stays compact, then expand to the full story for anyone who wants it — the best of both.

The reader sets the pace

Visitors open only the stories that interest them, which keeps a page of substantial testimonials from feeling like homework.

Behavior and icons are yours

Choose which rows start open, whether several can be expanded at once, the preview length, and the expand icon and its position.

One tag, isolated and async

Rendered in Shadow DOM and loaded asynchronously, the accordion never inherits your CSS bugs or blocks the page load.

Where to put it

Placements that earn their pixels.

Long, substantial testimonials

When your best stories run several paragraphs, collapsing them keeps the section readable while preserving the depth.

FAQ-adjacent proof

The accordion pattern sits naturally beside an FAQ, letting proof and answers share the same familiar interaction.

Compact sections with hidden depth

Fit a lot of potential reading into a small block, and let curious visitors dig in as far as they like.

Live in three steps

From first testimonial to first embed.

01

Collect your testimonials

Gather text and video testimonials with collection forms, import them from CSV, or sync reviews straight from Google, G2, Capterra, Trustpilot, Product Hunt and social media.

02

Pick this style in the builder

Choose the style, then make it yours — colors, fonts, spacing, and per-element design controls, with a live preview of exactly what will ship.

03

Paste one script tag

Copy the embed snippet into any website — WordPress, Webflow, Shopify, Framer, Next.js, anything that renders HTML. Publish updates from the dashboard without touching your site again.

The whole integration

Paste once. Restyle forever from the dashboard.

<div class="retestimonial-widget" data-widget-key="expandable-list"></div>
<script src="https://retestimonial.com/embed.js" async></script>
Shadow DOM — zero CSS conflicts~6KB, loads asyncPublish changes without redeploysWorks on any platform

Your widget key is generated when you create the widget — start free and this snippet is yours (demo key shown: expandable-list).

Keep browsing

Other styles worth a look.

All widget styles →
Questions, answered

Everything else you'd ask.

What platforms can I embed the Expandable List on?

Any site that renders HTML — WordPress, Webflow, Shopify, Squarespace, Framer, Wix, or a custom React or Next.js app. It's one script tag and a div, with no plugin to install.

How do the rows expand and collapse?

Click a row to open it. You choose which rows start expanded, whether several can be open at once, and the expand icon — a chevron, plus or arrow — and where it sits.

Can I show a preview before a row is opened?

Yes — show a short preview of each testimonial in its collapsed state and set how many characters appear, so visitors know which stories to open.

Can it include reviews from Google or G2?

Yes — the accordion renders any testimonial in your project, including reviews synced from Google, G2, Capterra, Trustpilot and Product Hunt.

Is the Expandable List free?

List widgets, including the Expandable List, are available from the Pro plan. The free plan includes the Carousel, Masonry, Badge and Video widget types — and you can preview every style in the builder first.

L·08 · Expandable List

Put this widget on your site today.

Free plan, no card, no code. Collect your first testimonial and this exact widget can be live within the hour.