Closed
Description
Describe the bug
After upgrading to Svelte 5.x (specifically after PR #16179) the CSS pruning algorithm incorrectly flags CSS selectors as unused when they target classes applied via class:
directives.
Reproduction
Component code:
<script>
let collapsed = false;
</script>
<div class="sidebar" class:collapsed={collapsed}>
<div class="content">Content</div>
</div>
<style>
.sidebar.collapsed {
width: 60px; /* This selector is flagged as unused */
}
.collapsed .content {
opacity: 0; /* This selector is also flagged as unused */
}
</style>
### Logs
```shell
Unused CSS selector ".sidebar.collapsed"
https://svelte.dev/e/css_unused_selector
System Info
System:
OS: Linux 6.15 Archcraft
CPU: (12) x64 AMD Ryzen 5 7600X 6-Core Processor
Memory: 42.22 GB / 62.02 GB
Container: Yes
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.19.2 - /usr/bin/node
Yarn: 1.22.22 - /usr/bin/yarn
npm: 11.4.2 - /usr/bin/npm
pnpm: 10.12.1 - /usr/bin/pnpm
bun: 1.2.16 - ~/Projects/********/********/node_modules/.bin/bun
Browsers:
Chromium: 137.0.7151.103
npmPackages:
svelte: 5.34.6 => 5.34.6
Severity
blocking an upgrade
Metadata
Metadata
Assignees
Labels
No labels