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#

ComponentCategoryStatusSource recordManifest
Anchor indexNavigationImplementedRecordedIncluded
AnnouncementContentImplementedRecordedIncluded
AvatarContentImplementedRecordedIncluded
Back to topNavigationImplementedRecordedIncluded
BadgeContentImplementedRecordedIncluded
BreadcrumbsNavigationImplementedRecordedIncluded
ButtonActionImplementedRecordedIncluded
Button groupsActionImplementedRecordedIncluded
CardsContentImplementedRecordedIncluded
ChangelogDataImplementedRecordedIncluded
Code blockContentImplementedRecordedIncluded
Collection navigationNavigationImplementedRecordedIncluded
Companion linkNavigationImplementedRecordedIncluded
Copy as MarkdownActionImplementedRecordedIncluded
Data tableDataImplementedRecordedIncluded
Description listDataImplementedRecordedIncluded
Documentation sidebarNavigationImplementedRecordedIncluded
Filter rowDataImplementedRecordedIncluded
FooterLayoutImplementedRecordedIncluded
Language toggleNavigationImplementedRecordedIncluded
Metadata rowDataImplementedRecordedIncluded
NavigationNavigationImplementedRecordedIncluded
Page headerLayoutImplementedRecordedIncluded
PaginationNavigationImplementedRecordedIncluded
Related postsNavigationImplementedRecordedIncluded
SearchActionImplementedRecordedIncluded
SelectActionImplementedRecordedIncluded
Site statusContentImplementedRecordedIncluded
Skip linkNavigationImplementedRecordedIncluded
Theme toggleActionImplementedRecordedIncluded
TooltipContentImplementedRecordedIncluded
Video embedContentImplementedRecordedIncluded

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#

  1. Set the core profile in both language files: interface_kind: "component", interface_category, and interface_status. Use values defined in data/interfaces.yml.
  2. 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, partial lists a partial path, css lists a stylesheet path, and i18n lists the keys used directly by the component. Do not add an interface_source field to new or updated records.
  3. Add interface_consumers only for known pages or layouts that use the component. Use layout for a source layout; for a page, declare the target site and use an i18n label_key when it is on another site.
  4. Add related_interfaces only when another component or shortcode has a meaningful direct relationship.
  5. Place {{< interface-manifest >}} after the implementation material and before ## Accessibility. It renders a ### Interface manifest using the shared Description list component.
  6. Verify the rendered English and French pages, then update lastmod in 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.