Testimonials
Testimonials Logos
A label and a heading beside an endless strip of client logos with faded edges.
Layout and motion from the Ciketo template — see it in contextBlocks come with Pro
Preview every block now, in any theme and at any width. The source, the install command and the AI prompt unlock when Pro opens, once the catalog reaches 20 templates.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| label | string | Trusted by | Small muted line above the heading. |
| title | string | — | Heading (h2, up to 320px wide beside the ticker). |
| logos | { name, logo? }[] | 6 wordmarks | Each client's name and logo: an image { src, alt? } (16px tall, its own width; alt defaults to the name), any node such as an inline SVG, or nothing — then the name is set as a wordmark. |
| speed | number | 20 | Pixels per second, to the left. |
| regionLabel | string | Clients | The name of the ticker region for screen readers. |
| className | string | — | Classes for the <section>. |
- Below 768px the text and the ticker stack 30px apart; from 768px they share a row, centred on each other, 30px apart (50px from 1024px). Logos are 16px tall, 60px apart. The band takes half of --section-y above and below, so a theme's spacing scales it.
- Motion (marquee): the logos run left at 20px/s, endlessly, with faded edges and no pause on hover; with reduced motion they stand still. The first copy is read by screen readers, the copies that make the loop are hidden (aria-hidden, inert).
- Blocks carry no image files, so the demo logos are text wordmarks with a small inline mark. Replace them with your clients' logos as images or SVG nodes (give images the client's name as alt text). Ciketo's orange, uppercase label and Inter were left out.











