Figure Caption
Open Source
NewValid figure or table caption with deterministic per-surface numbering and explicit unnumbered mode.
API and behavior
Compound exports, owned slots, interaction law, and family hook routing.
- Required props
placementchildrencaptionKey | number | unnumbered- Optional props
captionTitlesource- Controlled props
- None
- Companion exports
CaptionCounterScopeFigureCaption- Owned data-slot contract
figure-captionfigure-caption-numberfigure-caption-titlefigure-caption-contentfigure-caption-source
Motif route
MOTIF_REGISTRY.figure-caption → apparatusTarget('figure-caption')
Keyboard
Caption links or source nodes retain native behavior.
Accessibility
Figures use figcaption below; tables use a real caption element above with deterministic counters.
Family hooks
Journal consumes caption, reference-ink, plate, and tabular-number hooks.
numbered figurevalid table captionunnumbered long sourceInstallation
npx shadcn@latest add @substrateui/figure-caption --yesUpgrading a project that installed base before F1? Refresh the shared hooks first:
npx shadcn@latest add @substrateui/base --yes --overwritenpm Dependencies
npm install class-variance-authorityTags
journalcaptionfiguretable