ReviewCard
A single review feed item — Avatar, Rating, date, body, optional photo strip, and a verified-trip badge.
Distinct from Testimonial: Testimonial is curated marketing chrome (quoted, hero-shaped). ReviewCard is the feed item that goes in a paginated list under a listing detail page.
Default#
Loading…
With photos#
Loading…
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
| author * | ReactNode | — | Reviewer display name. |
| authorAvatar | string | undefined | — | Optional author avatar URL. |
| rating * | number | — | Star rating, 0–5. |
| date * | ReactNode | — | When set, renders as a Date — otherwise as a string. |
| dateTime | string | Date | undefined | — | Machine-readable ISO 8601 string (or Date) for the review date. Emitted as `<time dateTime="…">{date}</time>` and threaded into the JSON-LD `datePublished` field. Backwards-compatible: when omitted the visible `date` is rendered without a `dateTime` attribute. |
| body * | ReactNode | — | Review body. |
| photos | readonly string[] | undefined | — | Optional photo URLs (rendered as a horizontal strip). |
| verified | boolean | undefined | — | When true, shows the "Verified trip" badge. |
| subtitle | ReactNode | — | Optional reviewer subtitle (location, member-since date). |
| authorName | string | undefined | — | String version of `author` for the JSON-LD `author.name` field. Required when `author` is JSX — without it the JSON-LD script is suppressed. |
| bodyText | string | undefined | — | String version of `body` for the JSON-LD `reviewBody`. |
| itemReviewedName | string | undefined | — | Name of the thing being reviewed (product, place, service). |
| url | string | undefined | — | Optional URL of the reviewed item. |
| noStructuredData | boolean | undefined | — | Opt out of emitting the schema.org `Review` JSON-LD script. |
Accessibility#
- The card is
<article>for landmark semantics. - Star rating uses the
Ratingprimitive in read-only mode (announced as "4.5 out of 5 stars"). - Date uses
<time>so screen readers and crawlers can read it as a date.