Testimonials

Minimal Pull Quote

Plain single testimonial: a large centered quote with the speaker's name and role below. Theme tokens only, light and dark.

Free, MIT licenseOpen in Browse
import {
  Quote,
  QuoteAuthor,
  QuoteAuthorName,
  QuoteAuthorRole,
  QuoteFigure,
} from "@/components/editorial/quote"
import {
  Section,
  SectionContent,
} from "@/components/editorial/section"

// The copy: change text here, not in the markup.
const COPY = {
  quote:
    "We used to lose a day every release to finding out who had signed off. Now the answer is on the page before anyone asks.",
  name: "Mara Ilves",
  role: "Head of Product, Lantern Row",
} as const

export default function MinimalTestimonials01() {
  return (
    <Section>
      <SectionContent>
        <QuoteFigure variant="centered">
          <Quote size="xl">
            <p>{COPY.quote}</p>
          </Quote>
          <QuoteAuthor>
            <QuoteAuthorName>{COPY.name}</QuoteAuthorName>
            <QuoteAuthorRole>{COPY.role}</QuoteAuthorRole>
          </QuoteAuthor>
        </QuoteFigure>
      </SectionContent>
    </Section>
  )
}

Installation

pnpm dlx shadcn add @01orbital/minimal-testimonials-01
npx shadcn add @01orbital/minimal-testimonials-01
yarn shadcn add @01orbital/minimal-testimonials-01
bunx --bun shadcn add @01orbital/minimal-testimonials-01

Free under the MIT license. Add the @01orbital registry to components.json once (install guide), then run the command.

It lands at components/blocks/testimonials/minimal-testimonials-01/index.tsx, as source you own and edit.

Usage

import MinimalTestimonials01 from "@/components/blocks/testimonials/minimal-testimonials-01"

export default function Example() {
  return <MinimalTestimonials01 />
}

Dependencies

Registry pieces it installs with it: