# Testimonials grid (motion)

> The testimonials grid, with quotes appearing one after another as you scroll to it.

Facade UI item `testimonials-grid-motion` (block, motion).
Docs page: https://facadeui.dev/components/testimonials-grid-motion · Registry JSON: https://facadeui.dev/r/testimonials-grid-motion.json

## Install

```bash
npx shadcn@latest add @facade/testimonials-grid-motion
```

Or by URL: `npx shadcn@latest add https://facadeui.dev/r/testimonials-grid-motion.json`. The CLI also installs what it needs: @facade/motion-primitives, @facade/testimonials-grid.

Files: `components/sections/testimonials-grid-motion.tsx`

Usage example as an installable item: `npx shadcn@latest add @facade/testimonials-grid-motion-demo` (lands in components/examples/).

## Usage

The source of the preview on the docs page. `./content` holds sample data.

```tsx
"use client"

/**
 * The `testimonials-grid` demo, with the motion variant swapped in.
 *
 * Identical props: the motion variant only changes which slot components
 * the static section renders through.
 *
 * `"use client"` is required here, not incidental: the motion variant is a
 * client component, and icon components cannot cross a server-to-client
 * boundary as props. See the note on `IconComponent`.
 */

import { TestimonialsGridMotion } from "@/components/sections/testimonials-grid-motion"

import { QUOTES } from "./content"

export function Demo() {
  return (
    <TestimonialsGridMotion
      eyebrow="Customers"
      title="What teams say"
      description="Masonry columns flow in document order, so reading order still matches what you see."
      items={QUOTES}
      columns="masonry"
    />
  )
}
```
