Back to Widget Patterns
v2.1Social Proof

Single Quote Testimonial

One prominent customer quote with attribution (name, title, company), optionally with headshot or company logo. The most direct form of social proof when one voice is more credible than many.

Live preview

Rendered with real component code. Each example demonstrates a documented variant.

Minimal style

We shipped our launch microsite in a week instead of a quarter. The pattern documentation meant we never had to guess what good looked like.

Sarah ChenHead of Engineering, Acme Corp

Card style

We shipped our launch microsite in a week instead of a quarter. The pattern documentation meant we never had to guess what good looked like.

Marcus WongCTO, Initech

With headshot

We shipped our launch microsite in a week instead of a quarter. The pattern documentation meant we never had to guess what good looked like.

Priya NairPriya NairVP Product, Globex

React props

Configure the component via props in React or via attributes in HTML.

PropTypeDefaultDescription
quotestringrequiredThe testimonial text shown inside the blockquote
attribution{ name, title?, company?, avatar?, companyLogo? }requiredSpeaker identity; name is required, the rest are optional
style"minimal" | "card" | "with-headshot""minimal"Visual treatment
classNamestringundefinedExtra class appended to the root element

HTML usage

The HTML variant uses the same shared styles and class names. Drop into any stack.

<link rel="stylesheet" href="path/to/single-quote-testimonial/styles.css">

<figure class="sqt sqt--card">
  <blockquote class="sqt__quote">
    <p>We shipped our launch microsite in a week instead of a quarter.</p>
  </blockquote>
  <figcaption class="sqt__attribution">
    <span>
      <span class="sqt__name">Sarah Chen</span>
      <span class="sqt__meta">Head of Engineering, Acme Corp</span>
    </span>
  </figcaption>
</figure>

Customization

Override these CSS custom properties to integrate the component into your brand.

.sqt {
  --sqt-quote-font-size: 1.25rem;
  --sqt-quote-color: var(--brand-ink, #111827);
  --sqt-quote-line-height: 1.7;
  --sqt-name-color: var(--brand-ink, #111827);
  --sqt-meta-color: #6b7280;
  --sqt-card-bg: var(--brand-surface, #f9fafb);
  --sqt-card-border-color: #e5e7eb;
  --sqt-card-border-radius: 0.75rem;
  --sqt-card-padding: 2rem;
  --sqt-avatar-size: 3rem;
  --sqt-max-width: 42rem;
}