Skip to content
Primitiv home
Framework
Consumption mode

Blockquote

stableSource Figma

A <blockquote> with a left-stroke accent bar and an optional attribution line. tone picks the bar colour (default | accent); size scales the quote and citation type together.

Playground

Density

Preview

A design system is a product serving products, not a gallery of components.

Size
Tone
import { Blockquote } from "@/components/ui/blockquote";
<Blockquote  size="md"  tone="default">  A design system is a product serving products, not a gallery of components.</Blockquote>

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

Installation

npx primitiv add blockquote

Import

import { Blockquote } from "@/components/ui/blockquote";

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

Blockquote

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

PropTypeDefaultDescription
citeReactNodeThe attribution line, rendered in a <cite> beneath the quote. Omitted when not provided. Narrows the native <blockquote cite> attribute (a source URL) to a display string — the RFC 0023 sketch's own shape for this component, mirroring the Omit-narrowing already used elsewhere in the registry (e.g. NavigationMenu.Item.value over <li value>).
tone"default" | "accent"defaultAccent-bar colour.
size"xs" | "sm" | "md" | "lg" | "xl"mdQuote + citation size; data-density scales each size further.

Styling contract

--primitiv-blockquote-border-color--primitiv-blockquote-border-width--primitiv-blockquote-padding-inline--primitiv-blockquote-gap--primitiv-blockquote-quote-color--primitiv-blockquote-citation-color--primitiv-blockquote-font-family--primitiv-blockquote-font-size--primitiv-blockquote-font-weight--primitiv-blockquote-line-height

Accessibility

  • Blockquote renders a real <blockquote>, and cite a real <cite>, so the quotation and its attribution are announced with the right semantics rather than as styled paragraphs.
  • The accent bar is decoration on top of that structure, not the thing that marks the quote — the <blockquote> element carries the meaning, so the distinction survives with styles off.
  • It is content, not a control: no focus or keyboard surface of its own.

Examples

Tones

tone sets the left accent bar: default for a neutral pulled-out passage, accent when the quote is a highlight you want the eye to land on. Both are a bar plus the quote — no icon, no fill.

Density

A design system is a product serving products, not a gallery of components.

A design system is a product serving products, not a gallery of components.

import { Blockquote } from "@/components/ui/blockquote";
<Blockquote>A design system is a product serving products, not a gallery of components.</Blockquote>
<Blockquote tone="accent">A design system is a product serving products, not a gallery of components.</Blockquote>

With attribution

cite adds an attribution line in a <cite> beneath the quote. It is the narrowed native blockquote cite — pass the author or source as text; omit it for an unattributed passage.

Density

A design system is a product serving products, not a gallery of components.

Jina Anne
import { Blockquote } from "@/components/ui/blockquote";
<Blockquote tone="accent" cite="Jina Anne">  A design system is a product serving products, not a gallery of components.</Blockquote>

Sizing

size scales the quote against the surrounding type — sm for a quote inside a card, lg for a section-leading pull. It is not PullQuote: reach for that when you want a large, centred, marks-decorated statement with no attribution.

Density

A design system is a product serving products, not a gallery of components.

A design system is a product serving products, not a gallery of components.

import { Blockquote } from "@/components/ui/blockquote";
<Blockquote size="sm">A design system is a product serving products, not a gallery of components.</Blockquote><Blockquote size="lg">A design system is a product serving products, not a gallery of components.</Blockquote>