Browser Support
Scena targets modern browsers that support ES2020+. The compiled output uses async/await, optional chaining, nullish coalescing, and IntersectionObserver — all available in current versions of major browsers without polyfills.
Supported browsers
| Browser | Minimum version |
|---|---|
| Chrome | 80+ |
| Firefox | 80+ |
| Safari | 14+ |
| Edge | 80+ (Chromium-based) |
| Opera | 67+ |
| Samsung Internet | 13+ |
Required Web APIs
Scena relies on the following browser APIs at runtime:
| API | Used for |
|---|---|
IntersectionObserver | Detecting widget visibility in the viewport for autoplay/pause |
ResizeObserver | Adapting widget layout when the container resizes |
customElements | Custom Element registration (defineScenaElement()) |
HTMLVideoElement | Core video playback |
CSS Custom Properties | Theming and dynamic style overrides |
All listed APIs are supported in the browsers above. If you need to support older browsers, include the corresponding polyfills before loading Scena.
Internet Explorer
Internet Explorer is not supported. Scena uses ES Module syntax, CSS custom properties, and modern DOM APIs that have no IE equivalents.
Mobile browsers
Scena works on mobile Chrome, Safari (iOS), Firefox, and Samsung Internet. Note that iOS Safari enforces additional restrictions on video autoplay — the video must be muted for autoplay to work without user interaction. Scena respects these constraints when autoplay: true and muted: true are set in the config.
Node.js
For SSR or prerendering scenarios, Scena requires Node.js 16.0 or later. The CommonJS build is available for require() usage. Note that actual video playback requires a browser DOM — the Node.js build is intended for server-side mounting logic and config preparation.