Browser Support

Espalier targets the latest two major versions of each evergreen browser. The library ships modern JavaScript and CSS with no transpilation or vendor-prefixed fallbacks.


Minimum Browser Versions

The table below lists the effective floor for each browser, determined by the most demanding platform feature Espalier uses.

Browser Minimum Version Release Date
Chrome / Edge 120+ December 2023
Firefox 128+ July 2024
Safari 18+ September 2024

If your users are on a managed browser policy (common in enterprise and government environments), these are the versions to enforce.

What Sets the Floor

Platform Feature Chrome Firefox Safari Used For
CSS Nesting 120+ 117+ 17.2+ Component stylesheets
OKLCH Relative Color Syntax 119+ 128+ 18+ Theme color derivation
Container Queries 105+ 110+ 16+ Responsive component sizing
ElementInternals 77+ 98+ 16.4+ Native form participation
Custom Elements / Shadow DOM All modern All modern All modern Every component
clamp() 79+ 75+ 13.1+ Fluid typography

The highest bar is CSS Nesting (Chrome 120) and Relative Color Syntax (Firefox 128, Safari 18). Both reached Baseline status in late 2024.


Required Polyfills

Espalier does not bundle polyfills. When a standard is not yet universally available, the consuming application is responsible for loading the polyfill. This keeps the library dependency-free and lets you drop the polyfill the moment your browser matrix no longer needs it.

Temporal API

Required for: <esp-date-picker>, <esp-input type="date">

The Temporal API is at TC39 Stage 3. It ships natively in Firefox 139+ and Safari 26+. Until your target browsers all support it, load the polyfill before any Espalier imports:

npm install @js-temporal/polyfill
import { Temporal } from "@js-temporal/polyfill";
globalThis.Temporal = Temporal;

import "@taprootio/taproot-controls";

Or via CDN in your document <head>:

<script src="https://cdn.jsdelivr.net/npm/@js-temporal/polyfill/dist/index.umd.js"></script>

Without the polyfill, <esp-date-picker> renders an inline error message instead of the calendar UI.


Not Supported

Environment Reason
Internet Explorer No custom element or Shadow DOM support
Legacy Edge (EdgeHTML) No custom element or Shadow DOM support
Chrome < 120 Missing CSS Nesting
Firefox < 128 Missing Relative Color Syntax
Safari < 18 Missing Relative Color Syntax
Server-side rendering Espalier is a client-side library; SSR requires a DOM shim such as Lit SSR

Support Policy

Espalier adopts modern platform APIs as they reach specification maturity. There is no transpilation layer, no vendor-prefix fallback, and no backward-compatibility shim built into the library. This is a deliberate architectural choice:

  1. Zero unnecessary weight. Polyfills for features your users already have are dead code.
  2. Clean removal. When a standard ships everywhere, delete the polyfill from your app. No library update required.
  3. Forward compatibility. The code Espalier ships is the code browsers will run natively.

For detailed rationale and per-feature breakdowns, see the Caveats guide.

Where does this show?