@scopeBaseline · Newly available
The @scope CSS at-rule sets the scope for a group of rules.
Works in the latest version of every major browser, but older devices may not support it yet. Baseline since Mar 24, 2026.
Browser support
DesktopChrome
1–142Not supported
143+Supportedsince Dec 2, 2025
Current: 155Edge
12–142Not supported
143+Supportedsince Dec 5, 2025
Current: 154Firefox
1–145Not supported
146+Supportedsince Dec 9, 2025
Current: 157Safari
1–26.3Not supported
26.4+Supportedsince Mar 24, 2026
Current: 27MobileChrome Android
18–142Not supported
143+Supportedsince Dec 2, 2025
Current: 155Firefox Android
4–145Not supported
146+Supportedsince Dec 9, 2025
Current: 157Safari iOS
1–26.3Not supported
26.4+Supportedsince Mar 24, 2026
Current: 27How to use
Every current browser supports this, but it only became Baseline on Mar 24, 2026. Use it as a progressive enhancement, or keep a fallback if you support older devices.
Example
Full syntax and examples are on MDN: CSSScopeRule.
Feature detection
JS · check before using
if ("CSSScopeRule" in globalThis) {
// CSSScopeRule is available
} else {
// load a polyfill or use a fallback
}Documentation (MDN)
Specification
Usage share
Sub-features
Support for each part of the feature (5). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| CSSScopeRule | 118 | 118 | 146 | 17.4 | 118 | 146 | 17.4 |
| CSSScopeRule.end | 118 | 118 | 146 | 17.4 | 118 | 146 | 17.4 |
| CSSScopeRule.start | 118 | 118 | 146 | 17.4 | 118 | 146 | 17.4 |
| @scope | 118 | 118 | 146 | 26.4 | 118 | 146 | 26.4 |
| nesting.at-scope | 143 | 143 | 142 | 26.2 | 143 | 142 | 26.2 |