Explicit host capabilities
Components & Typed Interop
Treat JavaScript components as bounded application modules, not arbitrary web pages.
Explore source ↗Capability
WebScene’s component profile is intentionally versioned and narrower than a browser claim; the boundary stays useful because supported lifecycle, projection, styling, and host calls are explicit and testable.
- 01
Autonomous Custom Elements
- 02
Open and closed Shadow DOM roots
- 03
Default and named slot projection
- 04
Generated typed host capabilities
How it composes
From intent
to working system.
Package
Manifests bind trusted scripts, assets, entry points, and required capabilities.
Component
Registry, upgrade, lifecycle callbacks, attributes, cloning, and connection transitions define reusable elements.
Encapsulate
Shadow roots, scoped styles, inheritance, and slot projection form the current component boundary.
Bridge
Generated interfaces expose only typed application services approved by the native host.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package WebScene.JavaScript.Interop --prerelease<PackageReference Include="WebScene.JavaScript.Interop" Version="VERSION" /><PackageVersion Include="WebScene.JavaScript.Interop" Version="VERSION" />class StatusCard extends HTMLElement { connectedCallback() { this.textContent = "Connected"; }}
customElements.define("status-card", StatusCard);Modules in this capability
Use one layer.
Compose the rest.
Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.