UI extension slots

Embed widgets and tabs into Core and peer modules through declared slots.

Implemented: Core hosts slot regions on the dashboard, CRM contact detail, sales deal detail, and admin nav extra. Fills are loaded from GET /api/v1/core/modules/extensions.

Slots are named regions (e.g. crm.contact.detail.tabs). Your manifest lists slots you slotsProvided and slotsConsumed with a component id from your bundle.

Standard slot catalog

  • core.dashboard.widgets — admin home
  • core.shell.nav.extra — sidebar extras
  • crm.contact.detail.tabs — CRM contact detail
  • sales.deal.detail.tabs — sales deal detail
  • sites.navigation.items — public site nav

Guidelines

  • Declare fills in manifest with priority for ordering.
  • Read data through module APIs — never import another module's internals.
  • Use theme CSS variables (var(--color-primary)) for light/dark support.

See also extension registry.