Skip to content

Browser support

The oldest browsers each package works in, the platform features that decide those versions, and what someone on an older browser loses.

Minimum versions

BrowserFull supportWorks, with gapsNot supported
Chrome, Edge111None110 and older
Firefox128113 to 127112 and older
Safari, Safari on iOS16.4None16.3 and older

Full support means every component looks and behaves as its page describes. Works, with gaps means the components run and stay usable, without the features listed under What older browsers lose.

Chrome 111 and Safari 16.4 were released in March 2023, and Firefox 128 in July 2024. Any other browser built on Chromium follows its Chromium version. Chrome and Firefox on iOS run on Safari's engine, so the Safari row applies to them.

Both stylesheets draw the same line. plass-ui/styles.css is compiled for these versions, and a project that imports plass-ui/tailwind.css compiles it with its own Tailwind CSS v4, which targets the same three browsers.

What decides it

CSS decides the line, not JavaScript. A bundler can rewrite newer syntax and a polyfill can add a missing function, but nothing added to a build gives a browser a CSS feature it does not have.

RequirementChromeFirefoxSafariUsed for
color-mix()11111316.2Every colour family's focus ring, soft fill, edge and tinted shadow
Base UI11111316.4The behaviour and accessibility of the interactive components
Tailwind CSS v411112816.4The compiled utilities and the theme values they read

color-mix() is the hard line. In a browser without it, every property that reads one of those tokens falls back to its default. The focus ring disappears together with the hover fills, the coloured edges and the tinted shadows, and someone using a keyboard can no longer see where the focus is.

Base UI supports the browsers that were Baseline Widely Available when its current major version was released. Safari 16.2 and 16.3 have every CSS feature the hard line needs, but they are outside that range, so Safari has no versions that work with gaps.

Tailwind CSS v4 targets Firefox 128, and its compiled utilities carry fallbacks for older Firefox releases. What Firefox 113 to 127 still miss is listed in the next section.

The JavaScript is well below the line. The JavaScript in dist/, in Base UI and in React uses no syntax newer than Chrome 91, Firefox 79 and Safari 14.1.

What older browsers lose

Firefox 113 to 127 run the components without these features:

FeatureFirefoxWithout it
:has()121PlTextField, PlSelect, PlCombobox, PlNumberField, PlRating and the picker fields (PlDatePicker, PlDateRangePicker, PlDateTimePicker, PlTimePicker, PlColorPicker, PlTreeSelect) draw no focus ring. They still take focus; only the ring is missing.
lh unit120A checkbox tick, a radio dot, an alert's glyph and the other icons placed beside a label can sit slightly above the middle of the label's first line.
Intl.Segmenter125PlAnimateTyping advances one code point at a time, so an emoji built from several code points appears in pieces.
@property128The light in PlAnimateLighting stays in place instead of travelling around the edge.

The first row affects keyboard users most, because the fields that lose their ring are the ones they fill in. If an application has to work well with a keyboard, treat Firefox 121 as its minimum.

Newer features used where they exist

Some features are missing from browsers inside the full-support range. Each one is used only where the browser has it, and a browser without it gets the result in the last column.

FeatureChromeFirefoxSafariUsed forWithout it
animation-timeline115Not yet26timeline="view" on the transition effects, which follows the scroll positionThe effect runs on its duration, as it does without timeline
hidden="until-found"10213926.2hiddenUntilFound on PlAccordion and PlCollapsible, which lets find-in-page open a closed panelText inside a closed panel is not found
Intl.Locale week data9915315.4Calendars start the week on the day the locale starts itThe week starts on Sunday unless weekStartsOn is set on the component or on PlassProvider

Firefox before 148 and Safari open the panel that holds the match, but do not scroll to the matched text correctly.

How these versions were found

Every pull request runs the React test suite in the Chromium, Firefox and WebKit builds that Playwright ships, on Linux, Windows and macOS. Those builds follow the current releases, so older versions are not tested.

The versions on this page come from what the package ships, checked against MDN's browser compatibility data: the compiled stylesheet, the JavaScript in dist/, and the Base UI release the package depends on. The Base UI and Tailwind CSS rows are what those projects state for themselves. The page was last checked against plass-ui 1.4.0 and @base-ui/react 1.8.0.

Flutter web

plass_ui adds no browser requirement of its own. The Flutter engine draws every component, and the package has no web-specific code, so a Flutter web app that uses it runs in the same browsers as one that does not. Those browsers are set by the Flutter SDK the app is built with, which is 3.41 or later.

At the time of writing, Flutter's supported platforms page lists these for Flutter 3.47:

BrowserSupportedNot supported
Chrome, EdgeThe latest two versions95 and older
FirefoxThe latest two versions98 and older
Safari15.6 and newer15.5 and older

Flutter does not say whether the versions between the two columns work.

flutter build web compiles to JavaScript. A build with --wasm adds a WebAssembly version and keeps the JavaScript one, which Flutter uses in browsers that cannot run the WebAssembly version. Flutter's WebAssembly page lists which browsers currently run it.

Other platforms

The same holds on Android, iOS, Linux, macOS and Windows: the package runs wherever Flutter 3.41 or later does, and the supported platforms page lists the versions.

Released under the MIT License