WORK-697
ID:WORK-697Status:done

Pullquote is the featured quotation, with its attribution

SPEC-185 D2, D4, D6 (the after form) and D9: pullquote renders a featured quotation as a <figure>, reads its attribution from the paragraph after the quote, takes prominence, gains the quote alias, and deprecates variant.

Priority:mediumComplexity:complexMilestone:v0.47.0Source:SPEC-185

Criteria completion

Criteria completion: 7 of 7 (100%) checked; history from Nov 1 to Nov 30%25%50%75%100%Nov 1Nov 3
Branches 1
History 3
  1. aaa6b62
    • ☑ `pullquote` renders `<figure data-quote="featured"><blockquote>…</blockquote>[<figcaption>…</figcaption>]</figure>`, never a nested blockquote (D4)
    • ☑ `excerpt` renders an `<aside aria-hidden="true" data-quote="excerpt">` holding the same structure (D4)
    • ☑ An attribution paragraph after the quote (`**Name** — Source`) is read as one group with it and rendered as `<figcaption>` with `<cite>` (D6)
    • ☑ `quote` is an alias of `pullquote` (D4)
    • ☑ The prominence facet applies to a featured quotation or an excerpt, and Lumina ramps the quote's size by step (D9)
    • ☑ `variant` warns as deprecated, `accent` maps to `tint` and `prominence="prominent"`, and `align` stays (D2)
    • ☑ The pullquote reference page describes roles, not looks, and shows the attribution and `excerpt`
    by bjornolofandersson
  2. 6e4cec3
    Created (ready)by bjornolofandersson
  3. f315698
    Content editedby Claude
    Withdraw pullquote variant="plain"; v0.47.0 planned for SPEC-185 and SPE

Acceptance Criteria

  • pullquote renders <figure data-quote="featured"><blockquote>…</blockquote>[<figcaption>…</figcaption>]</figure>, never a nested blockquote (D4)
  • excerpt renders an <aside aria-hidden="true" data-quote="excerpt"> holding the same structure (D4)
  • An attribution paragraph after the quote (**Name** — Source) is read as one group with it and rendered as <figcaption> with <cite> (D6)
  • quote is an alias of pullquote (D4)
  • The prominence facet applies to a featured quotation or an excerpt, and Lumina ramps the quote's size by step (D9)
  • variant warns as deprecated, accent maps to tint and prominence="prominent", and align stays (D2)
  • The pullquote reference page describes roles, not looks, and shows the attribution and excerpt

Blocked by

  • WORK-692
  • WORK-696

References

  • SPEC-185: D2, D4, D6, D9.

Resolution

Completed: 2026-11-03

Branch: claude/milestone-v0-44-0-ism7ni PR: refrakt-md/refrakt#762

What was done

  • packages/runes/src/tags/pullquote.ts: the root is a <figure data-quote="featured"> (or <aside aria-hidden="true" data-quote="excerpt"> holding the figure). It has a conditional content model: a blockquote plus an optional **Name** — Source attribution paragraph, else paragraphs as the quote. Also added renderAttribution (figcaption/cite), the excerpt attribute, and the variant deprecation mapping accent to tint="subtle" + prominence="prominent".
  • packages/transform/src/facets/prominence.ts: takesProminence with the featured-quotation capability (FEATURED_QUOTATION_CAPABILITY), used by the facet and the contract.
  • packages/runes/src/config.ts / index.ts: dropped the variant modifier, provides: ['prose', 'featured-quotation'], the quote alias, the new snippet.
  • packages/lumina/styles/elements/blockquote.css: the featured/excerpt role styles, with the glyph shared as --rf-glyph-quote and sized to the quote. runes/pullquote.css is now placement only; skeleton trimmed to figure margins and floats.
  • Tests, fixture, contracts, rune-attributes, snippet, reference and theme docs updated.

Notes

  • The attribution is read only in the blockquote form: in the paragraph-only form a last paragraph opening in bold would be misread.
  • --rf-title-size is set on the role at raised specificity so the prominence ramp starts from the quote's resting size whatever the density.