cssnano
cssnano copied to clipboard
[Bug]: Case insensitive attribute selector is escaped incorrectly
Describe the bug
Given this selector: [data--~="is½" i] {}
Used with HTML like this: <span data--="myThing is½">
or <span data--="MYTHING IS½">
.
The processed output selector [data--~=is\BD i] {}
will not match due to lacking whitespace.
That output is understood as equivalent of [data--~="is½i"]
. Notice the letter i has moved from outside the quotes to inside.
Expected behaviour
The selector should match even after processing.
So either don't escape the ½ and other similar characters, or add one extra whitespace to the output after the escape sequence so that the insensitivity indicator doesn't get understood as part of the string: [data--~=is\BD i] {}
Just in case it isn't obvious; two space characters are required to keep the insensitivity indicator separate.
Steps to reproduce
Run minify with any CSS file that has ½ (or other special character) as the last character of a case insensitive attribute selector.
Version
6.0.1
Preset
(no preset)
Environment
System:
OS: Windows 10 10.0.19045
CPU: (16) x64 AMD Ryzen 7 4800HS with Radeon Graphics
Memory: 6.94 GB / 15.42 GB
Package details
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | +-- [email protected] deduped
| | | `-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | `-- [email protected] deduped
| `-- [email protected] deduped
+-- [email protected]
| +-- [email protected]
| | `-- [email protected] deduped
| +-- [email protected]
| | `-- [email protected] deduped
| `-- [email protected] deduped
`-- [email protected]
Additional context
No response