diff --git a/crates/swc_css_minifier/src/compressor/mod.rs b/crates/swc_css_minifier/src/compressor/mod.rs index ecb5d8f7a89..528fb362afe 100644 --- a/crates/swc_css_minifier/src/compressor/mod.rs +++ b/crates/swc_css_minifier/src/compressor/mod.rs @@ -213,7 +213,11 @@ impl VisitMut for Compressor { ..self.ctx })); - self.compress_calc_sum(n); + // Don't touch `@supports`, it can be used to check a browser's support for one + // or more specific CSS features + if !self.in_supports_conidition { + self.compress_calc_sum(n); + } } fn visit_mut_component_value(&mut self, n: &mut ComponentValue) { diff --git a/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/input.css b/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/input.css index cb237526400..abbdf4b2ec2 100644 --- a/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/input.css +++ b/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/input.css @@ -21,3 +21,9 @@ background: red; } } + +@supports (width: calc(100px * sqrt(9))) { + div { + background: red; + } +} diff --git a/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/output.min.css b/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/output.min.css index 734301b38f9..0b945a538d1 100644 --- a/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/output.min.css +++ b/crates/swc_css_minifier/tests/fixture/compress-calc/supports-condition/output.min.css @@ -1 +1 @@ -@supports(width:200px){div{background:red}}@supports(width:200px){div{background:red}}@supports(width:0){div{background:red}}@supports(width:0){div{background:red}} +@supports(width:calc(100px + 100px)){div{background:red}}@supports(width:calc(100px + 100px)){div{background:red}}@supports(width:calc(0px*100)){div{background:red}}@supports(width:calc(0px + 0px)){div{background:red}}@supports(width:calc(100px*sqrt(9))){div{background:red}}