Wrap any content — image, video, text block — and a clickable “Pr” squircle tag appears. Clicking it opens a credentials-style popover showing date, producer, AI tool used, license, and verification status.The badge is intentionally always dark (near-black with white text) so it stands out as a provenance mark on any background, regardless of your app’s light/dark theme.
- Preview
- Code
What the preview shows
The preview demonstrates two real-world scenarios from “The Illustrated Article” — a published piece with four contributors:- Sarah Kim (human) — wrote the original draft
- Illustrated Digest (organisation) — publisher and editorial team
- Claude Opus 4.6 (AI) — polished the article text
- Flux Schnell (AI) — generated the header image
The popover
Clicking the “Pr” tag opens a provenance credentials card with clean labeled rows:| Row | Source |
|---|---|
| Date | Timestamp of the primary action |
| Produced by | Primary creator entity name |
| App or tool used | AI provider + model (from ext:ai@1.0.0) |
| License | License identifier (from ext:license@1.0.0) |
| Signed with | Verification policy (from ext:verification@1.0.0) |
onViewDetail) navigates to a detail page.
Font
The “Pr” mark defaults to Red Hat Display. If your app already loads Red Hat Display it will be used automatically. Override with the CSS variable:Props
| Prop | Type | Default | Description |
|---|---|---|---|
cid | string | — | Resource CID — auto-fetches bundle |
bundle | ProvenanceBundle | — | Pre-fetched bundle (skips auto-fetch) |
children | ReactNode | — | Content to wrap (image, video, text, etc.) |
position | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "bottom-right" | Tag position in floating mode |
size | "sm" | "md" | "lg" | "md" | Tag size (24 / 32 / 44 px square) |
variant | "floating" | "inline" | "floating" | Layout mode |
popoverSide | "top" | "bottom" | "left" | "right" | "bottom" | Popover opening direction |
onViewDetail | () => void | — | Called when user clicks “View full provenance” |
loadingSlot | ReactNode | — | Custom loading state |
errorSlot | ReactNode | — | Custom error state |
className | string | — | Additional CSS class on the wrapper |