Component migration
Use this page to migrate a component to the shared documentation model. The audit matrix is generated from component front matter and source Markdown, so it remains current as migrations land.
Audit matrix#
| Component | Category | Status | Source record | Manifest |
|---|---|---|---|---|
| Anchor index | Navigation | Implemented | Recorded | Included |
| Announcement | Content | Implemented | Recorded | Included |
| Avatar | Content | Implemented | Recorded | Included |
| Back to top | Navigation | Implemented | Recorded | Included |
| Badge | Content | Implemented | Recorded | Included |
| Breadcrumbs | Navigation | Implemented | Recorded | Included |
| Button | Action | Implemented | Recorded | Included |
| Button groups | Action | Implemented | Recorded | Included |
| Cards | Content | Implemented | Recorded | Included |
| Changelog | Data | Implemented | Recorded | Included |
| Code block | Content | Implemented | Recorded | Included |
| Collection navigation | Navigation | Implemented | Recorded | Included |
| Companion link | Navigation | Implemented | Recorded | Included |
| Copy as Markdown | Action | Implemented | Recorded | Included |
| Data table | Data | Implemented | Recorded | Included |
| Description list | Data | Implemented | Recorded | Included |
| Documentation sidebar | Navigation | Implemented | Recorded | Included |
| Filter row | Data | Implemented | Recorded | Included |
| Footer | Layout | Implemented | Recorded | Included |
| Language toggle | Navigation | Implemented | Recorded | Included |
| Metadata row | Data | Implemented | Recorded | Included |
| Navigation | Navigation | Implemented | Recorded | Included |
| Page header | Layout | Implemented | Recorded | Included |
| Pagination | Navigation | Implemented | Recorded | Included |
| Related posts | Navigation | Implemented | Recorded | Included |
| Search | Action | Implemented | Recorded | Included |
| Select | Action | Implemented | Recorded | Included |
| Site status | Content | Implemented | Recorded | Included |
| Skip link | Navigation | Implemented | Recorded | Included |
| Theme toggle | Action | Implemented | Recorded | Included |
| Tooltip | Content | Implemented | Recorded | Included |
| Video embed | Content | Implemented | Recorded | Included |
Source record reports whether the page has a verified interface_implementation evidence map. Pending implementation is expected for a specified component; it has no source evidence or manifest until it is built. Manifest reports whether the page calls {{< interface-manifest >}}. Neither column infers implementation details; a maintainer must verify them from source before recording them.
Migration recipe#
- Set the core profile in both language files:
interface_kind: "component",interface_category, andinterface_status. Use values defined indata/interfaces.yml. - Audit the implementation. Record only verified evidence in
interface_implementation, keyed by mechanism. Each value is the relevant source file or static i18n key. For example,partiallists a partial path,csslists a stylesheet path, andi18nlists the keys used directly by the component. Do not add aninterface_sourcefield to new or updated records. - Add
interface_consumersonly for known pages or layouts that use the component. Uselayoutfor a source layout; for a page, declare the targetsiteand use an i18nlabel_keywhen it is on another site. - Add
related_interfacesonly when another component or shortcode has a meaningful direct relationship. - Place
{{< interface-manifest >}}after the implementation material and before## Accessibility. It renders a### Interface manifestusing the shared Description list component. - Verify the rendered English and French pages, then update
lastmodin both files.
Migration order#
Migrate implemented components by category. Start with navigation because Anchor index establishes the pattern and its consumers are already known. Continue with data components, then action, content, and layout. Leave specified components without implementation sources or a manifest until implementation exists.
Every implemented component must use the evidence-map form in both language files; npm run lint:interfaces enforces that contract and bilingual parity. Leave a specified component without implementation evidence or a manifest until it is built. The grouped Components index reads the canonical interface_category field.