@@ -76,8 +76,10 @@ Module Interactions</h3>
76
76
<h2 id="value-defs">
77
77
Value Definition Syntax</h2>
78
78
79
- The syntax described here is used to define the set of valid values
80
- for CSS properties. A property value can have one or more components.
79
+ The <dfn for=CSS export>value definition syntax</dfn> described here
80
+ is used to define the set of valid values for CSS properties
81
+ (and the valid syntax of many other parts of CSS).
82
+ A value so described can have one or more components.
81
83
82
84
<h3 id="component-types">
83
85
Component value types</h3>
@@ -92,6 +94,9 @@ Component value types</h3>
92
94
<li>
93
95
basic data types, which appear between ''<'' and ''>''
94
96
(e.g., <<length>> , <<percentage>> , etc.).
97
+ For <a>numeric data types</a> ,
98
+ this type notation can annotate any range restrictions
99
+ using the [[#numeric-ranges|bracketed range notation]] described below.
95
100
96
101
<li>
97
102
types that have the same range of values as a property bearing the same name
@@ -355,7 +360,11 @@ Property value examples</h3>
355
360
<h2 id="textual-values">
356
361
Textual Data Types</h2>
357
362
358
- <dfn export lt="CSS identifier | CSS ident | identifier | ident">Identifiers</dfn> ,
363
+ The <dfn>textual data types</dfn> include
364
+ various keywords and identifiers
365
+ as well as strings (<<string>> ) and URLs (<<url>> ).
366
+
367
+ CSS <dfn export lt="CSS identifier | CSS ident | identifier | ident">identifiers</dfn> ,
359
368
generically denoted by <dfn><ident></dfn> ,
360
369
consist of a sequence of characters conforming to the <<ident-token>> grammar. [[!CSS3SYN]]
361
370
Identifiers cannot be quoted;
@@ -665,14 +674,52 @@ URL Modifiers</h4>
665
674
<h2 id="numeric-types">
666
675
Numeric Data Types</h2>
667
676
668
- Properties may restrict numeric values to some range.
677
+ The <dfn>numeric data types</dfn> include
678
+ <<integer>> ,
679
+ <<number>> ,
680
+ <<percentage>> ,
681
+ and various <a>dimensions</a>
682
+ including <<length>> , <<angle>> , <<time>> , <<frequency>> , and <<resolution>> .
683
+
684
+ Note: While genera-purpose <a>dimensions</a> are defined here,
685
+ some other modules define additional data types
686
+ (e.g. [[css-grid-1]] introduces ''fr'' units)
687
+ whose usage is more localized.
688
+
689
+ <h2 id="numeric-ranges">
690
+ Range Restrictions and Range Definition Notation</h3>
691
+
692
+ Properties can restrict numeric values to some range.
669
693
If the value is outside the allowed range,
670
- unless otherwise specified,
694
+ then unless otherwise specified,
671
695
the declaration is invalid and must be <a href="https://www.w3.org/TR/CSS21/conform.html#ignore">ignored</a> .
696
+ Range restrictions can be annotated in the numeric type notation
697
+ using <dfn>bracketed range notation</dfn> ,
698
+ <code> [<var>min</var>,<var>max</var>] </code>
699
+ within the angle brackets, after the identifying keyword,
700
+ indicating a closed range
701
+ between (and including) <var> min</var> and <var> max</var> ,
702
+ e.g. <<integer [0,10]>> .
703
+
704
+ Note: CSS values generally do not allow open ranges;
705
+ thus only square-bracket notation is used.
672
706
673
707
CSS theoretically supports infinite precision and infinite ranges for all value types;
674
708
however in reality implementations have finite capacity.
675
709
UAs should support reasonably useful ranges and precisions.
710
+ Range extremes that are ideally unlimited
711
+ are indicated using ∞ or −∞ as appropriate.
712
+
713
+ If no range is indicated,
714
+ either by using the <a>bracketed range notation</a>
715
+ or in the property description,
716
+ then <code> [−∞,∞] </code> is assumed.
717
+
718
+ Note: At the time of writing,
719
+ the <a>bracketed range notation</a> is new;
720
+ thus in most CSS specifications
721
+ any range limitations are described only in prose.
722
+ This does not make them any less binding.
676
723
<!--
677
724
The recommended minimum ranges and precision,
678
725
and the required rounding and clamping rules,
0 commit comments