New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css-values] when should values inside mix()
be clamped? #8158
Comments
I would say (1). order: mix(50%; 1; 9); /* (1+9)/2 = 5 */
aspect-ratio: mix(50%; 1; 9); /* sqrt(1*9) = 3 */
so interpolating a negative length if the property doesn't understand negative lengths kinda seems wrong. But an |
Yes, it's (1) in this case: each of mix()'s arguments are clamped to allowed range of the context (non-negative). By "expression" I really mean "top-level calculation" and should use that term (and linkify it) instead.
Right, if we stayed purely within math functions the clamping wouldn't happen until the end. |
CSS Values and Units Level 4 introduces the
mix()
function. It's not clear to me reading the spec at what point clamping should be applied for this example:The spec has this to say in the Range Checking section for calc():
I'm not sure what "resulting from an expression" means here. I think the above
mix()
value could resolve to either:20px
where we clamp the output of thecalc()
expression and mix between40px
and0px
,0px
where we only clamp the output of the entiremix()
expression and mix between40px
and-80px
, clamping the result-20px
to0px
Assuming that "resulting from an expression" refers to any math function then it would clearly be the first result since
mix()
is not a math function.This is somewhat related to #8157 where I raised the issue of what would happen when interpolating between the same two values in the context of an animation.
The text was updated successfully, but these errors were encountered: