Feature detect CSS @starting-style support

Awaiting browser support for at-rule(), here’s how you do it.


This content originally appeared on Bram.us and was authored by Bramus!

The other day on Mastodon, Ryan wondered how hey can detect support for @starting-style. While in theory you could use @supports at-rule() for this, in practice you can’t because it has no browser support (😭).

Drawing inspiration from my previous post on how to detect support for @property, I came up with a similar method to detect @starting-style support

~

The Code

The code I landed on is this:

@property --supported {
	syntax: "<number>";
	initial-value: 0;
	inherits: false;
}

:root {
	transition: --supported 0s calc(infinity * 1s);
}

@starting-style {
	:root {
		--supported: 1;
	}
}

In browsers with support for @starting-style, the value of --supported will be 1. In browsers without support the value is 0. You can use that value with Style Queries, Space Toggles, etc.

~

How it works

The code works by registering a custom property with an initial-value of 0. The value of that property gets changes to 1 in @starting-style.

To prevent the value from swapping back to 0, it is given a transition delay that lasts for all eternity.

🌟 Shout-out to Schepp who mentioned this “long transition delay”-approach at CSS Day. The idea got stuck in my head and I’m happy I was able to use it shortly after discussing it.

~

Demos

Embedded below is a demo that uses this technique along with Style Queries, my preferred way of responding to custom property values.

See the Pen Detect @starting-style support by Bramus (@bramus) on CodePen.

In browsers with @starting-style and Style Queries support, the body has a green background. In all others the background is red. Go take a peek at the previous post on @property on how to adjust this to use a Space Toggle instead.

~


This content originally appeared on Bram.us and was authored by Bramus!


Print Share Comment Cite Upload Translate Updates
APA

Bramus! | Sciencx (2024-07-11T21:40:10+00:00) Feature detect CSS @starting-style support. Retrieved from https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/

MLA
" » Feature detect CSS @starting-style support." Bramus! | Sciencx - Thursday July 11, 2024, https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/
HARVARD
Bramus! | Sciencx Thursday July 11, 2024 » Feature detect CSS @starting-style support., viewed ,<https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/>
VANCOUVER
Bramus! | Sciencx - » Feature detect CSS @starting-style support. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/
CHICAGO
" » Feature detect CSS @starting-style support." Bramus! | Sciencx - Accessed . https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/
IEEE
" » Feature detect CSS @starting-style support." Bramus! | Sciencx [Online]. Available: https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/. [Accessed: ]
rf:citation
» Feature detect CSS @starting-style support | Bramus! | Sciencx | https://www.scien.cx/2024/07/11/feature-detect-css-starting-style-support/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.