Browser support
u-elements is committed to provide great support for all users and technologies, including older browser versions.
Based on up-to-date statistics from caniuse.com, u-elements currently support 97.71% of all users on Chrome, Edge, Firefox, Firefox for Android, Opera, Safari, Safari on iOS, and Samsung Internet.
Minimum requirements
| Browser version | Release date |
|---|---|
| Chrome 54+ | October 2016 |
| Edge 79+ | January 2020 |
| Firefox 63+ | October 2018 |
| Firefox for Android 151+ | May 2026 |
| Opera 41+ | October 2016 |
| Safari 10.1+ | March 2017 |
| Safari on iOS 10.3+ | March 2017 |
| Samsung Internet 6.2+ | October 2017 |
Web features in use
u-elements tracks browser support by monitoring the web features it uses. This is done by analyzing source code with JSHint and cross-referencing the identified features against MDN Browser Compatibility Data and caniuse.com usage statistics.
Here are the web features used by u-elements that are not yet fully supported by all browsers:
| Feature | Browser support |
|---|---|
| Window.customElements | 97.71% |
| :host | 97.71% |
| :host() | 97.71% |
| Node.getRootNode | 97.72% |
| Element.append | 97.74% |
| Object.entries | 97.74% |
| Element.prepend | 97.74% |
| Object.values | 97.74% |
| Element.attachShadow | 97.88% |
| ShadowRoot.mode | 97.88% |
| ShadowRoot.activeElement | 97.88% |
| ShadowRoot.innerHTML | 97.88% |
| Element.slot | 97.88% |
| ShadowRoot.host | 97.88% |
| Event.composed | 97.91% |
| Node.isConnected | 98.26% |
| KeyboardEvent.key | 98.26% |
| Array.includes | 98.97% |
| Object.assign | 99.33% |
| Array.from | 99.33% |
| Array.of | 99.33% |
| Array.find | 99.33% |
| Array.findIndex | 99.33% |
Content Security Policy (CSP)
u-elements uses constructable stylesheets to inject styles. If the browser does not support constructable stylesheets (iOS 16.3 and older), u-elements will fall back to instead inject an inline <style> element. Be aware that if you enforce a strict Content Security Policy that blocks the style-src-elem directive, these inline <style> elements will be blocked as well and thus cause styling issues for users on iOS 16.3 and older.