@webref/css 6.10.4 → 6.11.1

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.
Files changed (114) hide show
  1. package/CSS.json +83 -8
  2. package/README.md +1 -0
  3. package/SVG.json +27 -0
  4. package/compat.json +75 -0
  5. package/compositing.json +22 -0
  6. package/css-align.json +59 -0
  7. package/css-anchor-position.json +247 -81
  8. package/css-animations-2.json +13 -0
  9. package/css-animations.json +34 -0
  10. package/css-backgrounds-4.json +12 -0
  11. package/css-backgrounds.json +78 -0
  12. package/css-borders.json +91 -0
  13. package/css-box.json +48 -0
  14. package/css-break.json +50 -0
  15. package/css-cascade-6.json +3 -0
  16. package/css-cascade.json +10 -0
  17. package/css-color-5.json +74 -0
  18. package/css-color-6.json +6 -0
  19. package/css-color-adjust.json +14 -0
  20. package/css-color.json +272 -0
  21. package/css-conditional-4.json +2 -0
  22. package/css-conditional-5.json +7 -0
  23. package/css-conditional.json +6 -0
  24. package/css-contain-3.json +27 -0
  25. package/css-contain.json +12 -0
  26. package/css-content.json +86 -13
  27. package/css-counter-styles.json +85 -0
  28. package/css-display.json +48 -0
  29. package/css-easing.json +24 -0
  30. package/css-env.json +11 -0
  31. package/css-exclusions.json +11 -0
  32. package/css-extensions.json +4 -0
  33. package/css-flexbox.json +24 -0
  34. package/css-fonts-5.json +49 -3
  35. package/css-fonts.json +207 -2
  36. package/css-gcpm-4.json +10 -4
  37. package/css-gcpm.json +13 -1
  38. package/css-grid-3.json +1 -0
  39. package/css-grid.json +88 -0
  40. package/css-highlight-api.json +3 -1
  41. package/css-images-4.json +49 -0
  42. package/css-images-5.json +3 -0
  43. package/css-images.json +46 -0
  44. package/css-inline.json +93 -0
  45. package/css-layout-api.json +1 -0
  46. package/css-line-grid.json +14 -0
  47. package/css-link-params.json +2 -0
  48. package/css-lists.json +34 -0
  49. package/css-logical.json +27 -0
  50. package/css-masking.json +69 -0
  51. package/css-multicol-2.json +5 -0
  52. package/css-multicol.json +19 -0
  53. package/css-namespaces.json +2 -0
  54. package/css-nav.json +10 -0
  55. package/css-nesting.json +2 -1
  56. package/css-overflow-4.json +37 -1
  57. package/css-overflow.json +38 -0
  58. package/css-overscroll.json +20 -0
  59. package/css-page-floats.json +34 -0
  60. package/css-page.json +52 -0
  61. package/css-paint-api.json +1 -0
  62. package/css-position-4.json +5 -1
  63. package/css-position.json +50 -0
  64. package/css-properties-values-api.json +4 -0
  65. package/css-pseudo.json +23 -10
  66. package/css-regions.json +3 -0
  67. package/css-rhythm.json +15 -0
  68. package/css-round-display.json +8 -0
  69. package/css-ruby.json +22 -0
  70. package/css-scoping.json +8 -4
  71. package/css-scroll-anchoring.json +3 -0
  72. package/css-scroll-snap-2.json +55 -5
  73. package/css-scroll-snap.json +53 -0
  74. package/css-scrollbars.json +7 -0
  75. package/css-shadow-parts.json +1 -0
  76. package/css-shapes-2.json +34 -0
  77. package/css-shapes.json +22 -0
  78. package/css-size-adjust.json +4 -0
  79. package/css-sizing-4.json +59 -0
  80. package/css-sizing.json +42 -0
  81. package/css-speech.json +115 -0
  82. package/css-syntax.json +43 -0
  83. package/css-tables.json +5 -0
  84. package/css-text-4.json +161 -0
  85. package/css-text-decor-4.json +75 -0
  86. package/css-text-decor.json +32 -0
  87. package/css-text.json +70 -0
  88. package/css-transforms-2.json +37 -0
  89. package/css-transforms.json +26 -0
  90. package/css-transitions-2.json +4 -0
  91. package/css-transitions.json +9 -0
  92. package/css-ui.json +92 -0
  93. package/css-values-5.json +59 -0
  94. package/css-values.json +115 -0
  95. package/css-variables.json +2 -0
  96. package/css-view-transitions-2.json +49 -3
  97. package/css-view-transitions.json +16 -13
  98. package/css-viewport.json +43 -0
  99. package/css-will-change.json +6 -0
  100. package/css-writing-modes.json +26 -0
  101. package/fill-stroke.json +66 -0
  102. package/filter-effects-2.json +1 -0
  103. package/filter-effects.json +24 -0
  104. package/html.json +3 -0
  105. package/mathml-core.json +3 -0
  106. package/mediaqueries-5.json +121 -0
  107. package/mediaqueries.json +77 -0
  108. package/motion.json +32 -0
  109. package/package.json +1 -1
  110. package/scroll-animations.json +54 -0
  111. package/selectors.json +173 -72
  112. package/svg-strokes.json +3 -0
  113. package/upgrade-insecure-requests.json +2 -0
  114. package/webvtt.json +8 -4
