Skip to main content
Version: latest
Server Component

Quote is best rendered on the server. Use the standard import (e.g. @prokodo/ui/quote) — the library detects the runtime automatically.

Quote

Quote renders a semantically correct <blockquote> with optional author attribution and a decorative accent. Common use cases include testimonials, pull-quotes, and cited passages.

Live demo →

Overview

import { Quote } from "@prokodo/ui/quote"
;<Quote
text="prokodo UI saved us weeks of development time."
author="Jane Doe"
role="CTO, Acme Corp"
/>

Import

import { Quote } from "@prokodo/ui/quote"

CSS:

import "@prokodo/ui/quote.css"

Props

PropTypeDefaultRequiredDescription
contentstringQuote body text.
authorQuoteAuthorAuthor info: { avatar?: ImageProps, name: string, position?: string }.
titleQuoteHeadlineOptional headline above the quote.
subTitlestringSub-headline text.
colorVariantsAccent color variant.
classNamestringCSS class on root element.

See src/components/quote/Quote.model.ts for the full QuoteProps type.


Design Tokens

Quote does not define component-specific CSS custom properties. Override appearance by customising the following global design-system tokens on :root or a scoped ancestor:

TokenDescription
--pk-space-lgHeadline bottom padding and avatar margin
--pk-space-xsAuthor position top padding
--pk-color-fgAuthor name text color
--pk-color-mutedAuthor position text color

color prop: Applies to the sub-headline, avatar, and now also to the card's border colour and background tint. All visual elements respond consistently to a single color token.


WCAG 2.2 Status

CriterionNameStatusNote
1.3.1Info and Relationships (A)✅ FulfilledSemantic structure (headings, lists, labels, landmarks) must be conveyed programmatically via HTML or ARIA.
1.3.2Meaningful Sequence (A)🔍 Manual reviewContent reading order in the DOM must match the intended visual presentation order.
1.4.3Contrast (Minimum) (AA)🔍 Manual reviewText must have a contrast ratio of at least 4.5:1 (3:1 for large text). Verify against the final product theme.
2.4.6Headings and Labels (AA)🔍 Manual reviewHeadings and labels must describe the topic or purpose of their associated content.
4.1.2Name, Role, Value (A)🔍 Manual reviewName, role, and state of all interactive UI components must be programmatically determinable via native HTML semantics or ARIA.

Test coverage: 3 jest-axe assertion(s) across 1 test file(s) · 0 ARIA attribute occurrence(s) in source scan. Criteria marked 🔍 require manual verification in the final product integration and theme context.

Storybook

👉 Open Quote in Storybook


Source

src/components/quote/Quote.model.ts