Browser support
REALM targets current evergreen browsers: the latest versions of Chrome, Edge, Firefox and Safari. There is no build step that could down-level the runtime, and there is no legacy fallback.
Every runtime test runs in Chromium, Firefox and WebKit through Playwright, and the site's example apps are tested end to end in all three.
Minimum versions
The oldest versions that have every platform feature REALM uses:
| Browser | Version |
|---|---|
| Chrome and Edge | 125 |
| Firefox | 126 |
| Safari (macOS and iOS) | 17.4 |
The limiting feature is CustomStateSet with the :state() selector, which REALM uses for reactive CSS and loading states.
Platform features used
| Feature | Used for |
|---|---|
| Custom elements and shadow DOM | Every component |
Constructable stylesheets (adoptedStyleSheets) |
Component styles, shared per type |
ElementInternals, CustomStateSet and :state() |
Roles, form association, reactive CSS states, :state(loading) |
| Form-associated custom elements | form-associated components |
delegatesFocus |
delegates-focus components |
Proxy, WeakMap, microtasks |
Reactivity |
AbortController and AbortSignal |
Cleanup and request cancellation |
DOMParser |
Loading component files and sanitising HTML |
IntersectionObserver |
trigger="visible" |
ES2023 (findLast, toReversed) and URL.canParse |
Runtime code and URL props |
Polyfilled or emulated
- focusgroup. The
focusgroupattribute is a proposal that only the newest Chromium versions have started to ship. REALM implements its arrow-key behaviour itself, so it works in every supported browser. See Accessibility. - Invoker commands.
ui-buttonsupportscommandforandcommandnatively where the browser has them, and emulatesshow-modal,closeand the popover commands elsewhere.
REALM UI also uses the Popover API and <dialog>, both available in the versions above.
Not supported
- Internet Explorer and the legacy (EdgeHTML) Edge.
- Browsers with JavaScript disabled: components render nothing without the runtime. See Modern framework problems for server rendering.