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 homecore.shell.nav.extra— sidebar extrascrm.contact.detail.tabs— CRM contact detailsales.deal.detail.tabs— sales deal detailsites.navigation.items— public site nav
Guidelines
- Declare fills in manifest with
priorityfor 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.