Skip to content

Commit d0e0f40

Browse files
committed
[css-values-4] Better define how math functions combine their argument types. #10017
1 parent d6c1c0d commit d0e0f40

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

css-values-4/Overview.bs

+13-7
Original file line numberDiff line numberDiff line change
@@ -3147,9 +3147,9 @@ Comparison Functions: ''min()'', ''max()'', and ''clamp()''</h3>
31473147

31483148
For all three functions,
31493149
the argument [=calculations=] can resolve to any <<number>>, <<dimension>>, or <<percentage>>,
3150-
but must have the <em>same</em> [=determine the type of a calculation|type=],
3150+
but must have a [=consistent type=]
31513151
or else the function is invalid;
3152-
the result will have the same [=CSSNumericValue/type=] as the arguments.
3152+
the result's type will be the [=consistent type=].
31533153

31543154
<div class="example">
31553155

@@ -3240,9 +3240,9 @@ Stepped Value Functions: ''round()'', ''mod()'', and ''rem()''</h3>
32403240
rounded according to the rounding strategy,
32413241
to the nearest integer multiple of B either above or below A.
32423242
The argument [=calculations=] can resolve to any <<number>>, <<dimension>>, or <<percentage>>,
3243-
but must have the <em>same</em> [=determine the type of a calculation|type=],
3243+
but must have a [=consistent type=]
32443244
or else the function is invalid;
3245-
the result will have the same [=CSSNumericValue/type=] as the arguments.
3245+
the result's type will be the [=consistent type=].
32463246

32473247
If A is exactly equal to an integer multiple of B,
32483248
''round()'' resolves to A exactly
@@ -3503,7 +3503,7 @@ Trigonometric Functions: ''sin()'', ''cos()'', ''tan()'', ''asin()'', ''acos()''
35033503
The <dfn lt="atan2()">atan2(A, B)</dfn> function
35043504
contains two comma-separated [=calculations=], A and B.
35053505
A and B can resolve to any <<number>>, <<dimension>>, or <<percentage>>,
3506-
but must have the <em>same</em> [=determine the type of a calculation|type=],
3506+
but must have a [=consistent type=]
35073507
or else the function is invalid.
35083508
The function returns the <<angle>>
35093509
between the positive X-axis and the point (B,A).
@@ -3706,9 +3706,9 @@ Exponential Functions: ''pow()'', ''sqrt()'', ''hypot()'', ''log()'', ''exp()''
37063706
(That is,
37073707
the square root of the sum of the squares of its arguments.)
37083708
The argument [=calculations=] can resolve to any <<number>>, <<dimension>>, or <<percentage>>,
3709-
but must have the <em>same</em> [=determine the type of a calculation|type=],
3709+
but must have a [=consistent type=]
37103710
or else the function is invalid;
3711-
the result will have the same [=CSSNumericValue/type=] as the arguments.
3711+
the result's type will be the [=consistent type=].
37123712

37133713
<details class=note>
37143714
<summary>Why does ''hypot()'' allow dimensions (values with units), but ''pow()'' and ''sqrt()'' only work on numbers?</summary>
@@ -4321,6 +4321,12 @@ Type Checking</h3>
43214321
</dl>
43224322
</div>
43234323

4324+
<div algorithm>
4325+
Two or more calculations have a <dfn export local-lt="consistent">consistent type</dfn>
4326+
if [=add two types/adding the types=] doesn't result in failure.
4327+
The [=consistent type=] is the result of the type addition.
4328+
</div>
4329+
43244330
[=Math functions=] themselves have [=CSSNumericValue/types=],
43254331
according to their contained [=calculations=]:
43264332

0 commit comments

Comments
 (0)