@webref/css 6.7.0 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css-fonts-5.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "properties": [
7
7
  {
8
8
  "name": "font-size-adjust",
9
- "value": "none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number> ]",
9
+ "value": "none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ]",
10
10
  "initial": "none",
11
11
  "appliesTo": "all elements and text",
12
12
  "inherited": "yes",
@@ -58,10 +58,10 @@
58
58
  "value": "ic-height"
59
59
  },
60
60
  {
61
- "name": "<number>",
61
+ "name": "<number [0,∞]>",
62
62
  "prose": "Each font’s used size is normalized to match the chosen font metric to this specified proportion of the computed font-size. In other words, for each glyph, the adjusted font size to use u is calculated as: u = ( m / m′ ) s where: s = computed 'font-size!!property' value m = metric as specified by the 'font-size-adjust' property m′ = metric as specified in the actual font u = adjusted font-size to use Negative values are invalid.",
63
63
  "type": "value",
64
- "value": "<number>"
64
+ "value": "<number [0,∞]>"
65
65
  },
66
66
  {
67
67
  "name": "from-font",
package/css-fonts.json CHANGED
@@ -143,7 +143,7 @@
143
143
  "percentages": "n/a",
144
144
  "computedValue": "the keyword specified, plus angle in degrees if specified",
145
145
  "canonicalOrder": "per grammar",
146
- "animationType": "by computed value type; normal animates as oblique 0deg",
146
+ "animationType": "by computed value type;normal animates as oblique 0deg",
147
147
  "values": [
148
148
  {
149
149
  "name": "normal",
@@ -884,7 +884,7 @@
884
884
  {
885
885
  "name": "<feature-tag-value>",
886
886
  "type": "value",
887
- "value": "<string> [ <integer> | on | off ]?"
887
+ "value": "<opentype-tag> [ <integer [0,∞]> | on | off ]?"
888
888
  }
889
889
  ],
890
890
  "styleDeclaration": [
@@ -946,7 +946,7 @@
946
946
  },
947
947
  {
948
948
  "name": "font-variation-settings",
949
- "value": "normal | [ <string> <number>]#",
949
+ "value": "normal | [ <opentype-tag> <number>]#",
950
950
  "initial": "normal",
951
951
  "appliesTo": "all elements and text",
952
952
  "inherited": "yes",
@@ -961,18 +961,18 @@
961
961
  },
962
962
  {
963
963
  "name": "font-palette",
964
- "value": "normal | light | dark | <palette-identifier>",
964
+ "value": "normal | light | dark | <palette-identifier> | <palette-mix()>",
965
965
  "initial": "normal",
966
966
  "appliesTo": "all elements and text",
967
967
  "inherited": "yes",
968
968
  "percentages": "N/a",
969
- "computedValue": "specified keyword or identifier",
969
+ "computedValue": "specified keyword, identifier or <palette-mix()> function. <palette-mix()> must be simplified to a single keyword or identifier if resulting palette is equivalent.",
970
970
  "canonicalOrder": "per grammar",
971
- "animationType": "discrete",
971
+ "animationType": "by computed value",
972
972
  "values": [
973
973
  {
974
974
  "name": "normal",
975
- "prose": "User-Agents display the color font with the default palette or default glyph colorisation. User-agents should take the computed value of the color property into consideration when a color font format requires use of the foreground color In the COLR [OPENTYPE] table, color index 0xFFFF should be rendered according the color property. For COLR/CPAL [OPENTYPE] fonts, font-palette: normal usually means rendering the font with the palette in the font at index 0.",
975
+ "prose": "If the color-scheme property is set to a value other than normal', user-agents should select the first light or dark palette as appropriate. Otherwise, user-agents display the color font with the default palette or default glyph colorisation. User-agents should take the computed value of the color property into consideration when a color font format requires use of the foreground color In the COLR [OPENTYPE] table, color index 0xFFFF should be rendered according the color property. For COLR/CPAL [OPENTYPE] fonts, font-palette: normal usually means rendering the font with the palette in the font at index 0.",
976
976
  "type": "value",
977
977
  "value": "normal"
978
978
  },
@@ -992,6 +992,12 @@
992
992
  "name": "<palette-identifier>",
993
993
  "prose": "This value identifies an CSS-defined palette to use. Users can define a palette by using the @font-palette-values rule. If no applicable @font-palette-values rule is present, this value behaves as normal. <palette-identifier> is parsed as a <dashed-ident>.",
994
994
  "type": "type"
995
+ },
996
+ {
997
+ "name": "<palette-mix()>",
998
+ "prose": "This value defines a position in the interpolation between two palette values, identified by <palette-identifier>, by the palette keywords normal, light, dark, or by another <palette-mix()> value. The glyphs of the font must be rendered with a palette that is created by interpolating for each palette color index between the matching color indices of the first and second palette specified as arguments, recursively resolving <palette-mix()> functions if needed. For each palette color, the interpolation follows the rules of the <color-mix()> function. When not specified otherwise the <color-interpolation-method> is in oklab as recommended by CSS Color 5 § 7.1 Color Space for Interpolation. Percentages are normalized according to CSS Color 5 § 3.1 Percentage Normalization.",
999
+ "type": "type",
1000
+ "value": "palette-mix(<color-interpolation-method> , [ [normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]>? ]#{2})"
995
1001
  }
996
1002
  ],
997
1003
  "styleDeclaration": [
@@ -1054,13 +1060,13 @@
1054
1060
  {
1055
1061
  "name": "src",
1056
1062
  "for": "@font-face",
1057
- "value": "see prose",
1063
+ "value": "<font-src-list>",
1058
1064
  "initial": "N/A"
1059
1065
  },
1060
1066
  {
1061
1067
  "name": "font-style",
1062
1068
  "for": "@font-face",
1063
- "value": "auto | normal | italic | oblique [ <angle>{1,2} ]?",
1069
+ "value": "auto | normal | italic | oblique [ <angle [-90deg,90deg]>{1,2} ]?",
1064
1070
  "initial": "auto"
1065
1071
  },
1066
1072
  {
@@ -1172,13 +1178,55 @@
1172
1178
  "for": "@font-feature-values",
1173
1179
  "value": "auto | block | swap | fallback | optional",
1174
1180
  "initial": "auto"
1181
+ },
1182
+ {
1183
+ "name": "@stylistic",
1184
+ "type": "at-rule",
1185
+ "for": "@font-feature-values",
1186
+ "value": "@stylistic { <declaration-list> }"
1187
+ },
1188
+ {
1189
+ "name": "@historical-forms",
1190
+ "type": "at-rule",
1191
+ "for": "@font-feature-values",
1192
+ "value": "@historical-forms { <declaration-list> }"
1193
+ },
1194
+ {
1195
+ "name": "@styleset",
1196
+ "type": "at-rule",
1197
+ "for": "@font-feature-values",
1198
+ "value": "@styleset { <declaration-list> }"
1199
+ },
1200
+ {
1201
+ "name": "@character-variant",
1202
+ "type": "at-rule",
1203
+ "for": "@font-feature-values",
1204
+ "value": "@character-variant { <declaration-list> }"
1205
+ },
1206
+ {
1207
+ "name": "@swash",
1208
+ "type": "at-rule",
1209
+ "for": "@font-feature-values",
1210
+ "value": "@swash { <declaration-list> }"
1211
+ },
1212
+ {
1213
+ "name": "@ornaments",
1214
+ "type": "at-rule",
1215
+ "for": "@font-feature-values",
1216
+ "value": "@ornaments { <declaration-list> }"
1217
+ },
1218
+ {
1219
+ "name": "@annotation",
1220
+ "type": "at-rule",
1221
+ "for": "@font-feature-values",
1222
+ "value": "@annotation { <declaration-list> }"
1175
1223
  }
1176
1224
  ],
1177
1225
  "value": "@font-feature-values <family-name># { <declaration-rule-list> }"
1178
1226
  },
1179
1227
  {
1180
1228
  "name": "@font-palette-values",
1181
- "prose": "The @font-palette-values rule defines a color palette and associates that color palette with a specific font. This allows a web author to select arbitrary colors to use inside a color font rather than being limited to the preexisting palettes inside font files. In addition, this rule’s association with a specific font allows a name of a palette to apply differently to different fonts, which allows similar colors to be used across multiple fonts when multiple fonts are used in an element (i.e. for font fallback).",
1229
+ "prose": "The @font-palette-values rule defines a color palette and associates that color palette with a specific font. This allows a web author to select arbitrary <color>s to use inside a color font rather than being limited to the preexisting palettes inside font files.",
1182
1230
  "descriptors": [
1183
1231
  {
1184
1232
  "name": "font-family",
@@ -1225,13 +1273,15 @@
1225
1273
  "values": [
1226
1274
  {
1227
1275
  "name": "<family-name>",
1228
- "prose": "The name of a font family, such as Helvetica or Verdana in the previous example.",
1229
- "type": "type"
1276
+ "prose": "The name of a font family, such as Helvetica or Verdana in the previous example. This might be a locally-instaled font, or might be a web font.",
1277
+ "type": "type",
1278
+ "value": "<string> | <custom-ident>+"
1230
1279
  },
1231
1280
  {
1232
1281
  "name": "<generic-family>",
1233
- "prose": "Each <generic-family> keyword represents a generic font choice, and behaves as an alias for one or more locally-installed fonts belonging to the specified generic font category. A <generic-family> can thus be used as a reliable fallback for when an author’s more specific font choices are not available. Authors are encouraged to append a generic font family as a last alternative for improved robustness. Note that <generic-family> keywords cannot be quoted (otherwise they are interpreted as a <family-name>). The set of generic family keywords is defined in § 2.1.3 Generic font families.",
1282
+ "prose": "Each <generic-family> keyword represents a generic font choice, and behaves as a potential alias for one or more locally-installed fonts belonging to the specified generic font category. A <generic-family> can thus be used as a fallback for when an author’s more specific font choices are not available. There are three types of generic family: Generics which apply to all Unicode characters and will always match a locally installed font. For example, monospaced. Generics which apply to all Unicode characters but may not match to a locally installed font on some systems. For example, ui-rounded. Generics which are writing-system specific, only apply to a subset of Unicode characters, and may not match to a locally installed font on some systems. For example, fangsong. Authors are encouraged to append a generic font family as a last alternative for improved robustness, and to use a more specific generic font family, if applicable, to prefer a specific style even if the individual named font family is not available. Note that <generic-family> keywords cannot be quoted (otherwise they are interpreted as a <family-name>). The set of generic family keywords is defined in § 2.1.4 Generic font families.",
1234
1283
  "type": "type",
1284
+ "value": "generic( <custom-ident>+ ) | <string> | <custom-ident>+",
1235
1285
  "values": [
1236
1286
  {
1237
1287
  "name": "serif",
@@ -1328,6 +1378,16 @@
1328
1378
  "type": "type",
1329
1379
  "value": "[normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded]"
1330
1380
  },
1381
+ {
1382
+ "name": "<font-src-list>",
1383
+ "prose": "To parse a <font-src-list> production, parse a list of <font-src>s.",
1384
+ "type": "type"
1385
+ },
1386
+ {
1387
+ "name": "<font-src>",
1388
+ "type": "type",
1389
+ "value": "<url> [ format(<font-format>)]? [ tech( <font-tech>#)]? | local(<family-name>)"
1390
+ },
1331
1391
  {
1332
1392
  "name": "<font-format>",
1333
1393
  "type": "type",
@@ -1397,18 +1457,18 @@
1397
1457
  "name": "<east-asian-width-values>",
1398
1458
  "type": "type",
1399
1459
  "value": "[ full-width | proportional-width ]"
1460
+ },
1461
+ {
1462
+ "name": "<opentype-tag>",
1463
+ "type": "type",
1464
+ "value": "<string>"
1400
1465
  }
1401
1466
  ],
1402
1467
  "warnings": [
1403
1468
  {
1404
1469
  "msg": "Missing definition",
1405
- "name": "<feature-value-block>",
1406
- "value": "<font-feature-value-type> { <declaration-list> }"
1407
- },
1408
- {
1409
- "msg": "Missing definition",
1410
- "name": "<font-feature-value-type>",
1411
- "value": "@stylistic | @historical-forms | @styleset | @character-variant | @swash | @ornaments | @annotation"
1470
+ "name": "font-feature-value-type",
1471
+ "value": "<@stylistic> | <@historical-forms> | <@styleset> | <@character-variant> | <@swash> | <@ornaments> | <@annotation>"
1412
1472
  },
1413
1473
  {
1414
1474
  "msg": "Dangling value",
package/css-gcpm.json CHANGED
@@ -6,14 +6,14 @@
6
6
  "properties": [
7
7
  {
8
8
  "name": "position",
9
- "newValues": "running()",
9
+ "newValues": "<running()>",
10
10
  "styleDeclaration": [
11
11
  "position"
12
12
  ]
13
13
  },
14
14
  {
15
15
  "name": "content",
16
- "newValues": "element()",
16
+ "newValues": "<element()>",
17
17
  "styleDeclaration": [
18
18
  "content"
19
19
  ]
@@ -105,17 +105,17 @@
105
105
  }
106
106
  ],
107
107
  "atrules": [],
108
- "selectors": [],
108
+ "selectors": [
109
+ {
110
+ "name": ":nth()",
111
+ "value": ":nth( An+B [of <custom-ident>]?)"
112
+ }
113
+ ],
109
114
  "values": [
110
115
  {
111
116
  "name": "running()",
112
117
  "type": "function",
113
118
  "value": "running( <custom-ident> )"
114
- },
115
- {
116
- "name": "nth()",
117
- "type": "function",
118
- "value": "( An+B [of <custom-ident>]?)"
119
119
  }
120
120
  ],
121
121
  "warnings": [
package/css-grid-3.json CHANGED
@@ -11,8 +11,8 @@
11
11
  "appliesTo": "grid containers",
12
12
  "inherited": "no",
13
13
  "percentages": "refer to corresponding dimension of the content area",
14
- "computedValue": "the keyword none or the keyword masonry or a computed track list",
15
- "animationType": "see CSS Grid",
14
+ "computedValue": "the keyword none or the keyword masonry or a [[computed track list]]",
15
+ "animationType": "see CSS Grid Level 2",
16
16
  "styleDeclaration": [
17
17
  "grid-template-columns",
18
18
  "gridTemplateColumns"
@@ -25,8 +25,8 @@
25
25
  "appliesTo": "grid containers",
26
26
  "inherited": "no",
27
27
  "percentages": "refer to corresponding dimension of the content area",
28
- "computedValue": "the keyword none or the keyword masonry or a computed track list",
29
- "animationType": "see CSS Grid",
28
+ "computedValue": "the keyword none or the keyword masonry or a [[computed track list]]",
29
+ "animationType": "see CSS Grid Level 2",
30
30
  "styleDeclaration": [
31
31
  "grid-template-rows",
32
32
  "gridTemplateRows"
@@ -4,7 +4,14 @@
4
4
  "url": "https://drafts.csswg.org/css-namespaces-3/"
5
5
  },
6
6
  "properties": [],
7
- "atrules": [],
7
+ "atrules": [
8
+ {
9
+ "name": "@namespace",
10
+ "prose": "The @namespace at-rule declares a namespace prefix and associates it with a given namespace name (a string). This namespace prefix can then be used in namespace-qualified names such as the CSS qualified names defined below.",
11
+ "descriptors": [],
12
+ "value": "@namespace <namespace-prefix>? [ <string> | <url> ] ;"
13
+ }
14
+ ],
8
15
  "selectors": [],
9
16
  "values": [
10
17
  {
@@ -12,12 +19,5 @@
12
19
  "type": "type",
13
20
  "value": "<ident>"
14
21
  }
15
- ],
16
- "warnings": [
17
- {
18
- "msg": "Missing definition",
19
- "name": "@namespace",
20
- "value": "@namespace <namespace-prefix>? [ <string> | <url> ] ;"
21
- }
22
22
  ]
23
23
  }
@@ -376,7 +376,7 @@
376
376
  "values": [
377
377
  {
378
378
  "name": "none",
379
- "prose": "Otherwise, if the value of max-lines is not none, a region break is forced after its Nth descendant in-flow line box, where N is the specified value of max-lines. Only lines boxes in the same Block Formatting Context are counted: the contents of descendants that establish independent formatting contexts are skipped over while counting line boxes.",
379
+ "prose": "Also, if the value of max-lines is not none, a region break is forced after its Nth descendant in-flow line box, where N is the specified value of max-lines. Only lines boxes in the same Block Formatting Context are counted: the contents of descendants that establish independent formatting contexts are skipped over while counting line boxes.",
380
380
  "type": "value",
381
381
  "value": "none"
382
382
  }
package/css-text-4.json CHANGED
@@ -58,47 +58,8 @@
58
58
  ]
59
59
  },
60
60
  {
61
- "name": "word-boundary-detection",
62
- "value": "normal | manual | auto(<lang>)",
63
- "initial": "normal",
64
- "appliesTo": "text",
65
- "inherited": "yes",
66
- "percentages": "N/A",
67
- "computedValue": "as specified (However, see special provision for unsupported <lang>)",
68
- "canonicalOrder": "per grammar",
69
- "animationType": "discrete",
70
- "values": [
71
- {
72
- "name": "manual",
73
- "prose": "Linguistic analysis is not used in any language or writing system to determine line wrapping opportunities not indicated by the markup or characters of the element. The user agent must not insert virtual word boundaries. Typographic character units with class SA in [UAX14] must be treated as if they had class AL (i.e. assuming word-break: normal and a value of line-break other than anywhere, there is no soft wrap opportunity between pairs of such characters). Authors using this value for Southeast Asian languages are expected to manually indicate word boundaries, for instance using wbr or U+200B. Otherwise, there will be no soft wrap opportunity and the text may overflow.",
74
- "type": "value",
75
- "value": "manual"
76
- },
77
- {
78
- "name": "normal",
79
- "prose": "The user agent must not insert virtual word boundaries, except within runs of characters belonging to Southeast Asian languages, where content analysis must be performed to determine where to insert virtual word boundaries. As with manual, typographic character units with class SA in [UAX14] must be treated as if they had class AL; however, the user agent must additionally analyze the content of a run of such characters and insert virtual word boundaries where appropriate. Within the constraints set by this specification, the specific algorithm used is UA-dependent. As various languages can be written in scripts which use the characters with class SA, if the content language is known, the user agent should use this information to tailor its analysis. In order to avoid unexpected overflow, if the user agent is unable to perform this analysis for any subset of the characters with class SA—for example due to lacking a dictionary for certain languages—there must be a soft wrap opportunity between pairs of typographic letter units in that subset.",
80
- "type": "value",
81
- "value": "normal"
82
- },
83
- {
84
- "name": "auto()",
85
- "value": "auto()",
86
- "type": "value"
87
- },
88
- {
89
- "name": "<lang>",
90
- "prose": "<lang> must be a valid CSS <ident> or <string>. It represents an IETF BCP 47 language range (see [BCP47]). If the UA does not support word-boundary detection for all languages represented by the specified range, that specified value is invalid (and will cause the declaration to be ignored).",
91
- "type": "type"
92
- }
93
- ],
94
- "styleDeclaration": [
95
- "word-boundary-detection",
96
- "wordBoundaryDetection"
97
- ]
98
- },
99
- {
100
- "name": "word-boundary-expansion",
101
- "value": "none | space | ideographic-space",
61
+ "name": "word-space-transform",
62
+ "value": "none | [ space | ideographic-space ] && auto-phrase?",
102
63
  "initial": "none",
103
64
  "appliesTo": "text",
104
65
  "inherited": "yes",
@@ -115,25 +76,31 @@
115
76
  },
116
77
  {
117
78
  "name": "space",
118
- "prose": "Instances of U+200B ZERO WIDTH SPACE within the child text of this element are replaced by U+0020 SPACE.",
79
+ "prose": "Expandable separators within the child text of this element are replaced by U+0020 SPACE.",
119
80
  "type": "value",
120
81
  "value": "space"
121
82
  },
122
83
  {
123
84
  "name": "ideographic-space",
124
- "prose": "Instances of U+200B ZERO WIDTH SPACE within the child text of this element are replaced by U+3000 IDEOGRAPHIC SPACE.",
85
+ "prose": "Expandable separators within the child text of this element are replaced by U+3000 IDEOGRAPHIC SPACE.",
125
86
  "type": "value",
126
87
  "value": "ideographic-space"
88
+ },
89
+ {
90
+ "name": "auto-phrase",
91
+ "prose": "If the content language is known and the user agent supports linguistic analysis for this language, the user agent must detect phrase boundaries. If a word-separator character, other space separator, or U+200B ZERO WIDTH SPACE character does not already occur at that boundary, then the UA must insert a virtual expandable separator. If this value is omitted, or if the content language is unknown, or if the user agent does not support detecting phrase boundaries for that language, there are no virtual expandable separator.",
92
+ "type": "value",
93
+ "value": "auto-phrase"
127
94
  }
128
95
  ],
129
96
  "styleDeclaration": [
130
- "word-boundary-expansion",
131
- "wordBoundaryExpansion"
97
+ "word-space-transform",
98
+ "wordSpaceTransform"
132
99
  ]
133
100
  },
134
101
  {
135
102
  "name": "white-space",
136
- "value": "normal | pre | nowrap | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap'> || <'white-space-trim'>",
103
+ "value": "normal | pre | nowrap | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'>",
137
104
  "initial": "normal",
138
105
  "appliesTo": "text",
139
106
  "inherited": "yes",
@@ -211,7 +178,7 @@
211
178
  },
212
179
  {
213
180
  "name": "discard",
214
- "prose": "This value directs user agents to “discard” all white space in the element. Does this preserve line break opportunities or no? Do we need a distinct \"hide\" value? If it preserves line break opportunities, maybe it should be replaced with a word-boundary-expansion value?",
181
+ "prose": "This value directs user agents to “discard” all white space in the element. Does this preserve line break opportunities or no? Do we need a distinct \"hide\" value? If it preserves line break opportunities, maybe it should be replaced with a word-space-transform value?",
215
182
  "type": "value",
216
183
  "value": "discard"
217
184
  }
@@ -271,9 +238,229 @@
271
238
  "tabSize"
272
239
  ]
273
240
  },
241
+ {
242
+ "name": "text-wrap-mode",
243
+ "value": "wrap | nowrap",
244
+ "initial": "wrap",
245
+ "appliesTo": "text",
246
+ "inherited": "yes",
247
+ "percentages": "n/a",
248
+ "computedValue": "specified keyword",
249
+ "canonicalOrder": "per grammar",
250
+ "animationType": "discrete",
251
+ "values": [
252
+ {
253
+ "name": "wrap",
254
+ "prose": "Content may break across lines at allowed soft wrap opportunities, as determined by the line-breaking rules in effect, in order to minimize inline-axis overflow.",
255
+ "type": "value",
256
+ "value": "wrap"
257
+ },
258
+ {
259
+ "name": "nowrap",
260
+ "prose": "Inline-level content does not break across lines; content that does not fit within the block container overflows it.",
261
+ "type": "value",
262
+ "value": "nowrap"
263
+ }
264
+ ],
265
+ "styleDeclaration": [
266
+ "text-wrap-mode",
267
+ "textWrapMode"
268
+ ]
269
+ },
270
+ {
271
+ "name": "wrap-inside",
272
+ "value": "auto | avoid",
273
+ "initial": "auto",
274
+ "appliesTo": "inline boxes",
275
+ "inherited": "no",
276
+ "percentages": "n/a",
277
+ "computedValue": "specified keyword",
278
+ "canonicalOrder": "per grammar",
279
+ "animationType": "discrete",
280
+ "values": [
281
+ {
282
+ "name": "auto",
283
+ "prose": "Lines may break at allowed break points within the box, as determined by the line-breaking rules in effect.",
284
+ "type": "value",
285
+ "value": "auto"
286
+ },
287
+ {
288
+ "name": "avoid",
289
+ "prose": "Line breaking is suppressed within the box: the UA may only break within the box if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto. If boxes with avoid are nested and the UA must break within these boxes, a break in an outer box must be used before a break within an inner box may be used.",
290
+ "type": "value",
291
+ "value": "avoid"
292
+ }
293
+ ],
294
+ "styleDeclaration": [
295
+ "wrap-inside",
296
+ "wrapInside"
297
+ ]
298
+ },
299
+ {
300
+ "name": "wrap-before",
301
+ "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
302
+ "initial": "auto",
303
+ "appliesTo": "inline-level boxes and flex items",
304
+ "inherited": "no",
305
+ "percentages": "n/a",
306
+ "computedValue": "specified keyword",
307
+ "canonicalOrder": "per grammar",
308
+ "animationType": "discrete",
309
+ "values": [
310
+ {
311
+ "name": "auto",
312
+ "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
313
+ "type": "value",
314
+ "value": "auto"
315
+ },
316
+ {
317
+ "name": "avoid",
318
+ "prose": "Line breaking is suppressed immediately before/after the box: the UA may only break there if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.",
319
+ "type": "value",
320
+ "value": "avoid"
321
+ },
322
+ {
323
+ "name": "avoid-line",
324
+ "prose": "Same as avoid, but only for line breaks.",
325
+ "type": "value",
326
+ "value": "avoid-line"
327
+ },
328
+ {
329
+ "name": "avoid-flex",
330
+ "prose": "Same as avoid, but only for flex line breaks.",
331
+ "type": "value",
332
+ "value": "avoid-flex"
333
+ },
334
+ {
335
+ "name": "line",
336
+ "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
337
+ "type": "value",
338
+ "value": "line"
339
+ },
340
+ {
341
+ "name": "flex",
342
+ "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
343
+ "type": "value",
344
+ "value": "flex"
345
+ }
346
+ ],
347
+ "styleDeclaration": [
348
+ "wrap-before",
349
+ "wrapBefore"
350
+ ]
351
+ },
352
+ {
353
+ "name": "wrap-after",
354
+ "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
355
+ "initial": "auto",
356
+ "appliesTo": "inline-level boxes and flex items",
357
+ "inherited": "no",
358
+ "percentages": "n/a",
359
+ "computedValue": "specified keyword",
360
+ "canonicalOrder": "per grammar",
361
+ "animationType": "discrete",
362
+ "values": [
363
+ {
364
+ "name": "auto",
365
+ "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
366
+ "type": "value",
367
+ "value": "auto"
368
+ },
369
+ {
370
+ "name": "avoid",
371
+ "prose": "Line breaking is suppressed immediately before/after the box: the UA may only break there if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.",
372
+ "type": "value",
373
+ "value": "avoid"
374
+ },
375
+ {
376
+ "name": "avoid-line",
377
+ "prose": "Same as avoid, but only for line breaks.",
378
+ "type": "value",
379
+ "value": "avoid-line"
380
+ },
381
+ {
382
+ "name": "avoid-flex",
383
+ "prose": "Same as avoid, but only for flex line breaks.",
384
+ "type": "value",
385
+ "value": "avoid-flex"
386
+ },
387
+ {
388
+ "name": "line",
389
+ "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
390
+ "type": "value",
391
+ "value": "line"
392
+ },
393
+ {
394
+ "name": "flex",
395
+ "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
396
+ "type": "value",
397
+ "value": "flex"
398
+ }
399
+ ],
400
+ "styleDeclaration": [
401
+ "wrap-after",
402
+ "wrapAfter"
403
+ ]
404
+ },
405
+ {
406
+ "name": "text-wrap-style",
407
+ "value": "auto| balance | stable | pretty",
408
+ "initial": "auto",
409
+ "appliesTo": "block containers hat establish an inline formatting context",
410
+ "inherited": "yes",
411
+ "percentages": "n/a",
412
+ "computedValue": "specified keyword",
413
+ "canonicalOrder": "per grammar",
414
+ "animationType": "discrete",
415
+ "values": [
416
+ {
417
+ "name": "auto",
418
+ "prose": "The exact algorithm for selecting which soft wrap opportunity to break at is UA-defined. The algorithm may consider multiple lines when making break decisions. The UA may bias for speed over best layout. The UA must not attempt to even out all lines (including the last) as for balance. This value selects the UA’s preferred (or most Web-compatible) wrapping algorithm.",
419
+ "type": "value",
420
+ "value": "auto"
421
+ },
422
+ {
423
+ "name": "balance",
424
+ "prose": "Line breaks are chosen to balance the remaining (empty) space in each line box, if better balance than auto is possible. This must not change the number of line boxes the block would contain if text-wrap were set to auto. The remaining space to consider is that which remains after placing floats and inline content, but before any adjustments due to text justification. Line boxes are balanced when the standard deviation from the average inline-size of the remaining space in each line box is reduced over the block (including lines that end in a forced break). The exact algorithm is UA-defined. UAs may treat this value as auto if there are more than ten lines to balance.",
425
+ "type": "value",
426
+ "value": "balance"
427
+ },
428
+ {
429
+ "name": "stable",
430
+ "prose": "Specifies that content on subsequent lines should not be considered when making break decisions so that when editing text any content before the cursor remains stable; otherwise equivalent to auto,",
431
+ "type": "value",
432
+ "value": "stable"
433
+ },
434
+ {
435
+ "name": "pretty",
436
+ "prose": "Specifies the UA should bias for better layout over speed, and is expected to consider multiple lines, when making break decisions. Otherwise equivalent to auto,",
437
+ "type": "value",
438
+ "value": "pretty"
439
+ }
440
+ ],
441
+ "styleDeclaration": [
442
+ "text-wrap-style",
443
+ "textWrapStyle"
444
+ ]
445
+ },
446
+ {
447
+ "name": "text-wrap",
448
+ "value": "<'text-wrap-mode'> || <'text-wrap-style'>",
449
+ "initial": "wrap",
450
+ "appliesTo": "see individual properties",
451
+ "inherited": "see individual properties",
452
+ "percentages": "see individual properties",
453
+ "computedValue": "see individual properties",
454
+ "canonicalOrder": "per grammar",
455
+ "animationType": "see individual properties",
456
+ "styleDeclaration": [
457
+ "text-wrap",
458
+ "textWrap"
459
+ ]
460
+ },
274
461
  {
275
462
  "name": "word-break",
276
- "value": "normal | keep-all | break-all | break-word",
463
+ "value": "normal | break-all | keep-all | manual | auto-phrase | break-word",
277
464
  "initial": "normal",
278
465
  "appliesTo": "text",
279
466
  "inherited": "yes",
@@ -284,7 +471,7 @@
284
471
  "values": [
285
472
  {
286
473
  "name": "normal",
287
- "prose": "Words break according to their customary rules, as described above. Korean, which commonly exhibits two different behaviors, allows breaks between any two consecutive Hangul/Hanja. For Ethiopic, which also exhibits two different behaviors, such breaks within words are not allowed.",
474
+ "prose": "Words break according to their customary rules, as described above. Korean, which commonly exhibits two different behaviors, allows breaks between any two consecutive Hangul/Hanja. For Ethiopic, which also exhibits two different behaviors, such breaks within words are not allowed. Some writing systems require specific processing to obtain the customarily expected soft wrap opportunities, as described in § 6.1.1 Analytical Word Breaking.",
288
475
  "type": "value",
289
476
  "value": "normal"
290
477
  },
@@ -296,10 +483,22 @@
296
483
  },
297
484
  {
298
485
  "name": "keep-all",
299
- "prose": "Breaking is forbidden within “words”: implicit soft wrap opportunities between typographic letter units (or other typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes [UAX14]) are suppressed, i.e. breaks are prohibited between pairs of such characters (regardless of line-break settings other than anywhere) except where opportunities exist due to dictionary-based breaking. Otherwise this option is equivalent to normal. In this style, sequences of CJK characters do not break.",
486
+ "prose": "Breaking is forbidden within “words”: implicit soft wrap opportunities between typographic letter units (or other typographic character units belonging to the NU, AL, AI, or ID Unicode line breaking classes [UAX14]) are suppressed, i.e. breaks are prohibited between pairs of such characters (regardless of line-break settings other than anywhere) except where opportunities exist due to § 6.1.1.1 Lexical Word Breaking. Otherwise this option is equivalent to normal. In this style, sequences of CJK characters do not break.",
300
487
  "type": "value",
301
488
  "value": "keep-all"
302
489
  },
490
+ {
491
+ "name": "manual",
492
+ "prose": "Behaves the same as normal, except that § 6.1.1.1 Lexical Word Breaking must not be performed. Specifically, typographic character units with class SA in [UAX14] must be treated as if they had class AL (i.e. assuming a value of line-break other than anywhere, there is no soft wrap opportunity between pairs of such characters). alternatively, this value could be based on keep-all rather than normal. Yet another variant is to merge this behavior with keep-all.",
493
+ "type": "value",
494
+ "value": "manual"
495
+ },
496
+ {
497
+ "name": "auto-phrase",
498
+ "prose": "Behaves the same as normal, except that this value directs the user agent to perform language-specific content analysis to prioritize keeping natural phrases (of multiple words) together. If the content language of the element is unknown, or if the user agent does not know how to detect phrase boundaries for that particular language, this value must behave as normal. Otherwise, the user agent should detect phrase boundaries and suppress soft wrap opportunities within each phrase. Regardless of the content language and support for phrase boundary detection, hyphenation opportunities are suppressed as if hyphens: none had been specified.",
499
+ "type": "value",
500
+ "value": "auto-phrase"
501
+ },
303
502
  {
304
503
  "name": "break-word",
305
504
  "prose": "For compatibility with legacy content, the word-break property also supports a deprecated break-word keyword. When specified, this has the same effect as word-break: normal and overflow-wrap: anywhere, regardless of the actual value of the overflow-wrap property.",
@@ -535,13 +734,13 @@
535
734
  "values": [
536
735
  {
537
736
  "name": "normal",
538
- "prose": "Lines may break only at allowed break points. However, the restrictions introduced by word-break: keep-all may be relaxed to match word-break: normal if there are no otherwise-acceptable break points in the line.",
737
+ "prose": "Lines may break only at allowed break points. However, the restrictions introduced by word-break: keep-all may be relaxed to match word-break: normal if there are no otherwise-acceptable break points in the line. Also, the restrictions introduced by word-break: auto-phrase are relaxed if there are no otherwise-acceptable break points in the line: If suppressing soft wrap opportunities within a particular phrase would cause that phrase to overflow even when placed on an otherwise empty line, the user agent must fall back to the same soft wrap opportunities as normal within that phrase. If that is not enough to prevent overflow, suppression of hyphenation opportunities must also be abandoned within each line that would overflow. As an intermediary measure, user agents may also detect multiple levels of phrases, choosing to shorter ones (possibly down to individual words) when longer ones would lead to overflow. The soft wrap opportunities obtained by relaxing the restrictions introduced by word-break: keep-all and word-break: auto-phrase are not considered when calculating min-content intrinsic sizes.",
539
738
  "type": "value",
540
739
  "value": "normal"
541
740
  },
542
741
  {
543
742
  "name": "anywhere",
544
- "prose": "An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line. Shaping characters are still shaped as if the word were not broken, and grapheme clusters must stay together as one unit. No hyphenation character is inserted at the break point. Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes.",
743
+ "prose": "An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line. Shaping characters are still shaped as if the word were not broken, and grapheme clusters must stay together as one unit. No hyphenation character is inserted at the break point. Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes. In the case of word-break: auto-phrase, these additional soft wrap opportunities are only introduced if relaxing the restrictions introduced by word-break: auto-phrase as described in overflow-wrap: normal is insufficient to prevent overflow.",
545
744
  "type": "value",
546
745
  "value": "anywhere"
547
746
  },
@@ -572,188 +771,6 @@
572
771
  "wordWrap"
573
772
  ]
574
773
  },
575
- {
576
- "name": "text-wrap",
577
- "value": "wrap | nowrap | balance | stable | pretty",
578
- "initial": "wrap",
579
- "appliesTo": "text and block containers",
580
- "inherited": "yes",
581
- "percentages": "n/a",
582
- "computedValue": "specified keyword",
583
- "canonicalOrder": "per grammar",
584
- "animationType": "discrete",
585
- "values": [
586
- {
587
- "name": "wrap",
588
- "prose": "Inline-level content may break across lines at allowed soft wrap opportunities, as determined by the line-breaking rules in effect in order to minimize inline-axis overflow. The exact algorithm is UA-defined. The algorithm may consider multiple lines when making break decisions. The UA may bias for speed over best layout. The UA must not attempt to even out all lines (including the last) as for balance. This value selects the UA’s preferred (or most Web-compatible) wrapping algorithm.",
589
- "type": "value",
590
- "value": "wrap"
591
- },
592
- {
593
- "name": "nowrap",
594
- "prose": "Inline-level content does not break across lines; content that does not fit within the block container overflows it.",
595
- "type": "value",
596
- "value": "nowrap"
597
- },
598
- {
599
- "name": "balance",
600
- "prose": "Same as wrap for inline boxes. For block containers that establish an inline formatting context, line breaks are chosen to balance the remaining (empty) space in each line box, if better balance than wrap is possible. This must not change the number of line boxes the block would contain if text-wrap were set to wrap. The remaining space to consider is that which remains after placing floats and inline content, but before any adjustments due to text justification. Line boxes are balanced when the standard deviation from the average inline-size of the remaining space in each line box is reduced over the block (including lines that end in a forced break). The exact algorithm is UA-defined. UAs may treat this value as wrap if there are more than ten lines to balance.",
601
- "type": "value",
602
- "value": "balance"
603
- },
604
- {
605
- "name": "stable",
606
- "prose": "When applied to a block container that establishes an inline formatting context, specifies that content on subsequent lines should not be considered when making break decisions so that when editing text any content before the cursor remains stable; otherwise equivalent to wrap,",
607
- "type": "value",
608
- "value": "stable"
609
- },
610
- {
611
- "name": "pretty",
612
- "prose": "When applied to a block container that establishes an inline formatting context, specifies the UA should bias for better layout over speed, and is expected to consider multiple lines, when making break decisions. Otherwise equivalent to wrap,",
613
- "type": "value",
614
- "value": "pretty"
615
- }
616
- ],
617
- "styleDeclaration": [
618
- "text-wrap",
619
- "textWrap"
620
- ]
621
- },
622
- {
623
- "name": "wrap-before",
624
- "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
625
- "initial": "auto",
626
- "appliesTo": "inline-level boxes and flex items",
627
- "inherited": "no",
628
- "percentages": "n/a",
629
- "computedValue": "specified keyword",
630
- "canonicalOrder": "per grammar",
631
- "animationType": "discrete",
632
- "values": [
633
- {
634
- "name": "auto",
635
- "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
636
- "type": "value",
637
- "value": "auto"
638
- },
639
- {
640
- "name": "avoid",
641
- "prose": "Line breaking is suppressed immediately before/after the box: the UA may only break there if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.",
642
- "type": "value",
643
- "value": "avoid"
644
- },
645
- {
646
- "name": "avoid-line",
647
- "prose": "Same as avoid, but only for line breaks.",
648
- "type": "value",
649
- "value": "avoid-line"
650
- },
651
- {
652
- "name": "avoid-flex",
653
- "prose": "Same as avoid, but only for flex line breaks.",
654
- "type": "value",
655
- "value": "avoid-flex"
656
- },
657
- {
658
- "name": "line",
659
- "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
660
- "type": "value",
661
- "value": "line"
662
- },
663
- {
664
- "name": "flex",
665
- "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
666
- "type": "value",
667
- "value": "flex"
668
- }
669
- ],
670
- "styleDeclaration": [
671
- "wrap-before",
672
- "wrapBefore"
673
- ]
674
- },
675
- {
676
- "name": "wrap-after",
677
- "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
678
- "initial": "auto",
679
- "appliesTo": "inline-level boxes and flex items",
680
- "inherited": "no",
681
- "percentages": "n/a",
682
- "computedValue": "specified keyword",
683
- "canonicalOrder": "per grammar",
684
- "animationType": "discrete",
685
- "values": [
686
- {
687
- "name": "auto",
688
- "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
689
- "type": "value",
690
- "value": "auto"
691
- },
692
- {
693
- "name": "avoid",
694
- "prose": "Line breaking is suppressed immediately before/after the box: the UA may only break there if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto.",
695
- "type": "value",
696
- "value": "avoid"
697
- },
698
- {
699
- "name": "avoid-line",
700
- "prose": "Same as avoid, but only for line breaks.",
701
- "type": "value",
702
- "value": "avoid-line"
703
- },
704
- {
705
- "name": "avoid-flex",
706
- "prose": "Same as avoid, but only for flex line breaks.",
707
- "type": "value",
708
- "value": "avoid-flex"
709
- },
710
- {
711
- "name": "line",
712
- "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
713
- "type": "value",
714
- "value": "line"
715
- },
716
- {
717
- "name": "flex",
718
- "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
719
- "type": "value",
720
- "value": "flex"
721
- }
722
- ],
723
- "styleDeclaration": [
724
- "wrap-after",
725
- "wrapAfter"
726
- ]
727
- },
728
- {
729
- "name": "wrap-inside",
730
- "value": "auto | avoid",
731
- "initial": "auto",
732
- "appliesTo": "inline boxes",
733
- "inherited": "no",
734
- "percentages": "n/a",
735
- "computedValue": "specified keyword",
736
- "canonicalOrder": "per grammar",
737
- "animationType": "discrete",
738
- "values": [
739
- {
740
- "name": "auto",
741
- "prose": "Lines may break at allowed break points within the box, as determined by the line-breaking rules in effect.",
742
- "type": "value",
743
- "value": "auto"
744
- },
745
- {
746
- "name": "avoid",
747
- "prose": "Line breaking is suppressed within the box: the UA may only break within the box if there are no other valid break points in the line. If the text breaks, line-breaking restrictions are honored as for auto. If boxes with avoid are nested and the UA must break within these boxes, a break in an outer box must be used before a break within an inner box may be used.",
748
- "type": "value",
749
- "value": "avoid"
750
- }
751
- ],
752
- "styleDeclaration": [
753
- "wrap-inside",
754
- "wrapInside"
755
- ]
756
- },
757
774
  {
758
775
  "name": "text-align",
759
776
  "value": "start | end | left | right | center | <string> | justify | match-parent | justify-all",
@@ -870,7 +887,7 @@
870
887
  },
871
888
  {
872
889
  "name": "text-justify",
873
- "value": "[ auto | none | inter-word | inter-character ] || no-compress",
890
+ "value": "[ auto | none | inter-word | inter-character | ruby ] || no-compress",
874
891
  "initial": "auto",
875
892
  "appliesTo": "text",
876
893
  "inherited": "yes",
package/css-ui.json CHANGED
@@ -50,7 +50,7 @@
50
50
  },
51
51
  {
52
52
  "name": "outline-color",
53
- "value": "auto | [ <color> | <image-1D> ] | invert",
53
+ "value": "auto | [ <color> | <image-1D> ]",
54
54
  "initial": "auto",
55
55
  "appliesTo": "all elements",
56
56
  "inherited": "no",
@@ -59,15 +59,9 @@
59
59
  "canonicalOrder": "per grammar",
60
60
  "animationType": "by computed value",
61
61
  "values": [
62
- {
63
- "name": "invert",
64
- "prose": "the user agent is expected to perform a color inversion on the pixels on the screen. This is a common trick to ensure the focus border is visible, regardless of color background. Conformant UAs may ignore the invert value on platforms that do not support color inversion of the pixels on the screen. If the UA does not support the invert value, then it must reject that value at parse-time, and the initial value of the outline-color property is the currentColor keyword.",
65
- "type": "value",
66
- "value": "invert"
67
- },
68
62
  {
69
63
  "name": "auto",
70
- "prose": "When outline-style is auto, outline-color: auto represents the accent color. When outline-style is not auto, outline-color: auto computes to another value (see below).",
64
+ "prose": "When outline-style is auto, outline-color: auto computes to auto and represents the accent color. Otherwise, outline-color: auto computes to currentColor.",
71
65
  "type": "value",
72
66
  "value": "auto"
73
67
  }
@@ -0,0 +1,37 @@
1
+ {
2
+ "spec": {
3
+ "title": "CSS View Transitions Module Level 2",
4
+ "url": "https://drafts.csswg.org/css-view-transitions-2/"
5
+ },
6
+ "properties": [],
7
+ "atrules": [
8
+ {
9
+ "name": "@auto-view-transition",
10
+ "descriptors": [
11
+ {
12
+ "name": "same-origin",
13
+ "for": "@auto-view-transition",
14
+ "value": "enabled | disabled",
15
+ "initial": "disabled",
16
+ "values": [
17
+ {
18
+ "name": "disabled",
19
+ "prose": "There will be no transition.",
20
+ "type": "value",
21
+ "value": "disabled"
22
+ },
23
+ {
24
+ "name": "enabled",
25
+ "prose": "The transition will be enabled if the navigation is same-origin, without cross-origin redirects.",
26
+ "type": "value",
27
+ "value": "enabled"
28
+ }
29
+ ]
30
+ }
31
+ ],
32
+ "value": "@auto-view-transition { <declaration-rule-list> }"
33
+ }
34
+ ],
35
+ "selectors": [],
36
+ "values": []
37
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webref/css",
3
3
  "description": "CSS definitions of the web platform",
4
- "version": "6.7.0",
4
+ "version": "6.8.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/w3c/webref.git"