package/css-text-4.json CHANGED
@@ -6,6 +6,7 @@
6
6
  "properties": [
7
7
  {
8
8
  "name": "text-transform",
9
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-transform",
9
10
  "value": "none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana",
10
11
  "initial": "none",
11
12
  "appliesTo": "text",
@@ -18,36 +19,42 @@
18
19
  {
19
20
  "name": "none",
20
21
  "prose": "No effects.",
22
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-none",
21
23
  "type": "value",
22
24
  "value": "none"
23
25
  },
24
26
  {
25
27
  "name": "capitalize",
26
28
  "prose": "Puts the first typographic letter unit of each word, if lowercase, in titlecase; other characters are unaffected.",
29
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-capitalize",
27
30
  "type": "value",
28
31
  "value": "capitalize"
29
32
  },
30
33
  {
31
34
  "name": "uppercase",
32
35
  "prose": "Puts all letters in uppercase.",
36
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-uppercase",
33
37
  "type": "value",
34
38
  "value": "uppercase"
35
39
  },
36
40
  {
37
41
  "name": "lowercase",
38
42
  "prose": "Puts all letters in lowercase.",
43
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-lowercase",
39
44
  "type": "value",
40
45
  "value": "lowercase"
41
46
  },
42
47
  {
43
48
  "name": "full-width",
44
49
  "prose": "Puts all typographic character units in full-width form. If a character does not have a corresponding full-width form, it is left as is. This value is typically used to typeset Latin letters and digits as if they were ideographic characters.",
50
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-full-width",
45
51
  "type": "value",
46
52
  "value": "full-width"
47
53
  },
48
54
  {
49
55
  "name": "full-size-kana",
50
56
  "prose": "Converts all small Kana characters to the equivalent full-size Kana. This value is typically used for ruby annotation text, where authors may want all small Kana to be drawn as large Kana to compensate for legibility issues at the small font sizes typically used in ruby.",
57
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-transform-full-size-kana",
51
58
  "type": "value",
52
59
  "value": "full-size-kana"
53
60
  }
@@ -59,6 +66,7 @@
59
66
  },
60
67
  {
61
68
  "name": "word-space-transform",
69
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-word-space-transform",
62
70
  "value": "none | [ space | ideographic-space ] && auto-phrase?",
63
71
  "initial": "none",
64
72
  "appliesTo": "text",
@@ -71,24 +79,28 @@
71
79
  {
72
80
  "name": "none",
73
81
  "prose": "This property has no effect.",
82
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-space-transform-none",
74
83
  "type": "value",
75
84
  "value": "none"
76
85
  },
77
86
  {
78
87
  "name": "space",
79
88
  "prose": "Expandable separators within the child text of this element are replaced by U+0020 SPACE.",
89
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-space-transform-space",
80
90
  "type": "value",
81
91
  "value": "space"
82
92
  },
83
93
  {
84
94
  "name": "ideographic-space",
85
95
  "prose": "Expandable separators within the child text of this element are replaced by U+3000 IDEOGRAPHIC SPACE.",
96
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-space-transform-ideographic-space",
86
97
  "type": "value",
87
98
  "value": "ideographic-space"
88
99
  },
89
100
  {
90
101
  "name": "auto-phrase",
91
102
  "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.",
103
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-space-transform-auto-phrase",
92
104
  "type": "value",
93
105
  "value": "auto-phrase"
94
106
  }
@@ -100,6 +112,7 @@
100
112
  },
101
113
  {
102
114
  "name": "white-space",
115
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space",
103
116
  "value": "normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'>",
104
117
  "initial": "normal",
105
118
  "appliesTo": "text",
@@ -111,21 +124,25 @@
111
124
  "values": [
112
125
  {
113
126
  "name": "normal",
127
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-normal",
114
128
  "type": "value",
115
129
  "value": "normal"
116
130
  },
117
131
  {
118
132
  "name": "pre",
133
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-pre",
119
134
  "type": "value",
120
135
  "value": "pre"
121
136
  },
122
137
  {
123
138
  "name": "pre-wrap",
139
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-pre-wrap",
124
140
  "type": "value",
125
141
  "value": "pre-wrap"
126
142
  },
127
143
  {
128
144
  "name": "pre-line",
145
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-pre-line",
129
146
  "type": "value",
130
147
  "value": "pre-line"
131
148
  }
@@ -137,6 +154,7 @@
137
154
  },
138
155
  {
139
156
  "name": "white-space-collapse",
157
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space-collapse",
140
158
  "value": "collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces",
141
159
  "initial": "collapse",
142
160
  "appliesTo": "text",
@@ -149,36 +167,42 @@
149
167
  {
150
168
  "name": "collapse",
151
169
  "prose": "This value directs user agents to collapse sequences of white space into a single character (or in some cases, no character).",
170
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-collapse",
152
171
  "type": "value",
153
172
  "value": "collapse"
154
173
  },
155
174
  {
156
175
  "name": "preserve",
157
176
  "prose": "This value prevents user agents from collapsing sequences of white space. Segment breaks such as line feeds are preserved as forced line breaks.",
177
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-preserve",
158
178
  "type": "value",
159
179
  "value": "preserve"
160
180
  },
161
181
  {
162
182
  "name": "preserve-breaks",
163
183
  "prose": "Like collapse, this value collapses consecutive white space characters, but preserves segment breaks in the source as forced line breaks.",
184
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-preserve-breaks",
164
185
  "type": "value",
165
186
  "value": "preserve-breaks"
166
187
  },
167
188
  {
168
189
  "name": "preserve-spaces",
169
190
  "prose": "This value prevents user agents from collapsing sequences of white space, and converts tabs and segment breaks to spaces. (This value is intended to represent the behavior of xml:space=\"preserve\" in SVG.)",
191
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-preserve-spaces",
170
192
  "type": "value",
171
193
  "value": "preserve-spaces"
172
194
  },
173
195
  {
174
196
  "name": "break-spaces",
175
197
  "prose": "The behavior is identical to that of preserve, except that: Any sequence of preserved white space or other space separators always takes up space, including at the end of the line. A soft wrap opportunity exists after every preserved white space character and after every other space separator (including between adjacent spaces).",
198
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-break-spaces",
176
199
  "type": "value",
177
200
  "value": "break-spaces"
178
201
  },
179
202
  {
180
203
  "name": "discard",
181
204
  "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?",
205
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-collapse-discard",
182
206
  "type": "value",
183
207
  "value": "discard"
184
208
  }
@@ -190,6 +214,7 @@
190
214
  },
191
215
  {
192
216
  "name": "white-space-trim",
217
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space-trim",
193
218
  "value": "none | discard-before || discard-after || discard-inner",
194
219
  "initial": "none",
195
220
  "appliesTo": "inline boxes and block containers",
@@ -202,18 +227,21 @@
202
227
  {
203
228
  "name": "discard-before",
204
229
  "prose": "This value directs the UA to collapse all collapsible whitespace immediately before the start of the element.",
230
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-trim-discard-before",
205
231
  "type": "value",
206
232
  "value": "discard-before"
207
233
  },
208
234
  {
209
235
  "name": "discard-after",
210
236
  "prose": "This value directs the UA to collapse all collapsible whitespace immediately after the end of the element.",
237
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-trim-discard-after",
211
238
  "type": "value",
212
239
  "value": "discard-after"
213
240
  },
214
241
  {
215
242
  "name": "discard-inner",
216
243
  "prose": "For block containers this value directs UAs to discard all whitespace at the beginning of the element up to and including the last segment break before the first non-white-space character in the element as well as to discard all white space at the end of the element starting with the first segment break after the last non-white-space character in the element. For other elements this value directs UAs to discard all whitespace at the beginning and end of the element.",
244
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-white-space-trim-discard-inner",
217
245
  "type": "value",
218
246
  "value": "discard-inner"
219
247
  }
@@ -225,6 +253,7 @@
225
253
  },
226
254
  {
227
255
  "name": "tab-size",
256
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-tab-size",
228
257
  "value": "<number [0,∞]> | <length [0,∞]>",
229
258
  "initial": "8",
230
259
  "appliesTo": "text",
@@ -240,6 +269,7 @@
240
269
  },
241
270
  {
242
271
  "name": "text-wrap-mode",
272
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap-mode",
243
273
  "value": "wrap | nowrap",
244
274
  "initial": "wrap",
245
275
  "appliesTo": "text",
@@ -252,12 +282,14 @@
252
282
  {
253
283
  "name": "wrap",
254
284
  "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.",
285
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-mode-wrap",
255
286
  "type": "value",
256
287
  "value": "wrap"
257
288
  },
258
289
  {
259
290
  "name": "nowrap",
260
291
  "prose": "Inline-level content does not break across lines; content that does not fit within the block container overflows it.",
292
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-mode-nowrap",
261
293
  "type": "value",
262
294
  "value": "nowrap"
263
295
  }
@@ -269,6 +301,7 @@
269
301
  },
270
302
  {
271
303
  "name": "wrap-inside",
304
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-inside",
272
305
  "value": "auto | avoid",
273
306
  "initial": "auto",
274
307
  "appliesTo": "inline boxes",
@@ -281,12 +314,14 @@
281
314
  {
282
315
  "name": "auto",
283
316
  "prose": "Lines may break at allowed break points within the box, as determined by the line-breaking rules in effect.",
317
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-inside-auto",
284
318
  "type": "value",
285
319
  "value": "auto"
286
320
  },
287
321
  {
288
322
  "name": "avoid",
289
323
  "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.",
324
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-inside-avoid",
290
325
  "type": "value",
291
326
  "value": "avoid"
292
327
  }
@@ -298,6 +333,7 @@
298
333
  },
299
334
  {
300
335
  "name": "wrap-before",
336
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-before",
301
337
  "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
302
338
  "initial": "auto",
303
339
  "appliesTo": "inline-level boxes and flex items",
@@ -310,36 +346,42 @@
310
346
  {
311
347
  "name": "auto",
312
348
  "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
349
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-auto",
313
350
  "type": "value",
314
351
  "value": "auto"
315
352
  },
316
353
  {
317
354
  "name": "avoid",
318
355
  "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.",
356
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid",
319
357
  "type": "value",
320
358
  "value": "avoid"
321
359
  },
322
360
  {
323
361
  "name": "avoid-line",
324
362
  "prose": "Same as avoid, but only for line breaks.",
363
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid-line",
325
364
  "type": "value",
326
365
  "value": "avoid-line"
327
366
  },
328
367
  {
329
368
  "name": "avoid-flex",
330
369
  "prose": "Same as avoid, but only for flex line breaks.",
370
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid-flex",
331
371
  "type": "value",
332
372
  "value": "avoid-flex"
333
373
  },
334
374
  {
335
375
  "name": "line",
336
376
  "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
377
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-line",
337
378
  "type": "value",
338
379
  "value": "line"
339
380
  },
340
381
  {
341
382
  "name": "flex",
342
383
  "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
384
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-flex",
343
385
  "type": "value",
344
386
  "value": "flex"
345
387
  }
@@ -351,6 +393,7 @@
351
393
  },
352
394
  {
353
395
  "name": "wrap-after",
396
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-after",
354
397
  "value": "auto | avoid | avoid-line | avoid-flex | line | flex",
355
398
  "initial": "auto",
356
399
  "appliesTo": "inline-level boxes and flex items",
@@ -363,36 +406,42 @@
363
406
  {
364
407
  "name": "auto",
365
408
  "prose": "Lines may break at allowed break points before and after the box, as determined by the line-breaking rules in effect.",
409
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-auto",
366
410
  "type": "value",
367
411
  "value": "auto"
368
412
  },
369
413
  {
370
414
  "name": "avoid",
371
415
  "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.",
416
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid",
372
417
  "type": "value",
373
418
  "value": "avoid"
374
419
  },
375
420
  {
376
421
  "name": "avoid-line",
377
422
  "prose": "Same as avoid, but only for line breaks.",
423
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid-line",
378
424
  "type": "value",
379
425
  "value": "avoid-line"
380
426
  },
381
427
  {
382
428
  "name": "avoid-flex",
383
429
  "prose": "Same as avoid, but only for flex line breaks.",
430
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-avoid-flex",
384
431
  "type": "value",
385
432
  "value": "avoid-flex"
386
433
  },
387
434
  {
388
435
  "name": "line",
389
436
  "prose": "Force a line break immediately before/after the box if the box is an inline-level box.",
437
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-line",
390
438
  "type": "value",
391
439
  "value": "line"
392
440
  },
393
441
  {
394
442
  "name": "flex",
395
443
  "prose": "Force a flex line break immediately before/after the box if the box is a flex item in a multi-line flex container.",
444
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-wrap-before-flex",
396
445
  "type": "value",
397
446
  "value": "flex"
398
447
  }
@@ -404,6 +453,7 @@
404
453
  },
405
454
  {
406
455
  "name": "text-wrap-style",
456
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap-style",
407
457
  "value": "auto| balance | stable | pretty",
408
458
  "initial": "auto",
409
459
  "appliesTo": "block containers hat establish an inline formatting context",
@@ -416,24 +466,28 @@
416
466
  {
417
467
  "name": "auto",
418
468
  "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.",
469
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-style-auto",
419
470
  "type": "value",
420
471
  "value": "auto"
421
472
  },
422
473
  {
423
474
  "name": "balance",
424
475
  "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.",
476
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-style-balance",
425
477
  "type": "value",
426
478
  "value": "balance"
427
479
  },
428
480
  {
429
481
  "name": "stable",
430
482
  "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,",
483
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-style-stable",
431
484
  "type": "value",
432
485
  "value": "stable"
433
486
  },
434
487
  {
435
488
  "name": "pretty",
436
489
  "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,",
490
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-wrap-style-pretty",
437
491
  "type": "value",
438
492
  "value": "pretty"
439
493
  }
@@ -445,6 +499,7 @@
445
499
  },
446
500
  {
447
501
  "name": "text-wrap",
502
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap",
448
503
  "value": "<'text-wrap-mode'> || <'text-wrap-style'>",
449
504
  "initial": "wrap",
450
505
  "appliesTo": "see individual properties",
@@ -460,6 +515,7 @@
460
515
  },
461
516
  {
462
517
  "name": "word-break",
518
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-word-break",
463
519
  "value": "normal | break-all | keep-all | manual | auto-phrase | break-word",
464
520
  "initial": "normal",
465
521
  "appliesTo": "text",
@@ -472,36 +528,42 @@
472
528
  {
473
529
  "name": "normal",
474
530
  "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.",
531
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-normal",
475
532
  "type": "value",
476
533
  "value": "normal"
477
534
  },
478
535
  {
479
536
  "name": "break-all",
480
537
  "prose": "Breaking is allowed within “words”: specifically, in addition to soft wrap opportunities allowed for normal, any typographic letter units (and any typographic character units resolving to the NU (“numeric”), AL (“alphabetic”), or SA (“Southeast Asian”) line breaking classes [UAX14]) are instead treated as ID (“ideographic characters”) for the purpose of line-breaking. Hyphenation is not applied.",
538
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-break-all",
481
539
  "type": "value",
482
540
  "value": "break-all"
483
541
  },
484
542
  {
485
543
  "name": "keep-all",
486
544
  "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.",
545
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-keep-all",
487
546
  "type": "value",
488
547
  "value": "keep-all"
489
548
  },
490
549
  {
491
550
  "name": "manual",
492
551
  "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.",
552
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-manual",
493
553
  "type": "value",
494
554
  "value": "manual"
495
555
  },
496
556
  {
497
557
  "name": "auto-phrase",
498
558
  "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.",
559
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-auto-phrase",
499
560
  "type": "value",
500
561
  "value": "auto-phrase"
501
562
  },
502
563
  {
503
564
  "name": "break-word",
504
565
  "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.",
566
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-break-break-word",
505
567
  "type": "value",
506
568
  "value": "break-word"
507
569
  }
@@ -513,6 +575,7 @@
513
575
  },
514
576
  {
515
577
  "name": "line-break",
578
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-line-break",
516
579
  "value": "auto | loose | normal | strict | anywhere",
517
580
  "initial": "auto",
518
581
  "appliesTo": "text",
@@ -525,30 +588,35 @@
525
588
  {
526
589
  "name": "auto",
527
590
  "prose": "The UA determines the set of line-breaking restrictions to use, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines.",
591
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-line-break-auto",
528
592
  "type": "value",
529
593
  "value": "auto"
530
594
  },
531
595
  {
532
596
  "name": "loose",
533
597
  "prose": "Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers.",
598
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-line-break-loose",
534
599
  "type": "value",
535
600
  "value": "loose"
536
601
  },
537
602
  {
538
603
  "name": "normal",
539
604
  "prose": "Breaks text using the most common set of line-breaking rules.",
605
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-line-break-normal",
540
606
  "type": "value",
541
607
  "value": "normal"
542
608
  },
543
609
  {
544
610
  "name": "strict",
545
611
  "prose": "Breaks text using the most stringent set of line-breaking rules.",
612
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-line-break-strict",
546
613
  "type": "value",
547
614
  "value": "strict"
548
615
  },
549
616
  {
550
617
  "name": "anywhere",
551
618
  "prose": "There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved white spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ line breaking classes or mandated by the word-break property. [UAX14] The different wrapping opportunities must not be prioritized. Hyphenation is not applied.",
619
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-line-break-anywhere",
552
620
  "type": "value",
553
621
  "value": "anywhere"
554
622
  }
@@ -560,6 +628,7 @@
560
628
  },
561
629
  {
562
630
  "name": "hyphens",
631
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphens",
563
632
  "value": "none | manual | auto",
564
633
  "initial": "manual",
565
634
  "appliesTo": "text",
@@ -572,18 +641,21 @@
572
641
  {
573
642
  "name": "none",
574
643
  "prose": "Words are not hyphenated, even if characters inside the word explicitly define hyphenation opportunities.",
644
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphens-none",
575
645
  "type": "value",
576
646
  "value": "none"
577
647
  },
578
648
  {
579
649
  "name": "manual",
580
650
  "prose": "Words are only hyphenated where there are characters inside the word that explicitly suggest hyphenation opportunities. The UA must use the appropriate language-specific hyphenation character(s) and should apply any appropriate spelling changes just as for automatic hyphenation at the same point. In Unicode, U+00AD is a conditional \"soft hyphen\" and U+2010 is an unconditional hyphen. Unicode Standard Annex #14 describes the role of soft hyphens in Unicode line breaking. [UAX14] In HTML, &shy; represents the soft hyphen character, which suggests a hyphenation opportunity. ex&shy;ample",
651
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphens-manual",
581
652
  "type": "value",
582
653
  "value": "manual"
583
654
  },
584
655
  {
585
656
  "name": "auto",
586
657
  "prose": "Words may be broken at hyphenation opportunities determined automatically by a language-appropriate hyphenation resource in addition to those indicated explicitly by a conditional hyphen. Automatic hyphenation opportunities elsewhere within a word must be ignored if the word contains a conditional hyphen (&shy; or U+00AD SOFT HYPHEN), in favor of the conditional hyphen(s). However, if, even after breaking at such opportunities, a portion of that word is still too long to fit on one line, an automatic hyphenation opportunity may be used.",
658
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphens-auto",
587
659
  "type": "value",
588
660
  "value": "auto"
589
661
  }
@@ -594,6 +666,7 @@
594
666
  },
595
667
  {
596
668
  "name": "hyphenate-character",
669
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-character",
597
670
  "value": "auto | <string>",
598
671
  "initial": "auto",
599
672
  "appliesTo": "text",
@@ -606,12 +679,14 @@
606
679
  {
607
680
  "name": "auto",
608
681
  "prose": "Specifies that the user agent should find an appropriate string based on the content language’s typographic conventions, possibly from the same source as the hyphenation dictionary.",
682
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-character-auto",
609
683
  "type": "value",
610
684
  "value": "auto"
611
685
  },
612
686
  {
613
687
  "name": "<string>",
614
688
  "prose": "Specifies the string that appears at the hyphenation break when hyphenating. (The position of this string is not affected: the UA must insert the string according to the typographic conventions of the content language, defaulting to immediately before the hyphenation break.) The UA may truncate the used value to a limited number of typographic character units; it must not truncate only part of a typographic character unit.",
689
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-character-string",
615
690
  "type": "value",
616
691
  "value": "<string>"
617
692
  }
@@ -623,6 +698,7 @@
623
698
  },
624
699
  {
625
700
  "name": "hyphenate-limit-zone",
701
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-zone",
626
702
  "value": "<length-percentage>",
627
703
  "initial": "0",
628
704
  "appliesTo": "block containers",
@@ -638,6 +714,7 @@
638
714
  },
639
715
  {
640
716
  "name": "hyphenate-limit-chars",
717
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-chars",
641
718
  "value": "[ auto | <integer> ]{1,3}",
642
719
  "initial": "auto",
643
720
  "appliesTo": "text",
@@ -650,6 +727,7 @@
650
727
  {
651
728
  "name": "auto",
652
729
  "prose": "If three values are specified, the first value is the required minimum for the total characters in a word, the second value is the minimum for characters before the hyphenation point, and the third value is the minimum for characters after the hyphenation point. If the third value is missing, it is the same as the second. If the second value is missing, then it is auto. The auto value means that the UA chooses a value that adapts to the current layout.",
730
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-chars-auto",
653
731
  "type": "value",
654
732
  "value": "auto"
655
733
  }
@@ -661,6 +739,7 @@
661
739
  },
662
740
  {
663
741
  "name": "hyphenate-limit-lines",
742
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-lines",
664
743
  "value": "no-limit | <integer>",
665
744
  "initial": "no-limit",
666
745
  "appliesTo": "block containers",
@@ -673,30 +752,35 @@
673
752
  {
674
753
  "name": "none",
675
754
  "prose": "No restrictions imposed.",
755
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-lines-none",
676
756
  "type": "value",
677
757
  "value": "none"
678
758
  },
679
759
  {
680
760
  "name": "always",
681
761
  "prose": "The last full line of the element, or the last line before any column, page, or spread break inside the element should not be hyphenated.",
762
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-lines-always",
682
763
  "type": "value",
683
764
  "value": "always"
684
765
  },
685
766
  {
686
767
  "name": "column",
687
768
  "prose": "The last line before any column, page, or spread break inside the element should not be hyphenated.",
769
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-lines-column",
688
770
  "type": "value",
689
771
  "value": "column"
690
772
  },
691
773
  {
692
774
  "name": "page",
693
775
  "prose": "The last line before page or spread break inside the element should not be hyphenated.",
776
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-lines-page",
694
777
  "type": "value",
695
778
  "value": "page"
696
779
  },
697
780
  {
698
781
  "name": "spread",
699
782
  "prose": "The last line before any spread break inside the element should not be hyphenated.",
783
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hyphenate-limit-lines-spread",
700
784
  "type": "value",
701
785
  "value": "spread"
702
786
  }
@@ -708,6 +792,7 @@
708
792
  },
709
793
  {
710
794
  "name": "hyphenate-limit-last",
795
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-last",
711
796
  "value": "none | always | column | page | spread",
712
797
  "initial": "none",
713
798
  "appliesTo": "block containers",
@@ -723,6 +808,7 @@
723
808
  },
724
809
  {
725
810
  "name": "overflow-wrap",
811
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-overflow-wrap",
726
812
  "value": "normal | break-word | anywhere",
727
813
  "initial": "normal",
728
814
  "appliesTo": "text",
@@ -735,18 +821,21 @@
735
821
  {
736
822
  "name": "normal",
737
823
  "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.",
824
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-overflow-wrap-normal",
738
825
  "type": "value",
739
826
  "value": "normal"
740
827
  },
741
828
  {
742
829
  "name": "anywhere",
743
830
  "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.",
831
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-overflow-wrap-anywhere",
744
832
  "type": "value",
745
833
  "value": "anywhere"
746
834
  },
747
835
  {
748
836
  "name": "break-word",
749
837
  "prose": "As for anywhere except that soft wrap opportunities introduced by break-word are not considered when calculating min-content intrinsic sizes.",
838
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-overflow-wrap-break-word",
750
839
  "type": "value",
751
840
  "value": "break-word"
752
841
  }
@@ -758,6 +847,7 @@
758
847
  },
759
848
  {
760
849
  "name": "word-wrap",
850
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-word-wrap",
761
851
  "value": "normal | break-word | anywhere",
762
852
  "initial": "normal",
763
853
  "appliesTo": "text",
@@ -773,6 +863,7 @@
773
863
  },
774
864
  {
775
865
  "name": "text-align",
866
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align",
776
867
  "value": "start | end | left | right | center | <string> | justify | match-parent | justify-all",
777
868
  "initial": "start",
778
869
  "appliesTo": "block containers",
@@ -785,59 +876,69 @@
785
876
  {
786
877
  "name": "start",
787
878
  "prose": "Inline-level content is aligned to the start edge of the line box.",
879
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-start",
788
880
  "type": "value",
789
881
  "value": "start"
790
882
  },
791
883
  {
792
884
  "name": "end",
793
885
  "prose": "Inline-level content is aligned to the end edge of the line box.",
886
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-end",
794
887
  "type": "value",
795
888
  "value": "end"
796
889
  },
797
890
  {
798
891
  "name": "left",
799
892
  "prose": "Inline-level content is aligned to the line-left edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]",
893
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-left",
800
894
  "type": "value",
801
895
  "value": "left"
802
896
  },
803
897
  {
804
898
  "name": "right",
805
899
  "prose": "Inline-level content is aligned to the line-right edge of the line box. (In vertical writing modes, this can be either the physical top or bottom, depending on writing-mode.) [CSS-WRITING-MODES-4]",
900
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-right",
806
901
  "type": "value",
807
902
  "value": "right"
808
903
  },
809
904
  {
810
905
  "name": "center",
811
906
  "prose": "Inline-level content is centered within the line box.",
907
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-center",
812
908
  "type": "value",
813
909
  "value": "center"
814
910
  },
815
911
  {
816
912
  "name": "<string>",
817
913
  "prose": "The string must be a single character; otherwise the declaration is invalid and must be ignored. When applied to a table cell, specifies the alignment character around which the cell’s contents will align. See below for further details and how this value combines with keywords.",
914
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-string",
818
915
  "type": "value",
819
916
  "value": "<string>"
820
917
  },
821
918
  {
822
919
  "name": "alignment character",
920
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-alignment-character",
823
921
  "type": "value",
824
922
  "value": "alignment character"
825
923
  },
826
924
  {
827
925
  "name": "justify",
828
926
  "prose": "Text is justified according to the method specified by the text-justify property, in order to exactly fill the line box. Unless otherwise specified by text-align-last, the last line before a forced break or the end of the block is start-aligned.",
927
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-justify",
829
928
  "type": "value",
830
929
  "value": "justify"
831
930
  },
832
931
  {
833
932
  "name": "justify-all",
834
933
  "prose": "Sets both text-align-all and text-align-last to justify, forcing the last line to justify as well.",
934
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-justify-all",
835
935
  "type": "value",
836
936
  "value": "justify-all"
837
937
  },
838
938
  {
839
939
  "name": "match-parent",
840
940
  "prose": "This value behaves the same as inherit (computes to its parent’s computed value) except that an inherited value of start or end is interpreted against the parent’s direction value and results in a computed value of either left or right. Computes to start when specified on the root element. When specified on the text-align shorthand, sets both text-align-all and text-align-last to match-parent.",
941
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-match-parent",
841
942
  "type": "value",
842
943
  "value": "match-parent"
843
944
  }
@@ -849,6 +950,7 @@
849
950
  },
850
951
  {
851
952
  "name": "text-align-all",
953
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align-all",
852
954
  "value": "start | end | left | right | center | <string> | justify | match-parent",
853
955
  "initial": "start",
854
956
  "appliesTo": "block containers",
@@ -864,6 +966,7 @@
864
966
  },
865
967
  {
866
968
  "name": "text-align-last",
969
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align-last",
867
970
  "value": "auto | start | end | left | right | center | justify | match-parent",
868
971
  "initial": "auto",
869
972
  "appliesTo": "block containers",
@@ -876,6 +979,7 @@
876
979
  {
877
980
  "name": "auto",
878
981
  "prose": "If auto is specified, content on the affected line is aligned per text-align-all unless text-align-all is set to justify, in which case it is start-aligned. All other values are interpreted as described for text-align.",
982
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-align-last-auto",
879
983
  "type": "value",
880
984
  "value": "auto"
881
985
  }
@@ -887,6 +991,7 @@
887
991
  },
888
992
  {
889
993
  "name": "text-justify",
994
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-justify",
890
995
  "value": "[ auto | none | inter-word | inter-character | ruby ] || no-compress",
891
996
  "initial": "auto",
892
997
  "appliesTo": "text",
@@ -899,42 +1004,49 @@
899
1004
  {
900
1005
  "name": "auto",
901
1006
  "prose": "The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality. Since justification rules vary by writing system and language, UAs should, where possible, use a justification algorithm appropriate to the text. For example, the UA could use by default a justification method that is a simple universal compromise for all writing systems—​such as primarily expanding word separators and between CJK typographic letter units along with secondarily expanding between Southeast Asian typographic letter units. Then, in cases where the content language of the paragraph is known, it could choose a more language-tailored justification behavior e.g. following the Requirements for Japanese Text Layout for Japanese [JLREQ], using cursive elongation for Arabic, using inter-word for German, etc. An example of cursively-justified Arabic text, rendered by Tasmeem. Like English, Arabic can be justified by adjusting the spacing between words, but in most styles it can also be justified by calligraphically elongating or compressing the letterforms themselves. In this example, the upper text is extended to fill the line by the use of elongated (kashida) forms and swash forms, while the bottom line is compressed slightly by using a stacked combination for the characters between ت and م. By employing traditional calligraphic techniques, a typesetter can justify the line while preserving flow and color, providing a very high quality justification effect. However, this is by its nature a very script-specific effect. Mixed-script text with text-justify: auto: this interpretation uses a universal-compromise justification method, expanding at spaces as well as between CJK and Southeast Asian letters. This effectively uses inter-word + inter-ideograph spacing for lines that have word-separators and/or CJK characters and falls back to inter-cluster behavior for lines that don’t or for which the space stretches too far.",
1007
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-auto",
902
1008
  "type": "value",
903
1009
  "value": "auto"
904
1010
  },
905
1011
  {
906
1012
  "name": "none",
907
1013
  "prose": "Justification is disabled: there are no justification opportunities within the text. Mixed-script text with text-justify: none",
1014
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-none",
908
1015
  "type": "value",
909
1016
  "value": "none"
910
1017
  },
911
1018
  {
912
1019
  "name": "inter-word",
913
1020
  "prose": "Justification adjusts spacing at word separators only (effectively varying the used word-spacing on the line). This behavior is typical for languages that separate words using spaces, like English or Korean. Mixed-script text with text-justify: inter-word",
1021
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-inter-word",
914
1022
  "type": "value",
915
1023
  "value": "inter-word"
916
1024
  },
917
1025
  {
918
1026
  "name": "inter-character",
919
1027
  "prose": "Justification adjusts spacing between each pair of adjacent typographic character units (effectively varying the used letter-spacing on the line). This value is sometimes used in East Asian systems such as Japanese. Mixed-script text with text-justify: inter-character For legacy reasons, UAs must also support the alternate keyword distribute which must compute to inter-character, thus having the exact same meaning and behavior. UAs may treat this as a legacy value alias.",
1028
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-inter-character",
920
1029
  "type": "value",
921
1030
  "value": "inter-character"
922
1031
  },
923
1032
  {
924
1033
  "name": "distribute",
925
1034
  "prose": "For legacy reasons, UAs must also support the alternate keyword distribute which must compute to inter-character, thus having the exact same meaning and behavior. UAs may treat this as a legacy value alias.",
1035
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-distribute",
926
1036
  "type": "value",
927
1037
  "value": "distribute"
928
1038
  },
929
1039
  {
930
1040
  "name": "ruby",
931
1041
  "prose": "Justification adjusts spacing as for auto except: Justification opportunities are disabled at word separators. Justification opportunities are disabled between Bopomofo characters",
1042
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-ruby",
932
1043
  "type": "value",
933
1044
  "value": "ruby"
934
1045
  },
935
1046
  {
936
1047
  "name": "no-compress",
937
1048
  "prose": "Justification must not compress spacing controlled by text-spacing-trim or text-autospace. (If this value is not specified, the justification process may reduce such spacing except when the spacing is at the start or end of the line.) This keyword used to be part of text-spacing; it might need renaming to be more specific now that it’s here, as it implies that e.g. U+0020 cannot be compressed. [Issue #7079]",
1049
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-justify-no-compress",
938
1050
  "type": "value",
939
1051
  "value": "no-compress"
940
1052
  }
@@ -946,6 +1058,7 @@
946
1058
  },
947
1059
  {
948
1060
  "name": "text-group-align",
1061
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-group-align",
949
1062
  "value": "none | start | end | left | right | center",
950
1063
  "initial": "none",
951
1064
  "appliesTo": "block containers",
@@ -958,36 +1071,42 @@
958
1071
  {
959
1072
  "name": "none",
960
1073
  "prose": "Text alignment happens normally: group alignment is not performed.",
1074
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-none",
961
1075
  "type": "value",
962
1076
  "value": "none"
963
1077
  },
964
1078
  {
965
1079
  "name": "start",
966
1080
  "prose": "Inline-level content is group-aligned to the inline start side, by padding the inline end side of each line box.",
1081
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-start",
967
1082
  "type": "value",
968
1083
  "value": "start"
969
1084
  },
970
1085
  {
971
1086
  "name": "end",
972
1087
  "prose": "Inline-level content is group-aligned to the inline end side, by padding the inline start side of each line box.",
1088
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-end",
973
1089
  "type": "value",
974
1090
  "value": "end"
975
1091
  },
976
1092
  {
977
1093
  "name": "left",
978
1094
  "prose": "Inline-level content is group-aligned to the line-left side, by padding the line-right side of each line box.",
1095
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-left",
979
1096
  "type": "value",
980
1097
  "value": "left"
981
1098
  },
982
1099
  {
983
1100
  "name": "right",
984
1101
  "prose": "Inline-level content is group-aligned to the line-right side, by padding the line-left side of each line box.",
1102
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-right",
985
1103
  "type": "value",
986
1104
  "value": "right"
987
1105
  },
988
1106
  {
989
1107
  "name": "center",
990
1108
  "prose": "Inline-level content is group-aligned to the center, by padding both sides of each line box, half the spacing to each side.",
1109
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-group-align-center",
991
1110
  "type": "value",
992
1111
  "value": "center"
993
1112
  }
@@ -999,6 +1118,7 @@
999
1118
  },
1000
1119
  {
1001
1120
  "name": "word-spacing",
1121
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-word-spacing",
1002
1122
  "value": "normal | <length-percentage>",
1003
1123
  "initial": "normal",
1004
1124
  "appliesTo": "text",
@@ -1011,12 +1131,14 @@
1011
1131
  {
1012
1132
  "name": "normal",
1013
1133
  "prose": "No additional spacing is applied. Computes to zero.",
1134
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-spacing-normal",
1014
1135
  "type": "value",
1015
1136
  "value": "normal"
1016
1137
  },
1017
1138
  {
1018
1139
  "name": "<length-percentage>",
1019
1140
  "prose": "Specifies extra spacing in addition to the intrinsic inter-word spacing defined by the font.",
1141
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-word-spacing-length-percentage",
1020
1142
  "type": "value",
1021
1143
  "value": "<length-percentage>"
1022
1144
  }
@@ -1028,6 +1150,7 @@
1028
1150
  },
1029
1151
  {
1030
1152
  "name": "letter-spacing",
1153
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-letter-spacing",
1031
1154
  "value": "normal | <length-percentage>",
1032
1155
  "initial": "normal",
1033
1156
  "appliesTo": "inline boxes and text",
@@ -1040,12 +1163,14 @@
1040
1163
  {
1041
1164
  "name": "normal",
1042
1165
  "prose": "No additional spacing is applied. Computes to zero.",
1166
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-letter-spacing-normal",
1043
1167
  "type": "value",
1044
1168
  "value": "normal"
1045
1169
  },
1046
1170
  {
1047
1171
  "name": "<length>",
1048
1172
  "prose": "Specifies additional spacing between typographic character units. Values may be negative, but there may be implementation-dependent limits.",
1173
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-letter-spacing-length",
1049
1174
  "type": "value",
1050
1175
  "value": "<length>"
1051
1176
  }
@@ -1057,6 +1182,7 @@
1057
1182
  },
1058
1183
  {
1059
1184
  "name": "line-padding",
1185
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-line-padding",
1060
1186
  "value": "<length>",
1061
1187
  "initial": "0",
1062
1188
  "appliesTo": "inline boxes",
@@ -1072,6 +1198,7 @@
1072
1198
  },
1073
1199
  {
1074
1200
  "name": "text-autospace",
1201
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-autospace",
1075
1202
  "value": "normal | <autospace> | auto",
1076
1203
  "initial": "normal",
1077
1204
  "appliesTo": "text",
@@ -1084,48 +1211,56 @@
1084
1211
  {
1085
1212
  "name": "normal",
1086
1213
  "prose": "Same behavior as ideograph-alpha ideograph-numeric.",
1214
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-normal",
1087
1215
  "type": "value",
1088
1216
  "value": "normal"
1089
1217
  },
1090
1218
  {
1091
1219
  "name": "no-autospace",
1092
1220
  "prose": "No automatic space is inserted.",
1221
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-no-autospace",
1093
1222
  "type": "value",
1094
1223
  "value": "no-autospace"
1095
1224
  },
1096
1225
  {
1097
1226
  "name": "insert",
1098
1227
  "prose": "The specified spacing is automatically inserted if there are no space characters of any kind (Unicode general category Z) already there. If neither insert nor replace are specified, the behavior is the same as insert.",
1228
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-insert",
1099
1229
  "type": "value",
1100
1230
  "value": "insert"
1101
1231
  },
1102
1232
  {
1103
1233
  "name": "replace",
1104
1234
  "prose": "The specified spacing is automatically inserted even if there is already a space (U+0020) at that point; additionally, the space (U+0020) is removed. Other types of space characters (Unicode general category Z) suppress automatic spacing, as for insert.",
1235
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-replace",
1105
1236
  "type": "value",
1106
1237
  "value": "replace"
1107
1238
  },
1108
1239
  {
1109
1240
  "name": "ideograph-alpha",
1110
1241
  "prose": "Creates extra spacing between runs of ideographs and non-ideographic letters, see § 8.4.1 Inter-script Spacing.",
1242
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-ideograph-alpha",
1111
1243
  "type": "value",
1112
1244
  "value": "ideograph-alpha"
1113
1245
  },
1114
1246
  {
1115
1247
  "name": "ideograph-numeric",
1116
1248
  "prose": "Creates extra spacing between runs of ideographs and non-ideographic numerals, see § 8.4.1 Inter-script Spacing.",
1249
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-ideograph-numeric",
1117
1250
  "type": "value",
1118
1251
  "value": "ideograph-numeric"
1119
1252
  },
1120
1253
  {
1121
1254
  "name": "punctuation",
1122
1255
  "prose": "Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions. In this level, if the element’s content language is French, narrow no-break space (U+202F) and no-break space (U+00A0) is inserted where required by French typographic guidelines. Otherwise this value has no effect. However future specifications may add automatic spacing behavior for other languages.",
1256
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-punctuation",
1123
1257
  "type": "value",
1124
1258
  "value": "punctuation"
1125
1259
  },
1126
1260
  {
1127
1261
  "name": "auto",
1128
1262
  "prose": "The user agent chooses a set of typographically high quality spacing values. Different user agents running on different platforms may pick different values.",
1263
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-autospace-auto",
1129
1264
  "type": "value",
1130
1265
  "value": "auto"
1131
1266
  }
@@ -1137,6 +1272,7 @@
1137
1272
  },
1138
1273
  {
1139
1274
  "name": "text-spacing-trim",
1275
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-spacing-trim",
1140
1276
  "value": "<spacing-trim> | auto",
1141
1277
  "initial": "normal",
1142
1278
  "appliesTo": "text",
@@ -1149,42 +1285,49 @@
1149
1285
  {
1150
1286
  "name": "space-all",
1151
1287
  "prose": "All fullwidth punctuation characters are set with full-width glyphs (spaced).",
1288
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-space-all",
1152
1289
  "type": "value",
1153
1290
  "value": "space-all"
1154
1291
  },
1155
1292
  {
1156
1293
  "name": "normal",
1157
1294
  "prose": "Set fullwidth opening punctuation with full-width glyphs (spaced) at the start of each line; set fullwidth closing punctuation with half-width glyphs (flush) at the end of each line if it does not otherwise fit prior to justification, else set the punctuation with full-width glyphs; and collapse spacing between punctuation glyphs as described below.",
1295
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-normal",
1158
1296
  "type": "value",
1159
1297
  "value": "normal"
1160
1298
  },
1161
1299
  {
1162
1300
  "name": "trim-auto",
1163
1301
  "prose": "Set fullwidth opening punctuation with half-width glyphs (flush) at the start of each line; set fullwidth closing punctuation with half-width glyphs (flush) at the end of each line; and collapse spacing between punctuation glyphs as described below.",
1302
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-trim-auto",
1164
1303
  "type": "value",
1165
1304
  "value": "trim-auto"
1166
1305
  },
1167
1306
  {
1168
1307
  "name": "space-first",
1169
1308
  "prose": "Set fullwidth opening punctuation with full-width glyphs (spaced) on the first line the block container and each line after a forced line break. Otherwise as trim-auto.",
1309
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-space-first",
1170
1310
  "type": "value",
1171
1311
  "value": "space-first"
1172
1312
  },
1173
1313
  {
1174
1314
  "name": "trim-start",
1175
1315
  "prose": "Set fullwidth opening punctuation with half-width glyphs (flush) at the start of each line. Otherwise as normal.",
1316
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-trim-start",
1176
1317
  "type": "value",
1177
1318
  "value": "trim-start"
1178
1319
  },
1179
1320
  {
1180
1321
  "name": "trim-all",
1181
1322
  "prose": "Set fullwidth opening punctuation, fullwidth closing punctuation, and fullwidth middle dot punctuation with half-width glyphs, without regards for the position within the line nor for adjacent characters.",
1323
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-trim-all",
1182
1324
  "type": "value",
1183
1325
  "value": "trim-all"
1184
1326
  },
1185
1327
  {
1186
1328
  "name": "auto",
1187
1329
  "prose": "The user agent chooses a set of typographically high quality spacing values. Different user agents running on different platforms may pick different values. Do we need auto? It would be weird for the author to choose platform-dependent behavior at the start of the first line, and it should otherwise use trim-auto.",
1330
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-trim-auto",
1188
1331
  "type": "value",
1189
1332
  "value": "auto"
1190
1333
  }
@@ -1196,6 +1339,7 @@
1196
1339
  },
1197
1340
  {
1198
1341
  "name": "text-spacing",
1342
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-spacing",
1199
1343
  "value": "none | auto | <spacing-trim> || <autospace>",
1200
1344
  "initial": "see individual properties",
1201
1345
  "appliesTo": "text",
@@ -1208,24 +1352,28 @@
1208
1352
  {
1209
1353
  "name": "none",
1210
1354
  "prose": "Turns off all text-spacing features: sets text-spacing-trim to space-all and text-autospace to no-autospace.",
1355
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-none",
1211
1356
  "type": "value",
1212
1357
  "value": "none"
1213
1358
  },
1214
1359
  {
1215
1360
  "name": "auto",
1216
1361
  "prose": "Sets both text-spacing-trim and text-autospace to auto.",
1362
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-auto",
1217
1363
  "type": "value",
1218
1364
  "value": "auto"
1219
1365
  },
1220
1366
  {
1221
1367
  "name": "<spacing-trim>",
1222
1368
  "prose": "Sets text-spacing-trim to the specified value. If no <autospace> value is given, text-autospace is set to its initial value.",
1369
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-spacing-trim",
1223
1370
  "type": "value",
1224
1371
  "value": "<spacing-trim>"
1225
1372
  },
1226
1373
  {
1227
1374
  "name": "<autospace>",
1228
1375
  "prose": "Sets text-autospace to the specified value. If no <spacing-trim> value is given, text-spacing-trim is set to its initial value.",
1376
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-spacing-autospace",
1229
1377
  "type": "value",
1230
1378
  "value": "<autospace>"
1231
1379
  }
@@ -1237,6 +1385,7 @@
1237
1385
  },
1238
1386
  {
1239
1387
  "name": "text-indent",
1388
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-text-indent",
1240
1389
  "value": "[ <length-percentage> ] && hanging? && each-line?",
1241
1390
  "initial": "0",
1242
1391
  "appliesTo": "block containers",
@@ -1249,24 +1398,28 @@
1249
1398
  {
1250
1399
  "name": "<length>",
1251
1400
  "prose": "Gives the amount of the indent as an absolute length.",
1401
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-indent-length",
1252
1402
  "type": "value",
1253
1403
  "value": "<length>"
1254
1404
  },
1255
1405
  {
1256
1406
  "name": "<percentage>",
1257
1407
  "prose": "Gives the amount of the indent as a percentage of the block container’s own logical width. Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions, but are always resolved normally when performing layout.",
1408
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-indent-percentage",
1258
1409
  "type": "value",
1259
1410
  "value": "<percentage>"
1260
1411
  },
1261
1412
  {
1262
1413
  "name": "each-line",
1263
1414
  "prose": "Indentation affects the first line of each block container and each line after a forced line break (but not lines after a soft wrap break).",
1415
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-indent-each-line",
1264
1416
  "type": "value",
1265
1417
  "value": "each-line"
1266
1418
  },
1267
1419
  {
1268
1420
  "name": "hanging",
1269
1421
  "prose": "Inverts which lines are affected.",
1422
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-text-indent-hanging",
1270
1423
  "type": "value",
1271
1424
  "value": "hanging"
1272
1425
  }
@@ -1278,6 +1431,7 @@
1278
1431
  },
1279
1432
  {
1280
1433
  "name": "hanging-punctuation",
1434
+ "href": "https://drafts.csswg.org/css-text-4/#propdef-hanging-punctuation",
1281
1435
  "value": "none | [ first || [ force-end | allow-end ] || last ]",
1282
1436
  "initial": "none",
1283
1437
  "appliesTo": "text",
@@ -1290,30 +1444,35 @@
1290
1444
  {
1291
1445
  "name": "none",
1292
1446
  "prose": "No punctuation character is made to hang.",
1447
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hanging-punctuation-none",
1293
1448
  "type": "value",
1294
1449
  "value": "none"
1295
1450
  },
1296
1451
  {
1297
1452
  "name": "first",
1298
1453
  "prose": "An opening bracket, quote, or ideographic space at the start of the first formatted line of an element hangs. This applies to all characters in the Unicode categories Ps, Pf, Pi plus the ASCII quote marks U+0027 ' APOSTROPHE and U+0022 \" QUOTATION MARK and the IDEOGRAPHIC SPACE U+3000.",
1454
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hanging-punctuation-first",
1299
1455
  "type": "value",
1300
1456
  "value": "first"
1301
1457
  },
1302
1458
  {
1303
1459
  "name": "last",
1304
1460
  "prose": "A closing bracket or quote at the end of the last formatted line of an element hangs. This applies to all characters in the Unicode categories Pe, Pf, Pi plus the ASCII quote marks U+0027 ' APOSTROPHE and U+0022 \" QUOTATION MARK.",
1461
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hanging-punctuation-last",
1305
1462
  "type": "value",
1306
1463
  "value": "last"
1307
1464
  },
1308
1465
  {
1309
1466
  "name": "force-end",
1310
1467
  "prose": "A stop or comma at the end of a line hangs.",
1468
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hanging-punctuation-force-end",
1311
1469
  "type": "value",
1312
1470
  "value": "force-end"
1313
1471
  },
1314
1472
  {
1315
1473
  "name": "allow-end",
1316
1474
  "prose": "A stop or comma at the end of a line conditionally hangs.",
1475
+ "href": "https://drafts.csswg.org/css-text-4/#valdef-hanging-punctuation-allow-end",
1317
1476
  "type": "value",
1318
1477
  "value": "allow-end"
1319
1478
  }
@@ -1329,11 +1488,13 @@
1329
1488
  "values": [
1330
1489
  {
1331
1490
  "name": "<autospace>",
1491
+ "href": "https://drafts.csswg.org/css-text-4/#typedef-autospace",
1332
1492
  "type": "type",
1333
1493
  "value": "no-autospace | [ ideograph-alpha || ideograph-numeric || punctuation ] || [ insert | replace ]"
1334
1494
  },
1335
1495
  {
1336
1496
  "name": "<spacing-trim>",
1497
+ "href": "https://drafts.csswg.org/css-text-4/#typedef-spacing-trim",
1337
1498
  "type": "type",
1338
1499
  "value": "space-all | normal | trim-auto | trim-start | space-first | trim-all"
1339
1500
  }