diff --git a/crates/swc_css_codegen/src/lib.rs b/crates/swc_css_codegen/src/lib.rs index 7b7f110128ce..c3d33cbc88c6 100644 --- a/crates/swc_css_codegen/src/lib.rs +++ b/crates/swc_css_codegen/src/lib.rs @@ -2486,7 +2486,17 @@ where formatting_space!(self); } _ => { - space!(self) + let next = nodes.get(idx + 1); + + match next { + Some(PseudoClassSelectorChildren::Delimiter(Delimiter { + value: DelimiterValue::Comma, + .. + })) => {} + _ => { + space!(self) + } + } } } } diff --git a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/input.css b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/input.css index dcad4860119d..389c5c1262db 100644 --- a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/input.css +++ b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/input.css @@ -5,3 +5,5 @@ html:lang(de) {} html:lang(de, fr) {} :lang(fr-be) > q {} :lang(de) > q {} +:lang(zh, "*-hant") {} +:lang("*-hant", zh) {} diff --git a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.css b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.css index b5eafecfa129..389c5c1262db 100644 --- a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.css +++ b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.css @@ -2,6 +2,8 @@ :lang("*-Latn") {} html:lang(fr-be) {} html:lang(de) {} -html:lang(de , fr) {} +html:lang(de, fr) {} :lang(fr-be) > q {} :lang(de) > q {} +:lang(zh, "*-hant") {} +:lang("*-hant", zh) {} diff --git a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.min.css b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.min.css index e5871b218b2c..462de0716a19 100644 --- a/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.min.css +++ b/crates/swc_css_codegen/tests/fixture/selectors/pseudo-class/lang/output.min.css @@ -1 +1 @@ -:lang(\*-Latn){}:lang("*-Latn"){}html:lang(fr-be){}html:lang(de){}html:lang(de ,fr){}:lang(fr-be)>q{}:lang(de)>q{} +:lang(\*-Latn){}:lang("*-Latn"){}html:lang(fr-be){}html:lang(de){}html:lang(de,fr){}:lang(fr-be)>q{}:lang(de)>q{}:lang(zh,"*-hant"){}:lang("*-hant",zh){}