demo · v143
Custom @-rule Feature Detection Builder
Build progressive-enhancement wrappers for every at-rule you use. Check support live in your browser, write custom probes, and generate copy-pasteable @supports at-rule(…) snippets.
Preset at-rule checker
Click Check support on any row to probe your current browser in real time using CSS.supports("at-rule(@name)").
Custom at-rule probe
Type any at-rule name (with or without the @) to test support in this browser.
Progressive enhancement snippet generator
Select the at-rules your CSS uses
The tool wraps each rule's content in an @supports at-rule(…) guard and outputs a ready-to-paste block.
Browser compatibility matrix
Known first-ship milestones for each at-rule across major engines (based on public release data).
| at-rule | Chrome | Firefox | Safari |
|---|
Live CSS editor
Write CSS using @supports at-rule(…) syntax
The rendered output in the preview updates when you click Apply. Uses a real <style> injection so you see exactly what the browser does.
This box is styled by the @supports block above. If @layer is supported, it turns blue; otherwise red.
How it works
- The
at-rule()function inside@supportsis new in Chrome 143. It returnstrueif the browser understands the named at-rule as a valid CSS construct. - In JavaScript,
CSS.supports("at-rule(@layer)")mirrors this — returns a boolean you can branch on. - For progressive enhancement, wrap declarations in
@supports at-rule(@property) { … }so only browsers that parse@propertyapply them.