Skip to content

Compatibility

Each svebcomponents package remains in beta. Its API may change before 1.0.

RuntimeRequirement
Node20.19 or newer
Svelte5.x with the runes component API
Browser buildscustom elements and shadow DOM
Server-rendered outputdeclarative shadow DOM

svebcomponents does not support Svelte 4 or the legacy component API.

PackagePeer dependencies
@svebcomponents/buildnone
@svebcomponents/auto-optionssvelte ^5
@svebcomponents/ssrsvelte ^5; optional vite ^6 || ^7 || ^8, tsdown >=0.22, and rolldown >=1.0.0-beta
@svebcomponents/ssr-vuevue ^3.5; optional vite ^6 || ^7 || ^8
@svebcomponents/ssr-reactreact ^19
@svebcomponents/ssr-astroastro ^5

@svebcomponents/utils has no peer dependencies. The public packages install it as a dependency.

  • SvelteKit uses the Vite plugin and wrapper components from @svebcomponents/ssr.
  • React 19 uses a JSX runtime or an explicit CustomElement component. React 18 cannot pass custom-element properties and events with the React 19 behavior.
  • Vue 3.5 and Astro 5 use host-specific Vite plugins and wrappers.

The React integration works without Vite. The Vue integration requires Vite. Astro supplies Vite through its build pipeline.

A component that awaits during Svelte’s server render needs compilerOptions.experimental.async in SvelteKit. React Server Components, Vue, and Astro use Svelte’s server renderer outside a Svelte app, so their server entry must import @svebcomponents/ssr/enable-async before it renders such a component. An async server-preparation hook needs an await-capable host but does not need Svelte’s async compiler mode.

Read Async components for each host path.

Install svelte in a React, Vue, or Astro app that server-renders these elements. @svebcomponents/ssr calls Svelte’s server renderer, even when the host app contains no Svelte source.