diff --git a/.changeset/tame-pants-pay.md b/.changeset/tame-pants-pay.md new file mode 100644 index 000000000000..a2a056a3b9e8 --- /dev/null +++ b/.changeset/tame-pants-pay.md @@ -0,0 +1,5 @@ +--- +"@biomejs/biome": patch +--- + +Fixed [#9081](https://github.com/biomejs/biome/issues/9081): The `noUnknownPseudoElement` rule no longer reports false positives for any known pseudo elements in CSS modules. This was a regression introduced in v2.4.0. diff --git a/crates/biome_css_analyze/src/lint/correctness/no_unknown_pseudo_element.rs b/crates/biome_css_analyze/src/lint/correctness/no_unknown_pseudo_element.rs index 7e12fc2d116b..c00942417910 100644 --- a/crates/biome_css_analyze/src/lint/correctness/no_unknown_pseudo_element.rs +++ b/crates/biome_css_analyze/src/lint/correctness/no_unknown_pseudo_element.rs @@ -161,11 +161,8 @@ fn should_not_trigger( let lowercase = pseudo_element_name.to_ascii_lowercase_cow(); let lowercase = &lowercase.as_ref(); - if file_source.is_css_modules() { - return ["global", "local"].contains(lowercase); - } - - !vender_prefix(pseudo_element_name).is_empty() + (file_source.is_css_modules() && ["global", "local"].contains(lowercase)) + || !vender_prefix(pseudo_element_name).is_empty() || is_pseudo_elements(lowercase) || should_ignore(pseudo_element_name, options) } diff --git a/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css b/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css new file mode 100644 index 000000000000..93a30e253daa --- /dev/null +++ b/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css @@ -0,0 +1,11 @@ +/* should not generate diagnostics */ + +/* CSS modules specific */ +:global(.foo), +:local(.foo) {} + +/* https://github.com/biomejs/biome/issues/9081 */ +* { + &::after, + &::before {} +} diff --git a/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css.snap b/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css.snap new file mode 100644 index 000000000000..230de524f2e4 --- /dev/null +++ b/crates/biome_css_analyze/tests/specs/correctness/noUnknownPseudoElement/valid.module.css.snap @@ -0,0 +1,19 @@ +--- +source: crates/biome_css_analyze/tests/spec_tests.rs +expression: valid.module.css +--- +# Input +```css +/* should not generate diagnostics */ + +/* CSS modules specific */ +:global(.foo), +:local(.foo) {} + +/* https://github.com/biomejs/biome/issues/9081 */ +* { + &::after, + &::before {} +} + +```