Skip to content
Primitiv home
Framework
Consumption mode

Pull Quote

stableSource Figma

A large, centred editorial quote — no accent bar, no attribution, distinct from Blockquote. Rides the existing heading/* type scale; an optional decorative open-quote mark.

Playground

Density

Preview

The best interface is the one you never have to think about.

Size
import { PullQuote } from "@/components/ui/pull-quote";
<PullQuote size="md" marks>  The best interface is the one you never have to think about.</PullQuote>

Density is set by a data-density ancestor — the Context system, not a PullQuote prop.

Installation

npx primitiv add pull-quote

Import

import { PullQuote } from "@/components/ui/pull-quote";

No headless primitive — this one ships only as a copied styled surface, so primitiv add is the only way in, whichever mode you are reading.

Props

PullQuote

Extends HTMLQuoteElement — every native attribute of that element is accepted and forwarded.

PropTypeDefaultDescription
marksbooleanfalseShow the decorative open-quote mark above the text.
size"xs" | "sm" | "md" | "lg" | "xl"mdQuote size, mapped to the heading/* scale (xs→h5 ... xl→h1); data-density scales each size further.

Styling contract

--primitiv-pull-quote-font-family--primitiv-pull-quote-font-size--primitiv-pull-quote-line-height--primitiv-pull-quote-font-weight--primitiv-pull-quote-color--primitiv-pull-quote-mark-color--primitiv-pull-quote-mark-gap--primitiv-pull-quote-mark-height

Data attributes

PullQuote

className: .primitiv-pull-quote

AttributeValueWhen
data-marks""marks is true

Accessibility

  • PullQuote renders a real <blockquote>, so the passage is announced as a quotation even though it reads visually as a heading-scale statement.
  • The marks glyph is decorative and aria-hidden, so it is skipped by assistive tech — the quote is read once, without a stray quotation mark spelled out.
  • Reach for Blockquote when the quote is cited — PullQuote carries no attribution by design, so an unattributed editorial lift is its whole job.

Examples

An editorial pull

A large, centred statement lifted out of the flow — the sentence an article is built around. Unlike Blockquote it has no accent bar and no attribution: it is a typographic moment, not a cited passage. size steps it along the heading scale.

Density

The best interface is the one you never have to think about.

import { PullQuote } from "@/components/ui/pull-quote";
<PullQuote size="lg">  The best interface is the one you never have to think about.</PullQuote>

Decorative marks

marks adds an oversized quotation glyph above the quote — the magazine treatment. It is purely decorative and aria-hidden, so it adds visual weight without changing what a screen reader reads.

Density

The best interface is the one you never have to think about.

import { PullQuote } from "@/components/ui/pull-quote";
<PullQuote marks size="lg">  The best interface is the one you never have to think about.</PullQuote>