Browser support¶
-
We serve JavaScript to any browser that supports fetch. We use esbuild to transpile and minify our JavaScript.
-
We prefix CSS for every browser in our browserslist. We use autoprefixer to add vendor-specific prefixes to rules where necessary.
Outputting browser support metrics¶
Within the root directory, run npx browserslist
to output the set of browser
targets given to autoprefixer
(CSS) transpiling.
Note
A browserslist string is used in package.json
.
See the
browserslist docs
for information on this string and the defaults.
For JavaScript, esbuild
uses the es6
target and
our code conditionally includes JavaScript in browsers that
support fetch.
Note
JavaScript may still be delivered to legacy browsers in the form of our analytics and related scripts.
Current browser support metrics¶
Twice per year we aim to updated the browser metrics that are fed into our browserslist config at @cfpb/browserslist-config.
Per the best practices published by browserslist, we use a 0.2% cutoff with this config for the browsers that get fed into our build systems.
However, for what we actively aim to support and test, we use a higher cutoff of 1%. The current 1% cutoff list is:
and_chr 139
chrome 137
chrome 136
chrome 135
chrome 134
chrome 133
chrome 132
chrome 131
edge 137
edge 136
edge 135
edge 134
edge 133
edge 132
edge 131
ios_saf 18.5
ios_saf 18.4
ios_saf 18.3
ios_saf 18.2
ios_saf 18.1
ios_saf 17.6-17.7