Skip to content

Commit c226984

Browse files
committed
Raise the browser floors to Chrome 130, Firefox 132, and Safari 18
A floor applies to a whole major line. We cannot raise it in a minor release, so whatever 6.0 ships caps what every later 6.x feature may use. Earlier in this branch I set the floors on the first versions with native `light-dark()`, which bought 2.18 points of coverage but left v6.x with the oldest baseline we could tolerate rather than the one we want. The low Firefox floor was also wrong on its own terms. `:has()` needs Firefox 121, so Firefox 120 sat inside our support window and could not render our forms, which use `:has()` 28 times in validation alone. The new floors sit on the newest feature v6 already depends on: `:has()` at Firefox 121, `content-visibility` at Firefox 125 and Safari 18, `<details name>` at Firefox 130, `text-wrap: balance` at Chrome 130, and unprefixed `backdrop-filter` at Safari 18. `light-dark()` stays the hard lower bound. Coverage drops from 87.19% to 85.01%. The JavaScript is byte-identical, because every version in both sets handles the syntax we emit. The CSS loses the `-webkit-backdrop-filter` copies on the Dialog and Drawer backdrops, so it fits under the old bundlewatch limit again and this branch no longer needs to raise it.
1 parent 191cb4b commit c226984

7 files changed

Lines changed: 52 additions & 64 deletions

File tree

.browserslistrc

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# because caniuse tracks Chrome for Android as one unversioned entry.
77
#
88
# Run `npx browserslist --coverage` for the real coverage figure. It reports
9-
# about 87% today. Do not read the number off browserslist.dev, because that
9+
# about 85% today. Do not read the number off browserslist.dev, because that
1010
# site pins an old caniuse-db and reports a different result.
1111

1212
last 2 major versions
@@ -18,14 +18,24 @@ not dead
1818
# It costs nothing, because the version is newer than every floor below.
1919
unreleased versions
2020

21-
# Floors sit on the first versions with native CSS `light-dark()` and nesting.
22-
# Below these versions Lightning CSS lowers `light-dark()` to a custom-property
23-
# polyfill, and that polyfill breaks `data-bs-theme` dark mode.
24-
Chrome >= 123
25-
Edge >= 123
26-
Firefox >= 120
27-
iOS >= 17.5
28-
Safari >= 17.5
21+
# These floors are the platform baseline for the whole v6.x line. We cannot raise
22+
# them in a minor release, so they cap what every future 6.x feature may use.
23+
# Each floor sits on the newest feature we already depend on, not the oldest one
24+
# we could tolerate:
25+
# - `:has()` needs Firefox 121. We use it in forms, button groups and cards.
26+
# - `content-visibility` needs Firefox 125 and Safari 18. The accordion
27+
# transitions it with `allow-discrete`.
28+
# - Unprefixed `backdrop-filter` needs Safari and iOS 18. Dialog and Drawer
29+
# blur their `::backdrop`. Below 18, Autoprefixer adds `-webkit-` copies.
30+
# - `text-wrap: balance` needs Chrome 130. We ship it as a utility.
31+
# `light-dark()` sets the hard lower bound (Chrome 123, Firefox 120, Safari 17.5).
32+
# Below it, Lightning CSS lowers `light-dark()` to a custom-property polyfill, and
33+
# that polyfill breaks `data-bs-theme` dark mode. Never go below that bound.
34+
Chrome >= 130
35+
Edge >= 130
36+
Firefox >= 132
37+
iOS >= 18.0
38+
Safari >= 18.0
2939

3040
# Autoprefixer adds `-webkit-mask-*` for UC and QQ, and `-moz-column-gap` for
3141
# KaiOS. Those three engines hold under 0.8% of users between them, so we drop

.bundlewatch.config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
{
2828
"path": "./dist/css/bootstrap.css",
29-
"maxSize": "50.75 kB"
29+
"maxSize": "50.5 kB"
3030
},
3131
{
3232
"path": "./dist/css/bootstrap.min.css",

dist/css/bootstrap.css

Lines changed: 0 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/css/bootstrap.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/css/bootstrap.min.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/css/bootstrap.min.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)