@@ -76,8 +76,10 @@ Module Interactions</h3>
7676<h2 id="value-defs">
7777Value Definition Syntax</h2>
7878
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.
8183
8284<h3 id="component-types">
8385Component value types</h3>
@@ -92,6 +94,9 @@ Component value types</h3>
9294 <li>
9395 basic data types, which appear between ''<'' and ''>''
9496 (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.
95100
96101 <li>
97102 types that have the same range of values as a property bearing the same name
@@ -355,7 +360,11 @@ Property value examples</h3>
355360<h2 id="textual-values">
356361Textual Data Types</h2>
357362
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> ,
359368 generically denoted by <dfn><ident></dfn> ,
360369 consist of a sequence of characters conforming to the <<ident-token>> grammar. [[!CSS3SYN]]
361370 Identifiers cannot be quoted;
@@ -665,14 +674,52 @@ URL Modifiers</h4>
665674<h2 id="numeric-types">
666675Numeric Data Types</h2>
667676
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.
669693 If the value is outside the allowed range,
670- unless otherwise specified,
694+ then unless otherwise specified,
671695 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.
672706
673707 CSS theoretically supports infinite precision and infinite ranges for all value types;
674708 however in reality implementations have finite capacity.
675709 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.
676723<!--
677724 The recommended minimum ranges and precision,
678725 and the required rounding and clamping rules,
0 commit comments