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.
Registry-only
No headless primitive — this component ships only as a copied styled file, so there is no Headless mode. primitiv add pull-quote installs it whichever mode you are reading.
Playground
Preview
The best interface is the one you never have to think about.
import{PullQuote}from"@/components/ui/pull-quote";<PullQuotesize="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.
Emitted automatically by the headless primitive — style against these rather than adding your own state classes. Grouped by the part that emits them, since most are emitted by more than one.
PullQuote
className:.primitiv-pull-quote
Attribute
Value
When
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
Every example below reacts to the density control. Currently showing Styled mode.
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.
The best interface is the one you never have to think about.
import{PullQuote}from"@/components/ui/pull-quote";<PullQuotesize="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.
The best interface is the one you never have to think about.
import{PullQuote}from"@/components/ui/pull-quote";<PullQuotemarkssize="lg"> The best interface is the one you never have to think about.</PullQuote>