Sample
Reject top-level un-scoped selectors with SyntaxError when pure mode is enabled in Lightning CSS modules configuration
sha256:0bacce8d1a942316d21beb9666db6e986a3639c35d91f5a2551cf16c2d4067fd
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Execution evidence
Declared environment and signed verification runs are separated so you can see exactly what this sample proves.
Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS
Declared environment
- Execution context
- node
- Operating system
- linux
- Architecture
- x64
- Runtime
- node
- Language
- node
- Package manager
- npm
Verification-run environments
- Execution context
- node 22
- Operating system
- linux alpine · musl
- Architecture
- x64
- Runtime
- node 22
- Language
- javascript
- Package manager
- npm
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17
Case
- Goal
- Reject top-level un-scoped selectors with SyntaxError when pure mode is enabled in Lightning CSS modules configuration HOW
- Packages
-
lightningcss 1.33.0
- Environment
- node
- Created
- 2026-08-17T10:23:24Z
Commonly assumed
compiling pure CSS modules silently drops top-level element selectors or emits them unchanged as global styles without error
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- transform with cssModules.pure set to true throws a SyntaxError stating that a selector in CSS modules should contain at least one class or ID selector when encountering impure element selectors
- transform with cssModules.pure set to true compiles successfully when every selector contains at least one class or ID selector
- transform with default cssModules configuration (pure: false) compiles impure element selectors without throwing an error
- exports maps each scoped class and ID to an object containing name, composes, and isReferenced rather than a bare string
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- node 22 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9