ReferenceComponents

article_card

A retrieved passage with its source named.

The answer is the policy. article_card shows the passage the copilot retrieved and names where it came from.

It exists because a grounded answer and a confident one look identical in prose. The source line is the difference, and it belongs on screen rather than in the model's good intentions.

Returns policyUnworn shoes can be returned within 30 days for a full refund. Refunds land within 5 business days.
Shipping & returns FAQ

Re-rendered in the browser from the SDK’s own scales. Not a screenshot.

Rendered natively by the Flutter SDK and the Web SDK, both since 0.1.0.

When not to use it

Do not use it when a summary serves better: if the exact wording does not matter, answer in text and keep the turn short.

Do not use it for something you did not retrieve. A named source that was never read is worse than no source, because it converts a guess into a citation.

Props

Every block also carries type and a required fallback_text of 1 to 300 characters.

PropTypeRequiredConstraints
titlestringYes1 to 120 characters.
excerptstringYes1 to 400 characters.
sourcestringYes1 to 80 characters. The knowledge source it came from.
updatedstringNoUp to 40 characters.
ctaobjectNoUsually an open_url to the full document.
cta.labelstringYes1 to 60 characters.
cta.actionactionYes{ kind: "reply", text } or { kind: "open_url", url }. See Actions.

On the wire

{
  "id": "blk_23",
  "type": "article_card",
  "fallback_text": "Unworn shoes can be returned within 30 days, from the shipping and returns FAQ.",
  "props": {
    "title": "Returns policy",
    "excerpt": "Unworn shoes can be returned within 30 days for a full refund. Refunds land within 5 business days after the return is received.",
    "source": "Shipping & returns FAQ",
    "updated": "Updated 4 Aug"
  }
}

Interaction

Only the optional cta. The card itself is a readout.

States

StateWhat the SDK draws
LoadingA title line, two excerpt lines and the CTA button shape, at their real heights.
Long excerptWraps in full; the card grows rather than truncating a policy mid-sentence.
No sourceFails validation. source is required precisely so this block cannot be uncited.

Accessibility

The source sits behind a hairline and is announced after the excerpt, so a screen reader hears the claim and then where it came from. It is set at label weight rather than in the accent, because accent-coloured body ink is 3.3:1 on a light surface.

fallback_text should carry both the answer and the source.