# Testimonials Section v2

> Three-column bordered quotes with serif italic text, square avatars, and company wordmarks.

A shadcn/ui block from the [@uiception](https://uiception.com/?utm_source=shadcn.exchange) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/uiception/testimonials-section-v2).

- Page, with a live preview: https://shadcn.exchange/r/uiception/testimonials-section-v2
- Screenshot: https://shadcn.exchange/shot/uiception/testimonials-section-v2/light.png
- Registry item: https://uiception.com/r/testimonials-section-v2.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://shadcn.exchange/r/uiception/testimonials-section-v2.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `geist`
- Registry items: `https://uiception.com/r/block-media.json`, `avatar`

## Files

### `registry/new-york/blocks/testimonials-section-v2/page.tsx`

```tsx
import TestimonialsSectionV2 from "./components/testimonials-section-v2"

export default function Page() {
  return <TestimonialsSectionV2 />
}
```

### `registry/new-york/blocks/testimonials-section-v2/components/testimonials-section-v2.tsx`

```tsx
import TestimonialColumn from "./testimonial-column"
import { testimonials } from "../lib/testimonials-content"

export default function TestimonialsSectionV2() {
  return (
    <section className="py-4 md:py-6 lg:py-8">
      <div className="mx-auto max-w-6xl px-4">
        <div className="grid grid-cols-1 divide-y divide-border border border-border md:grid-cols-3 md:divide-x md:divide-y-0">
          {testimonials.map((testimonial) => (
            <TestimonialColumn key={testimonial.id} testimonial={testimonial} />
          ))}
        </div>
      </div>
    </section>
  )
}
```

### `registry/new-york/blocks/testimonials-section-v2/components/testimonial-column.tsx`

```tsx
import { GeistSans } from "geist/font/sans"

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"

import CompanyLogo from "./company-logo"
import type { Testimonial } from "../lib/testimonials-content"

export default function TestimonialColumn({
  testimonial,
}: {
  testimonial: Testimonial
}) {
  return (
    <article className="flex min-h-full flex-col">
      <blockquote
        className={`flex-1 px-6 py-8 ${GeistSans.className} text-base leading-relaxed tracking-wide md:px-8 md:py-10`}
      >
        {testimonial.quote}
      </blockquote>
      <footer className="flex items-center justify-between gap-4 border-t border-border px-6 py-5 md:px-8">
        <div className="flex min-w-0 items-center gap-3">
          <Avatar className="size-11 shrink-0 rounded-none">
            <AvatarImage
              src={testimonial.avatarSrc}
              alt={testimonial.name}
              className="object-cover object-center"
            />
            <AvatarFallback>{testimonial.initials}</AvatarFallback>
          </Avatar>
          <div className="min-w-0">
            <p className="truncate font-mono text-xs font-semibold tracking-wide uppercase">
              {testimonial.name}
            </p>
            <p className="truncate text-xs text-muted-foreground">
              {testimonial.title}
            </p>
          </div>
        </div>
        <CompanyLogo logo={testimonial.logo} />
      </footer>
    </article>
  )
}
```

### `registry/new-york/blocks/testimonials-section-v2/components/company-logo.tsx`

```tsx
import type { CompanyLogo } from "../lib/testimonials-content"

export default function CompanyLogo({ logo }: { logo: CompanyLogo }) {
  const Light = logo.light
  const Dark = logo.dark

  if (Dark) {
    return (
      <span className="inline-flex h-5 max-w-24 shrink-0 items-center justify-end md:h-6">
        <Light
          className="block h-full w-auto max-w-full dark:hidden"
          aria-label={logo.name}
        />
        <Dark
          className="hidden h-full w-auto max-w-full dark:block"
          aria-label={logo.name}
        />
      </span>
    )
  }

  return (
    <span className="inline-flex h-5 max-w-24 shrink-0 items-center justify-end md:h-6">
      <Light className="h-full w-auto max-w-full" aria-label={logo.name} />
    </span>
  )
}
```

### `registry/new-york/blocks/testimonials-section-v2/lib/testimonials-content.ts`

```ts
import { createBlockImage } from "@/lib/block-media"

import type { ComponentType, SVGProps } from "react"

import { StripeWordmark } from "@/components/ui/svgs/stripeWordmark"
import { StripeWordmarkDark } from "@/components/ui/svgs/stripeWordmarkDark"
import { GithubWordmarkLight } from "@/components/ui/svgs/githubWordmarkLight"
import { GithubWordmarkDark } from "@/components/ui/svgs/githubWordmarkDark"
import { betterAuthWordmarkLight } from "@/components/ui/svgs/betterAuthWordmarkLight"
import { betterAuthWordmarkDark } from "@/components/ui/svgs/betterAuthWordmarkDark"

export type SvgComponent = ComponentType<SVGProps<SVGSVGElement>>

export type CompanyLogo = {
  name: string
  light: SvgComponent
  dark?: SvgComponent
}

export type Testimonial = {
  id: string
  quote: string
  name: string
  title: string
  avatarSrc: string
  initials: string
  logo: CompanyLogo
}

const blockAvatar = createBlockImage("testimonials-section-v2")

export const testimonials: Testimonial[] = [
  {
    id: "marcus-chen",
    quote:
      "We cut onboarding time in half. The API was straightforward and our team shipped the integration in a single sprint.",
    name: "Marcus Chen",
    title: "Stripe",
    initials: "MC",
    avatarSrc: blockAvatar("avatar-1.png"),
    logo: {
      name: "Stripe",
      light: StripeWordmark,
      dark: StripeWordmarkDark,
    },
  },
  {
    id: "david-park",
    quote:
      "Migration was painless. We moved our entire workflow over without downtime and the team picked it up immediately.",
    name: "David Park",
    title: "GitHub",
    initials: "DP",
    avatarSrc: blockAvatar("avatar-2.png"),
    logo: {
      name: "GitHub",
      light: GithubWordmarkLight,
      dark: GithubWordmarkDark,
    },
  },
  {
    id: "sarah-mitchell",
    quote:
      "Real-time sync across our stack changed how we build. Our agents finally have one source of truth they can trust.",
    name: "Sarah Mitchell",
    title: "Better Auth",
    initials: "SM",
    avatarSrc: blockAvatar("avatar-3.png"),
    logo: {
      name: "Better Auth",
      light: betterAuthWordmarkLight,
      dark: betterAuthWordmarkDark,
    },
  },
]
```

### `components/ui/svgs/stripeWordmark.tsx`

```tsx
import type { SVGProps } from "react";

const StripeWordmark = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} viewBox="0 0 512 214">
    <path
      fill="#635bff"
      d="M512 110.08c0-36.409-17.636-65.138-51.342-65.138-33.85 0-54.33 28.73-54.33 64.854 0 42.808 24.179 64.426 58.88 64.426 16.925 0 29.725-3.84 39.396-9.244v-28.445c-9.67 4.836-20.764 7.823-34.844 7.823-13.796 0-26.027-4.836-27.591-21.618h69.547c0-1.85.284-9.245.284-12.658m-70.258-13.511c0-16.071 9.814-22.756 18.774-22.756 8.675 0 17.92 6.685 17.92 22.756zm-90.31-51.627c-13.939 0-22.899 6.542-27.876 11.094l-1.85-8.818h-31.288v165.83l35.555-7.537.143-40.249c5.12 3.698 12.657 8.96 25.173 8.96 25.458 0 48.64-20.48 48.64-65.564-.142-41.245-23.609-63.716-48.498-63.716m-8.534 97.991c-8.391 0-13.37-2.986-16.782-6.684l-.143-52.765c3.698-4.124 8.818-6.968 16.925-6.968 12.942 0 21.902 14.506 21.902 33.137 0 19.058-8.818 33.28-21.902 33.28M241.493 36.551l35.698-7.68V0l-35.698 7.538zm0 10.809h35.698v124.444h-35.698zm-38.257 10.524L200.96 47.36h-30.72v124.444h35.556V87.467c8.39-10.951 22.613-8.96 27.022-7.396V47.36c-4.551-1.707-21.191-4.836-29.582 10.524m-71.112-41.386-34.702 7.395-.142 113.92c0 21.05 15.787 36.551 36.836 36.551 11.662 0 20.195-2.133 24.888-4.693V140.8c-4.55 1.849-27.022 8.391-27.022-12.658V77.653h27.022V47.36h-27.022zM35.982 83.484c0-5.546 4.551-7.68 12.09-7.68 10.808 0 24.461 3.272 35.27 9.103V51.484c-11.804-4.693-23.466-6.542-35.27-6.542C19.2 44.942 0 60.018 0 85.192c0 39.252 54.044 32.995 54.044 49.92 0 6.541-5.688 8.675-13.653 8.675-11.804 0-26.88-4.836-38.827-11.378v33.849c13.227 5.689 26.596 8.106 38.827 8.106 29.582 0 49.92-14.648 49.92-40.106-.142-42.382-54.329-34.845-54.329-50.774"
    />
  </svg>
);

export { StripeWordmark };
```

### `components/ui/svgs/stripeWordmarkDark.tsx`

```tsx
import type { SVGProps } from "react";

const StripeWordmarkDark = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} viewBox="0 0 512 214">
    <path
      fill="#fff"
      d="M512 110.08c0-36.409-17.636-65.138-51.342-65.138-33.85 0-54.33 28.73-54.33 64.854 0 42.808 24.179 64.426 58.88 64.426 16.925 0 29.725-3.84 39.396-9.244v-28.445c-9.67 4.836-20.764 7.823-34.844 7.823-13.796 0-26.027-4.836-27.591-21.618h69.547c0-1.85.284-9.245.284-12.658m-70.258-13.511c0-16.071 9.814-22.756 18.774-22.756 8.675 0 17.92 6.685 17.92 22.756zm-90.31-51.627c-13.939 0-22.899 6.542-27.876 11.094l-1.85-8.818h-31.288v165.83l35.555-7.537.143-40.249c5.12 3.698 12.657 8.96 25.173 8.96 25.458 0 48.64-20.48 48.64-65.564-.142-41.245-23.609-63.716-48.498-63.716m-8.534 97.991c-8.391 0-13.37-2.986-16.782-6.684l-.143-52.765c3.698-4.124 8.818-6.968 16.925-6.968 12.942 0 21.902 14.506 21.902 33.137 0 19.058-8.818 33.28-21.902 33.28M241.493 36.551l35.698-7.68V0l-35.698 7.538zm0 10.809h35.698v124.444h-35.698zm-38.257 10.524L200.96 47.36h-30.72v124.444h35.556V87.467c8.39-10.951 22.613-8.96 27.022-7.396V47.36c-4.551-1.707-21.191-4.836-29.582 10.524m-71.112-41.386-34.702 7.395-.142 113.92c0 21.05 15.787 36.551 36.836 36.551 11.662 0 20.195-2.133 24.888-4.693V140.8c-4.55 1.849-27.022 8.391-27.022-12.658V77.653h27.022V47.36h-27.022zM35.982 83.484c0-5.546 4.551-7.68 12.09-7.68 10.808 0 24.461 3.272 35.27 9.103V51.484c-11.804-4.693-23.466-6.542-35.27-6.542C19.2 44.942 0 60.018 0 85.192c0 39.252 54.044 32.995 54.044 49.92 0 6.541-5.688 8.675-13.653 8.675-11.804 0-26.88-4.836-38.827-11.378v33.849c13.227 5.689 26.596 8.106 38.827 8.106 29.582 0 49.92-14.648 49.92-40.106-.142-42.382-54.329-34.845-54.329-50.774"
    />
  </svg>
);

export { StripeWordmarkDark };
```

### `components/ui/svgs/githubWordmarkLight.tsx`

```tsx
import type { SVGProps } from "react";

const GithubWordmarkLight = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} xmlSpace="preserve" viewBox="0 0 249.1 67.5">
    <path
      d="M103.4 55.9h-.1s0 .1.1 0m0 .1c-.5 0-1.8.3-3.2.3-4.4 0-5.9-2-5.9-4.6V34.2h8.9c.5 0 .9-.4.9-1.1v-9.5c0-.5-.4-.9-.9-.9h-8.9V10.9c0-.4-.3-.7-.8-.7h-12c-.5 0-.8.3-.8.7V23s-6.1 1.5-6.5 1.6-.7.5-.7.9v7.6c0 .6.4 1.1.9 1.1h6.2v18.3c0 13.6 9.5 15 16 15 3 0 6.5-.9 7.1-1.2.3-.1.5-.5.5-.9V57c0-.5-.4-.9-.8-1m132.1-12.3c0-10.1-4.1-11.4-8.4-11-3.3.2-6 1.9-6 1.9v19.6s2.7 1.9 6.8 2c5.8.2 7.6-1.8 7.6-12.5m13.6-.9c0 19.1-6.2 24.6-17 24.6-9.1 0-14.1-4.6-14.1-4.6s-.2 2.6-.5 2.9c-.2.3-.4.4-.8.4h-8.3c-.6 0-1.1-.4-1.1-.9l.1-62c0-.5.4-.9.9-.9h11.9c.5 0 .9.4.9.9l-.1 20.9s4.6-3 11.3-3h.1c6.8.1 16.7 2.6 16.7 21.7m-48.6-20.1h-11.7c-.6 0-.9.4-.9 1.1v30.3s-3.1 2.2-7.3 2.2-5.4-1.9-5.4-6.1V23.7c0-.5-.4-.9-.9-.9h-11.9c-.5 0-.9.4-.9.9v28.5c0 12.3 6.9 15.3 16.3 15.3 7.8 0 14.1-4.3 14.1-4.3s.3 2.2.4 2.5.5.5.9.5h7.5c.6 0 .9-.4.9-.9l.1-41.7c-.2-.5-.6-.9-1.2-.9m-132.2-.1H56.4c-.5 0-.9.5-.9 1.1v40.9c0 1.1.7 1.5 1.7 1.5h10.7c1.1 0 1.4-.5 1.4-1.5v-41c-.1-.5-.5-1-1-1M62.4 3.8c-4.3 0-7.7 3.4-7.7 7.7s3.4 7.7 7.7 7.7c4.2 0 7.6-3.4 7.6-7.7s-3.4-7.7-7.6-7.7m92-1.4h-11.8c-.5 0-.9.4-.9.9v22.8h-18.5V3.3c0-.5-.4-.9-.9-.9h-11.9c-.5 0-.9.4-.9.9v62c0 .5.5.9.9.9h11.9c.5 0 .9-.4.9-.9V38.8h18.5l-.1 26.5c0 .5.4.9.9.9h11.9c.5 0 .9-.4.9-.9v-62c0-.5-.4-.9-.9-.9M49.1 29.8v32c0 .2-.1.6-.3.7 0 0-7 5-18.5 5-13.8 0-30.3-4.3-30.3-33C0 5.9 14.4-.1 28.4 0c12.2 0 17.1 2.7 17.8 3.2.2.3.3.5.3.8l-2.3 9.9c0 .5-.5 1.1-1.1.9-2-.6-5-1.8-12.1-1.8-8.2 0-17 2.3-17 20.8s8.4 20.6 14.4 20.6c5.1 0 7-.6 7-.6V41.1h-8.2c-.6 0-1.1-.4-1.1-.9V29.8c0-.5.4-.9 1.1-.9h20.9c.6 0 1 .4 1 .9"
      style={{ fill: "#1b1f24" }}
    />
  </svg>
);

export { GithubWordmarkLight };
```

### `components/ui/svgs/githubWordmarkDark.tsx`

```tsx
import type { SVGProps } from "react";

const GithubWordmarkDark = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} xmlSpace="preserve" viewBox="0 0 249.1 67.5">
    <path
      d="M103.4 55.9h-.1s0 .1.1 0m0 .1c-.5 0-1.8.3-3.2.3-4.4 0-5.9-2-5.9-4.6V34.2h8.9c.5 0 .9-.4.9-1.1v-9.5c0-.5-.4-.9-.9-.9h-8.9V10.9c0-.4-.3-.7-.8-.7h-12c-.5 0-.8.3-.8.7V23s-6.1 1.5-6.5 1.6-.7.5-.7.9v7.6c0 .6.4 1.1.9 1.1h6.2v18.3c0 13.6 9.5 15 16 15 3 0 6.5-.9 7.1-1.2.3-.1.5-.5.5-.9V57c0-.5-.4-.9-.8-1m132.1-12.3c0-10.1-4.1-11.4-8.4-11-3.3.2-6 1.9-6 1.9v19.6s2.7 1.9 6.8 2c5.8.2 7.6-1.8 7.6-12.5m13.6-.9c0 19.1-6.2 24.6-17 24.6-9.1 0-14.1-4.6-14.1-4.6s-.2 2.6-.5 2.9c-.2.3-.4.4-.8.4h-8.3c-.6 0-1.1-.4-1.1-.9l.1-62c0-.5.4-.9.9-.9h11.9c.5 0 .9.4.9.9l-.1 20.9s4.6-3 11.3-3h.1c6.8.1 16.7 2.6 16.7 21.7m-48.6-20.1h-11.7c-.6 0-.9.4-.9 1.1v30.3s-3.1 2.2-7.3 2.2-5.4-1.9-5.4-6.1V23.7c0-.5-.4-.9-.9-.9h-11.9c-.5 0-.9.4-.9.9v28.5c0 12.3 6.9 15.3 16.3 15.3 7.8 0 14.1-4.3 14.1-4.3s.3 2.2.4 2.5.5.5.9.5h7.5c.6 0 .9-.4.9-.9l.1-41.7c-.2-.5-.6-.9-1.2-.9m-132.2-.1H56.4c-.5 0-.9.5-.9 1.1v40.9c0 1.1.7 1.5 1.7 1.5h10.7c1.1 0 1.4-.5 1.4-1.5v-41c-.1-.5-.5-1-1-1M62.4 3.8c-4.3 0-7.7 3.4-7.7 7.7s3.4 7.7 7.7 7.7c4.2 0 7.6-3.4 7.6-7.7s-3.4-7.7-7.6-7.7m92-1.4h-11.8c-.5 0-.9.4-.9.9v22.8h-18.5V3.3c0-.5-.4-.9-.9-.9h-11.9c-.5 0-.9.4-.9.9v62c0 .5.5.9.9.9h11.9c.5 0 .9-.4.9-.9V38.8h18.5l-.1 26.5c0 .5.4.9.9.9h11.9c.5 0 .9-.4.9-.9v-62c0-.5-.4-.9-.9-.9M49.1 29.8v32c0 .2-.1.6-.3.7 0 0-7 5-18.5 5-13.8 0-30.3-4.3-30.3-33C0 5.9 14.4-.1 28.4 0c12.2 0 17.1 2.7 17.8 3.2.2.3.3.5.3.8l-2.3 9.9c0 .5-.5 1.1-1.1.9-2-.6-5-1.8-12.1-1.8-8.2 0-17 2.3-17 20.8s8.4 20.6 14.4 20.6c5.1 0 7-.6 7-.6V41.1h-8.2c-.6 0-1.1-.4-1.1-.9V29.8c0-.5.4-.9 1.1-.9h20.9c.6 0 1 .4 1 .9"
      style={{ fill: "#fff" }}
    />
  </svg>
);

export { GithubWordmarkDark };
```

### `components/ui/svgs/betterAuthWordmarkLight.tsx`

```tsx
import type { SVGProps } from "react";

const betterAuthWordmarkLight = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} viewBox="0 0 1024 256">
    <path fill="#000" d="M0 0h1024v256H0z"/><path fill="#fff" d="M96 79h34.699v97.59H96zM203.133 79H240v97.59h-36.867z"/><path fill="#fff" d="M238.916 79v31.446h-69.614V79zM240 145.145v31.446h-70.699v-31.446zM169.301 110.446v34.699h-38.602v-34.699zM281.832 162V93.84h23.424c8.064 0 14.112 1.472 18.144 4.416 4.032 2.944 6.048 7.584 6.048 13.92 0 3.84-1.088 7.072-3.264 9.696-2.112 2.56-5.056 4.192-8.832 4.896 4.672.64 8.32 2.464 10.944 5.472 2.688 2.944 4.032 6.624 4.032 11.04 0 6.208-2.016 10.88-6.048 14.016-4.032 3.136-9.76 4.704-17.184 4.704h-27.264Zm8.256-38.688h15.168c4.992 0 8.832-.928 11.52-2.784 2.688-1.92 4.032-4.576 4.032-7.968 0-7.104-5.184-10.656-15.552-10.656h-15.168v21.408Zm0 30.624h19.008c4.672 0 8.256-.96 10.752-2.88 2.56-1.92 3.84-4.672 3.84-8.256 0-3.584-1.28-6.368-3.84-8.352-2.496-2.048-6.08-3.072-10.752-3.072h-19.008v22.56ZM345.301 162V93.84h42.816v8.064h-34.56v21.984h33.408v7.872h-33.408v22.176h35.328V162h-43.584Zm71.38 0v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm53.906 0v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm36.526 0V93.84h42.816v8.064h-34.56v21.984h33.408v7.872h-33.408v22.176h35.328V162h-43.584Zm56.907 0V93.84h25.824c7.168 0 12.832 1.856 16.992 5.568 4.16 3.712 6.24 8.736 6.24 15.072 0 2.624-.544 5.024-1.632 7.2-1.088 2.112-2.496 3.904-4.224 5.376-1.728 1.472-3.616 2.496-5.664 3.072 3.008.512 5.376 1.728 7.104 3.648 1.792 1.92 2.848 4.64 3.168 8.16l1.92 20.064h-8.352l-1.729-19.2c-.255-2.816-1.279-4.896-3.071-6.24-1.728-1.344-4.576-2.016-8.544-2.016h-19.776V162h-8.256Zm8.256-35.52H590.9c4.16 0 7.456-1.056 9.888-3.168 2.432-2.112 3.648-5.12 3.648-9.024 0-3.968-1.248-7.008-3.744-9.12-2.496-2.176-6.112-3.264-10.848-3.264h-17.568v24.576Zm51.636 11.328v-7.584h31.776v7.584h-31.776ZM661.826 162l24.576-68.16h11.136L722.114 162h-9.024l-6.816-19.392h-28.608L670.85 162h-9.024Zm18.624-27.456h23.04l-11.52-33.504-11.52 33.504Zm75.201 28.992c-5.248 0-9.824-1.024-13.728-3.072-3.84-2.048-6.816-4.96-8.928-8.736-2.048-3.84-3.072-8.352-3.072-13.536V93.744h8.256v44.448c0 5.504 1.504 9.76 4.512 12.768 3.072 3.008 7.392 4.512 12.96 4.512 5.504 0 9.76-1.504 12.768-4.512 3.072-3.008 4.608-7.264 4.608-12.768V93.744h8.256v44.448c0 5.184-1.056 9.696-3.168 13.536-2.048 3.776-4.992 6.688-8.832 8.736-3.84 2.048-8.384 3.072-13.632 3.072ZM811.087 162v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm36.526 0V93.84h8.256v29.856h34.272V93.84h8.256V162h-8.256v-30.24h-34.272V162h-8.256Zm63.83 0v-10.848h10.848V162h-10.848Z"/>
  </svg>
);

export { betterAuthWordmarkLight };
```

### `components/ui/svgs/betterAuthWordmarkDark.tsx`

```tsx
import type { SVGProps } from "react";

const betterAuthWordmarkDark = (props: SVGProps<SVGSVGElement>) => (
  <svg {...props} viewBox="0 0 1024 256">
    <path fill="#FFEAEA" d="M0 0h1024v256H0z"/><path fill="#000" d="M96 79h34.699v97.59H96zM203.133 79H240v97.59h-36.867z"/><path fill="#000" d="M238.916 79v31.446h-69.614V79zM240 145.145v31.446h-70.699v-31.446zM169.301 110.446v34.699h-38.602v-34.699zM281.832 162V93.84h23.424c8.064 0 14.112 1.472 18.144 4.416 4.032 2.944 6.048 7.584 6.048 13.92 0 3.84-1.088 7.072-3.264 9.696-2.112 2.56-5.056 4.192-8.832 4.896 4.672.64 8.32 2.464 10.944 5.472 2.688 2.944 4.032 6.624 4.032 11.04 0 6.208-2.016 10.88-6.048 14.016-4.032 3.136-9.76 4.704-17.184 4.704h-27.264Zm8.256-38.688h15.168c4.992 0 8.832-.928 11.52-2.784 2.688-1.92 4.032-4.576 4.032-7.968 0-7.104-5.184-10.656-15.552-10.656h-15.168v21.408Zm0 30.624h19.008c4.672 0 8.256-.96 10.752-2.88 2.56-1.92 3.84-4.672 3.84-8.256 0-3.584-1.28-6.368-3.84-8.352-2.496-2.048-6.08-3.072-10.752-3.072h-19.008v22.56ZM345.301 162V93.84h42.816v8.064h-34.56v21.984h33.408v7.872h-33.408v22.176h35.328V162h-43.584Zm71.38 0v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm53.906 0v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm36.526 0V93.84h42.816v8.064h-34.56v21.984h33.408v7.872h-33.408v22.176h35.328V162h-43.584Zm56.907 0V93.84h25.824c7.168 0 12.832 1.856 16.992 5.568 4.16 3.712 6.24 8.736 6.24 15.072 0 2.624-.544 5.024-1.632 7.2-1.088 2.112-2.496 3.904-4.224 5.376-1.728 1.472-3.616 2.496-5.664 3.072 3.008.512 5.376 1.728 7.104 3.648 1.792 1.92 2.848 4.64 3.168 8.16l1.92 20.064h-8.352l-1.729-19.2c-.255-2.816-1.279-4.896-3.071-6.24-1.728-1.344-4.576-2.016-8.544-2.016h-19.776V162h-8.256Zm8.256-35.52H590.9c4.16 0 7.456-1.056 9.888-3.168 2.432-2.112 3.648-5.12 3.648-9.024 0-3.968-1.248-7.008-3.744-9.12-2.496-2.176-6.112-3.264-10.848-3.264h-17.568v24.576Zm51.636 11.328v-7.584h31.776v7.584h-31.776ZM661.826 162l24.576-68.16h11.136L722.114 162h-9.024l-6.816-19.392h-28.608L670.85 162h-9.024Zm18.624-27.456h23.04l-11.52-33.504-11.52 33.504Zm75.201 28.992c-5.248 0-9.824-1.024-13.728-3.072-3.84-2.048-6.816-4.96-8.928-8.736-2.048-3.84-3.072-8.352-3.072-13.536V93.744h8.256v44.448c0 5.504 1.504 9.76 4.512 12.768 3.072 3.008 7.392 4.512 12.96 4.512 5.504 0 9.76-1.504 12.768-4.512 3.072-3.008 4.608-7.264 4.608-12.768V93.744h8.256v44.448c0 5.184-1.056 9.696-3.168 13.536-2.048 3.776-4.992 6.688-8.832 8.736-3.84 2.048-8.384 3.072-13.632 3.072ZM811.087 162v-60.096h-21.216V93.84h50.688v8.064h-21.216V162h-8.256Zm36.526 0V93.84h8.256v29.856h34.272V93.84h8.256V162h-8.256v-30.24h-34.272V162h-8.256Zm63.83 0v-10.848h10.848V162h-10.848Z"/>
  </svg>
);

export { betterAuthWordmarkDark };
```

### `public/images/blocks/testimonials-section-v2/avatar-1.png.gitkeep`

```gitkeep
Place your asset here. Same base name, any supported format: jpg, jpeg, png, webp, avif, gif, or svg. Remove the .gitkeep extension from the filename.
```

### `public/images/blocks/testimonials-section-v2/avatar-3.png.gitkeep`

```gitkeep
Place your asset here. Same base name, any supported format: jpg, jpeg, png, webp, avif, gif, or svg. Remove the .gitkeep extension from the filename.
```

### `public/images/blocks/testimonials-section-v2/avatar-2.png.gitkeep`

```gitkeep
Place your asset here. Same base name, any supported format: jpg, jpeg, png, webp, avif, gif, or svg. Remove the .gitkeep extension from the filename.
```
