Skip to content

Commit f0e4c1b

Browse files
committed
[css-values-5] Define all the functions with semicolons to use commas, now that they can rely on semicolon-upgrading.
1 parent 811d2a0 commit f0e4c1b

File tree

1 file changed

+15
-27
lines changed

1 file changed

+15
-27
lines changed

css-values-5/Overview.bs

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,6 @@ Commas and Semicolons in Functions</h4>
169169
* <<whole-value>>
170170
* <<declaration-value>>
171171

172-
Issue: The functions defined in this spec with semicolons in their grammar
173-
need fixing to just use commas, now.
174172

175173
<!-- Big Text: url
176174

@@ -602,7 +600,7 @@ Interpolated Property Values: the ''mix()'' notation</h3>
602600

603601
<pre class="prod">
604602
<dfn><<mix()>></dfn> =
605-
mix( <<progress>> ';' <<whole-value>> ';' <<whole-value>> ) |
603+
mix( <<progress>> , <<whole-value>> , <<whole-value>> ) |
606604
mix( <<progress>> && of <<'animation-name'>> )
607605
</pre>
608606

@@ -751,7 +749,7 @@ Selecting the First Supported Value: the ''first-valid()'' notation</h3>
751749
as the whole value of the property it's used in.
752750

753751
<pre class=prod>
754-
<dfn>&lt;first-valid()></dfn> = first-valid( <<declaration-value>> [ ';' <<declaration-value>> ]* )
752+
<dfn>&lt;first-valid()></dfn> = first-valid( <<declaration-value>># )
755753
</pre>
756754

757755
If none of the arguments represent a valid value for the property,
@@ -800,13 +798,9 @@ Toggling Between Values: ''toggle()''</h3>
800798
The syntax of the ''toggle()'' expression is:
801799

802800
<pre class=prod>
803-
<dfn><<toggle()>></dfn> = toggle( <<whole-value>> [ ';' <<whole-value>> ]+ )
801+
<dfn><<toggle()>></dfn> = toggle( <<whole-value>># )
804802
</pre>
805803

806-
Note: This [=functional notation=] uses semicolons to separate arguments
807-
rather than the more typical comma
808-
because the values themselves can contain commas.
809-
810804
The ''toggle()'' notation is a <<whole-value>>.
811805
However, it is not allowed to be nested,
812806
nor may it contain ''attr()'' or ''calc()'' notations;
@@ -838,7 +832,7 @@ Toggling Between Values: ''toggle()''</h3>
838832

839833

840834
Note: This means that repeating values in a ''toggle()'' short-circuits the list.
841-
For example ''toggle(1em; 2em; 1em; 4em)'' will be equivalent to ''toggle(1em; 2em)''.
835+
For example ''toggle(1em, 2em, 1em, 4em)'' will be equivalent to ''toggle(1em; 2em)''.
842836

843837
<!-- Issue: Should this short-circuiting affect the computed value? -->
844838

@@ -847,7 +841,7 @@ Toggling Between Values: ''toggle()''</h3>
847841
This is similar to the ''inherit'' keyword,
848842
which works even on non-inherited properties.
849843

850-
Note: That the <a href="https://www.w3.org/TR/CSS21/cascade.html#computed-value">computed value</a> of a property is an abstract set of values,
844+
Note: That the [=computed value=] of a property is an abstract set of values,
851845
not a particular serialization [[!CSS21]],
852846
so comparison between computed values should always be unambiguous and have the expected result.
853847
For example,
@@ -871,10 +865,10 @@ Toggling Between Values: ''toggle()''</h3>
871865
is equivalent to the following longhand declarations:
872866

873867
<pre>
874-
margin-top: toggle(1px; 4px; 1px);
875-
margin-right: toggle(2px; 4px; 5px);
876-
margin-bottom: toggle(1px; 4px; 4px);
877-
margin-left: toggle(2px; 4px; 5px);
868+
margin-top: toggle(1px, 4px, 1px);
869+
margin-right: toggle(2px, 4px, 5px);
870+
margin-bottom: toggle(1px, 4px, 4px);
871+
margin-left: toggle(2px, 4px, 5px);
878872
</pre>
879873

880874
Note that, since ''1px'' appears twice in the top margin and ''4px'' appears twice in bottom margin,
@@ -884,10 +878,10 @@ Toggling Between Values: ''toggle()''</h3>
884878
as the longhand declarations below:
885879

886880
<pre>
887-
margin-top: toggle(1px; 4px);
888-
margin-right: toggle(2px; 4px; 5px);
889-
margin-bottom: toggle(1px; 4px);
890-
margin-left: toggle(2px; 4px; 5px);
881+
margin-top: toggle(1px, 4px);
882+
margin-right: toggle(2px, 4px, 5px);
883+
margin-bottom: toggle(1px, 4px);
884+
margin-left: toggle(2px, 4px, 5px);
891885
</pre>
892886

893887
which may not be what was intended.
@@ -1388,7 +1382,7 @@ Picking a Random Item From a List: the ''random-item()'' function</h3>
13881382
from among its list of items.
13891383

13901384
<pre class=prod>
1391-
&lt;random-item()> = random-item( <<random-caching-options>> ';' <<declaration-value>>? [ ';' <<declaration-value>>? ]* )
1385+
&lt;random-item()> = random-item( <<random-caching-options>> , [ <<declaration-value>>? ]# )
13921386
</pre>
13931387

13941388
The <em>required</em> <<random-caching-options>>
@@ -1430,16 +1424,10 @@ Picking a Random Item From a List: the ''random-item()'' function</h3>
14301424
is much easier to do accidentally,
14311425
since only the number of arguments is used to distinguish instances.
14321426

1433-
The remaining arguments are arbitrary sequences of CSS values,
1434-
separated by semicolons.
1427+
The remaining arguments are arbitrary sequences of CSS values.
14351428
The ''random-item()'' function resolves to one of these sequences,
14361429
chosen uniformly at random.
14371430

1438-
Note: Unlike most functions in CSS,
1439-
''random-item()'' separates its arguments with semicolons,
1440-
rather than commas,
1441-
because its arguments can contain commas themselves.
1442-
14431431
The ''random-item()'' function is an [=arbitrary substitution function=],
14441432
like ''var()''.
14451433

0 commit comments

Comments
 (0)