Re: [csswg-drafts] value() function to get value from another CSS rule (#12882)

Whenever you have one property referring to another property, you introduce a dependency between those two properties. In your example, 'height' would start depending on 'line-height', for instance. If authors can add dependencies all on their own, then we have to start worrying about *cyclic* dependencies, like if the author then wrote `line-height: value(height);`.

This is already an issue for custom properties and `var()`, for example. We have explicit spec text tracking these dependencies, and special behavior for when we detect a cycle (basically, blanking out the properties participating in the cycle). So, as long as it's just author-defined dependencies, it's no issue.

The problem is that CSS grows new *implicit* dependencies occasionally, where one property starts depending on another property because of us adding some new functionality. If an author has already written a page with non-cyclic references which works perfectly fine, but we add a new implicit dependency that causes their page to suddenly have a cycle, that breaks the author's styling! That's a compat issue that we'd like to avoid - it means that *any* new implicit dependencies we want to add might end up being reverted due to web-compat issues.

So, we don't allow arbitrary references between properties. The `inherit()` proposal in #2864 avoids this issue because it's always referring to the parent element, so there's no way to force a cycle.

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12882#issuecomment-3357305468 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 1 October 2025 17:03:23 UTC