@@ -945,6 +945,13 @@ Container Queries: the ''@container'' rule</h3>
945
945
<dfn><<style-in-parens>></dfn> = ( <<style-query>> )
946
946
| ( <<style-feature>> )
947
947
| <<general-enclosed>>
948
+ <dfn><<style-feature>></dfn> = <<style-feature-plain>> | <<style-feature-boolean>> | <<style-range>>
949
+ <dfn><<style-feature-plain>></dfn> = <<style-feature-name>> : <<style-feature-value>>
950
+ <dfn><<style-feature-boolean>></dfn> = <<style-feature-name>>
951
+ <dfn><<style-range>></dfn> = <<style-range-value>> <<mf-comparison>> <<style-range-value>>
952
+ | <<style-range-value>> <<mf-lt>> <<style-range-value>> <<mf-lt>> <<style-range-value>>
953
+ | <<style-range-value>> <<mf-gt>> <<style-range-value>> <<mf-gt>> <<style-range-value>>
954
+ <dfn><<style-range-value>></dfn> = <<custom-property-name>> | <<style-feature-value>>
948
955
949
956
<dfn><<scroll-state-query>></dfn> = not <<scroll-state-in-parens>>
950
957
| <<scroll-state-in-parens>> [ [ and <<scroll-state-in-parens>> ]* | [ or <<scroll-state-in-parens>> ]* ]
@@ -1323,21 +1330,45 @@ Orientation: the '@container/orientation' feature</h4>
1323
1330
<h3 id="style-container">
1324
1331
Style Container Features</h3>
1325
1332
1326
- A <dfn export>container style query</dfn>
1327
- allows querying
1333
+ A <dfn export>container style query</dfn> allows querying
1328
1334
the [=computed values=] of the [=query container=] .
1329
- It is a boolean combination of
1330
- individual <dfn>style features</dfn> (<<style-feature>> )
1331
- that each query a single, specific property of the [=query container=] .
1332
- The syntax of a <dfn><<style-feature>></dfn> is either the same as for a valid [=declaration=]
1333
- [[!CSS-SYNTAX-3]] , a [=supported CSS property=] , or a <<custom-property-name>> .
1334
-
1335
- Its query evaluates to true if the [=computed value=] of the given property on the
1336
- [=query container=] matches the given value (which is also [=computed value|computed=]
1337
- with respect to the [=query container=] ), and false otherwise.
1335
+ It is a boolean combination of individual <dfn>style features</dfn>
1336
+ (<<style-feature>> ) that each query a single, specific property of the [=query container=] .
1337
+ The syntax of a <<style-feature>>
1338
+ is either the same as for a valid [=declaration=] [[!CSS-SYNTAX-3]] ,
1339
+ a <<style-feature-name>>
1340
+ or a valid <dfn>style range</dfn> (<<style-range>> ).
1341
+ The <dfn><<style-feature-name>></dfn> can be either a [=supported CSS property=]
1342
+ or a valid <<custom-property-name>> .
1343
+ The <dfn><<style-feature-value>></dfn> production matches any valid <<declaration-value>>
1344
+ as long as it doesn't contain <<mf-lt>> , <<mf-gt>> and <<mf-eq>> tokens.
1345
+
1346
+ A <<style-feature-plain>> evaluates to true
1347
+ if the [=computed value=] of the given property
1348
+ on the [=query container=] matches the given value
1349
+ (which is also [=computed value|computed=] with respect to the [=query container=] ),
1350
+ and false otherwise.
1338
1351
1339
- A [=style feature=] without a value evaluates to true if the [=computed value=]
1340
- is different from the [=initial value=] for the given [=property=] .
1352
+ A [=style feature=] without a value (<<style-feature-boolean>> ) evaluates to true
1353
+ if the [=computed value=] is different
1354
+ from the [=initial value=]
1355
+ for the given [=property=] .
1356
+
1357
+ <div algorithm>
1358
+ To <dfn>evaluate a <<style-range>></dfn> ,
1359
+ the following steps needs to be performed:
1360
+
1361
+ 1. If <<style-range-value>> is a <<custom-property-name>> ,
1362
+ it needs to be substituted
1363
+ as if the <<custom-property-name>> was wrapped inside a ''var()'' .
1364
+ 2. Substitute [=arbitrary substitution function=] within <<style-range-value>> .
1365
+ 3. Parse <<style-range-value>> to
1366
+ <<number>> , <<percentage>> , <<length>> , <<angle>> , <<time>> , <<frequency>> or <<resolution>> .
1367
+ If this cannot be done, evaluate to false.
1368
+ 4. If each <<style-range-value>> from the range have the same type,
1369
+ compute each and evaluate the comparison.
1370
+ 5. Otherwise evaluate to false.
1371
+ </div>
1341
1372
1342
1373
The boolean syntax and logic combining [=style features=] into a [=container style query|style query=]
1343
1374
is the same as for [=CSS feature queries=] .
0 commit comments