-
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.
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](https://github.com/browserslist/browserslist#full-list)
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.
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 123
chrome 126
chrome 125
chrome 124
chrome 123
chrome 122
chrome 121
chrome 120
edge 124
edge 123
edge 122
edge 121
edge 120
ios_saf 17.5
ios_saf 17.4
ios_saf 17.3
ios_saf 17.2
ios_saf 17.1
ios_saf 16.6-16.7