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 input-type="date">

The Temporal API provides date and time types. Espalier expects it on globalThis.Temporal. If a supported browser does not provide it, install the polyfill before loading Espalier:

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

await import("@taprootio/espalier");

Or via CDN in your document <head>:

<script src="https://cdn.jsdelivr.net/npm/@js-temporal/polyfill/dist/index.umd.js"></script>
<script>
  globalThis.Temporal ??= temporal.Temporal;
</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 ships modern JavaScript and CSS without a transpilation layer or built-in compatibility shims. Load polyfills in your application when needed, and remove them when your browser matrix supports the feature natively.

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

Components API Guides Getting started Styling Espalier Browser support GitHub npm package Taproot I/O