- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 741
 
Description
Linked Discussion
This was first investigated in a discussion and initially suspected to be caused by a transitive Solid dependency. After further debugging, it was confirmed that the issue is not dependency-related but caused by a domain + grouped-severity interaction.
Original discussion:
Summary
When using Biome with React and setting grouped severities (e.g., "performance": "warn"), Solid rules become active, even though:
- Only the React domain is enabled
 - No Solid dependency exists in 
package.json - The project is strictly React
 
This triggers warnings such as:
Array.prototype.map will cause DOM elements to be recreated, it is not recommended to use it in Solid here.
biome[lint/performance/useSolidForComponent]
Root Cause (observed)
Grouped severities appear to behave like:
- "Enable all rules in this category," rather than
 - "Enable rules in this category only for active domains."
 
So this:
"rules": {
  "performance": "warn"
}activates Solid’s useSolidForComponent, despite:
"domains": { "react": "all" }This reproduces in a clean Biome template (npx @biomejs/create-biome-reproduction) with a minimal React component.
Expected Behavior
Domain isolation should be respected:
domains.react = "all"⇒ Only React rules run- Grouped severities should not implicitly activate rules from other domains
 
Current Behavior
- Adding a grouped severity (
style,performance, etc.) triggers Solid rules - Removing the grouped severity prevents Solid rules
 - Workaround: explicitly disable Solid domain:
 
"domains": {
  "react": "all",
  "solid": "none"
}Key Usability Problem
As soon as I customize any single rule inside a group (switching the group from scalar to object form), I lose blanket severity control for the entire group.
Modifying one rule prevents applying a single severity value to the whole group unless every rule is explicitly listed.
This makes common configs like
“warn for all performance rules except one”
impractical.
Suggestions
✅ Domain-respecting grouped severities
Grouped severities should apply only to rules from active domains.
✅ Allow default severity in object form
Suggest supporting:
"rules": {
  "performance": {
    "level": "warn",                 // default for the group
    "useSolidForComponent": "off"    // override specific rule
  }
}This preserves blanket severity control and allows exclusions.
✅ Docs improvement
Until behavior changes, document that:
- Switching a group to object form removes global severity control for that group
 - Grouped severities can currently activate cross-domain rules
 
Reproduction
Minimal reproduction repo:
https://github.com/ByteElegance/biome-react-solid-domain-bug