sanitize 2.1.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sanitize might be problematic. Click here for more details.

@@ -1,40 +1,20 @@
1
- #--
2
- # Copyright (c) 2013 Ryan Grove <ryan@wonko.com>
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the 'Software'), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- # SOFTWARE.
21
- #++
1
+ # encoding: utf-8
22
2
 
23
3
  class Sanitize
24
4
  module Config
25
- BASIC = {
26
- :elements => %w[
27
- a abbr b blockquote br cite code dd dfn dl dt em i kbd li mark ol p pre
28
- q s samp small strike strong sub sup time u ul var
5
+ BASIC = freeze_config(
6
+ :elements => RESTRICTED[:elements] + %w[
7
+ a abbr blockquote br cite code dd dfn dl dt kbd li mark ol p pre q s
8
+ samp small strike sub sup time ul var
29
9
  ],
30
10
 
31
11
  :attributes => {
32
- 'a' => ['href'],
33
- 'abbr' => ['title'],
34
- 'blockquote' => ['cite'],
35
- 'dfn' => ['title'],
36
- 'q' => ['cite'],
37
- 'time' => ['datetime', 'pubdate']
12
+ 'a' => %w[href],
13
+ 'abbr' => %w[title],
14
+ 'blockquote' => %w[cite],
15
+ 'dfn' => %w[title],
16
+ 'q' => %w[cite],
17
+ 'time' => %w[datetime pubdate]
38
18
  },
39
19
 
40
20
  :add_attributes => {
@@ -46,6 +26,6 @@ class Sanitize
46
26
  'blockquote' => {'cite' => ['http', 'https', :relative]},
47
27
  'q' => {'cite' => ['http', 'https', :relative]}
48
28
  }
49
- }
29
+ )
50
30
  end
51
31
  end
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+
3
+ class Sanitize
4
+ module Config
5
+ DEFAULT = freeze_config(
6
+ # HTML attributes to add to specific elements. By default, no attributes
7
+ # are added.
8
+ :add_attributes => {},
9
+
10
+ # Whether or not to allow HTML comments. Allowing comments is strongly
11
+ # discouraged, since IE allows script execution within conditional
12
+ # comments.
13
+ :allow_comments => false,
14
+
15
+ # Whether or not to allow well-formed HTML doctype declarations such as
16
+ # "<!DOCTYPE html>" when sanitizing a document. This setting is ignored
17
+ # when sanitizing fragments.
18
+ :allow_doctype => false,
19
+
20
+ # HTML attributes to allow in specific elements. By default, no attributes
21
+ # are allowed. Use the symbol :data to indicate that arbitrary HTML5
22
+ # data-* attributes should be allowed.
23
+ :attributes => {},
24
+
25
+ # CSS sanitization settings.
26
+ :css => {
27
+ # Whether or not to allow CSS comments.
28
+ :allow_comments => false,
29
+
30
+ # Whether or not to allow browser compatibility hacks such as the IE *
31
+ # and _ hacks. These are generally harmless, but technically result in
32
+ # invalid CSS.
33
+ :allow_hacks => false,
34
+
35
+ # CSS @ rules to allow.
36
+ # https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule
37
+ :at_rules => [],
38
+
39
+ # CSS style properties to allow.
40
+ :properties => [],
41
+
42
+ # URL protocols to allow in CSS URLs.
43
+ :protocols => []
44
+ },
45
+
46
+ # HTML elements to allow. By default, no elements are allowed (which means
47
+ # that all HTML will be stripped).
48
+ :elements => [],
49
+
50
+ # URL handling protocols to allow in specific attributes. By default, no
51
+ # protocols are allowed. Use :relative in place of a protocol if you want
52
+ # to allow relative URLs sans protocol.
53
+ :protocols => {},
54
+
55
+ # If this is true, Sanitize will remove the contents of any filtered
56
+ # elements in addition to the elements themselves. By default, Sanitize
57
+ # leaves the safe parts of an element's contents behind when the element
58
+ # is removed.
59
+ #
60
+ # If this is an Array of element names, then only the contents of the
61
+ # specified elements (when filtered) will be removed, and the contents of
62
+ # all other filtered elements will be left behind.
63
+ :remove_contents => false,
64
+
65
+ # Transformers allow you to filter or alter nodes using custom logic. See
66
+ # README.md for details and examples.
67
+ :transformers => [],
68
+
69
+ # Elements which, when removed, should have their contents surrounded by
70
+ # values specified with `before` and `after` keys to preserve readability.
71
+ # For example, `foo<div>bar</div>baz` will become 'foo bar baz' when the
72
+ # <div> is removed.
73
+ :whitespace_elements => {
74
+ 'address' => { :before => ' ', :after => ' ' },
75
+ 'article' => { :before => ' ', :after => ' ' },
76
+ 'aside' => { :before => ' ', :after => ' ' },
77
+ 'blockquote' => { :before => ' ', :after => ' ' },
78
+ 'br' => { :before => ' ', :after => ' ' },
79
+ 'dd' => { :before => ' ', :after => ' ' },
80
+ 'div' => { :before => ' ', :after => ' ' },
81
+ 'dl' => { :before => ' ', :after => ' ' },
82
+ 'dt' => { :before => ' ', :after => ' ' },
83
+ 'footer' => { :before => ' ', :after => ' ' },
84
+ 'h1' => { :before => ' ', :after => ' ' },
85
+ 'h2' => { :before => ' ', :after => ' ' },
86
+ 'h3' => { :before => ' ', :after => ' ' },
87
+ 'h4' => { :before => ' ', :after => ' ' },
88
+ 'h5' => { :before => ' ', :after => ' ' },
89
+ 'h6' => { :before => ' ', :after => ' ' },
90
+ 'header' => { :before => ' ', :after => ' ' },
91
+ 'hgroup' => { :before => ' ', :after => ' ' },
92
+ 'hr' => { :before => ' ', :after => ' ' },
93
+ 'li' => { :before => ' ', :after => ' ' },
94
+ 'nav' => { :before => ' ', :after => ' ' },
95
+ 'ol' => { :before => ' ', :after => ' ' },
96
+ 'p' => { :before => ' ', :after => ' ' },
97
+ 'pre' => { :before => ' ', :after => ' ' },
98
+ 'section' => { :before => ' ', :after => ' ' },
99
+ 'ul' => { :before => ' ', :after => ' ' }
100
+ }
101
+ )
102
+ end
103
+ end
@@ -1,61 +1,526 @@
1
- #--
2
- # Copyright (c) 2013 Ryan Grove <ryan@wonko.com>
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the 'Software'), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- # SOFTWARE.
21
- #++
1
+ # encoding: utf-8
22
2
 
23
3
  class Sanitize
24
4
  module Config
25
- RELAXED = {
26
- :elements => %w[
27
- a abbr address b bdi bdo blockquote br caption cite code col colgroup dd
28
- del dfn dl dt em figcaption figure h1 h2 h3 h4 h5 h6 hgroup hr i img ins
29
- kbd li mark ol p pre q rp rt ruby s samp small strike strong sub summary
30
- sup table tbody td tfoot th thead time tr u ul var wbr
5
+ RELAXED = freeze_config(
6
+ :elements => BASIC[:elements] + %w[
7
+ address article aside bdi bdo body caption col colgroup data del div
8
+ figcaption figure footer h1 h2 h3 h4 h5 h6 head header hgroup hr html
9
+ img ins main nav rp rt ruby section span style summary sup table tbody
10
+ td tfoot th thead title tr wbr
31
11
  ],
32
12
 
33
- :attributes => {
34
- :all => ['dir', 'lang', 'title'],
35
- 'a' => ['href'],
36
- 'blockquote' => ['cite'],
37
- 'col' => ['span', 'width'],
38
- 'colgroup' => ['span', 'width'],
39
- 'del' => ['cite', 'datetime'],
40
- 'img' => ['align', 'alt', 'height', 'src', 'width'],
41
- 'ins' => ['cite', 'datetime'],
42
- 'ol' => ['start', 'reversed', 'type'],
43
- 'q' => ['cite'],
44
- 'table' => ['summary', 'width'],
45
- 'td' => ['abbr', 'axis', 'colspan', 'rowspan', 'width'],
46
- 'th' => ['abbr', 'axis', 'colspan', 'rowspan', 'scope', 'width'],
47
- 'time' => ['datetime', 'pubdate'],
48
- 'ul' => ['type']
49
- },
13
+ :allow_doctype => true,
50
14
 
51
- :protocols => {
52
- 'a' => {'href' => ['ftp', 'http', 'https', 'mailto', :relative]},
53
- 'blockquote' => {'cite' => ['http', 'https', :relative]},
54
- 'del' => {'cite' => ['http', 'https', :relative]},
55
- 'img' => {'src' => ['http', 'https', :relative]},
56
- 'ins' => {'cite' => ['http', 'https', :relative]},
57
- 'q' => {'cite' => ['http', 'https', :relative]}
15
+ :attributes => merge(BASIC[:attributes],
16
+ :all => %w[class dir hidden id lang style tabindex title translate],
17
+ 'a' => %w[href hreflang name rel],
18
+ 'col' => %w[span width],
19
+ 'colgroup' => %w[span width],
20
+ 'data' => %w[value],
21
+ 'del' => %w[cite datetime],
22
+ 'img' => %w[align alt border height src width],
23
+ 'ins' => %w[cite datetime],
24
+ 'li' => %w[value],
25
+ 'ol' => %w[reversed start type],
26
+ 'style' => %w[media scoped type],
27
+ 'table' => %w[align bgcolor border cellpadding cellspacing frame rules sortable summary width],
28
+ 'td' => %w[abbr align axis colspan headers rowspan valign width],
29
+ 'th' => %w[abbr align axis colspan headers rowspan scope sorted valign width],
30
+ 'ul' => %w[type]
31
+ ),
32
+
33
+ :protocols => merge(BASIC[:protocols],
34
+ 'del' => {'cite' => ['http', 'https', :relative]},
35
+ 'img' => {'src' => ['http', 'https', :relative]},
36
+ 'ins' => {'cite' => ['http', 'https', :relative]}
37
+ ),
38
+
39
+ :css => {
40
+ :allow_comments => true,
41
+ :allow_hacks => true,
42
+
43
+ :at_rules => %w[font-face keyframes media page supports],
44
+ :protocols => ['http', 'https', :relative],
45
+
46
+ :properties => %w[
47
+ -moz-appearance
48
+ -moz-background-inline-policy
49
+ -moz-box-sizing
50
+ -moz-column-count
51
+ -moz-column-fill
52
+ -moz-column-gap
53
+ -moz-column-rule
54
+ -moz-column-rule-color
55
+ -moz-column-rule-style
56
+ -moz-column-rule-width
57
+ -moz-column-width
58
+ -moz-font-feature-settings
59
+ -moz-font-language-override
60
+ -moz-hyphens
61
+ -moz-text-align-last
62
+ -moz-text-decoration-color
63
+ -moz-text-decoration-line
64
+ -moz-text-decoration-style
65
+ -ms-background-position-x
66
+ -ms-background-position-y
67
+ -ms-block-progression
68
+ -ms-content-zoom-chaining
69
+ -ms-content-zoom-limit
70
+ -ms-content-zoom-limit-max
71
+ -ms-content-zoom-limit-min
72
+ -ms-content-zoom-snap
73
+ -ms-content-zoom-snap-points
74
+ -ms-content-zoom-snap-type
75
+ -ms-content-zooming
76
+ -ms-filter
77
+ -ms-flex
78
+ -ms-flex-align
79
+ -ms-flex-direction
80
+ -ms-flex-order
81
+ -ms-flex-pack
82
+ -ms-flex-wrap
83
+ -ms-flow-from
84
+ -ms-flow-into
85
+ -ms-grid-column
86
+ -ms-grid-column-align
87
+ -ms-grid-column-span
88
+ -ms-grid-columns
89
+ -ms-grid-row
90
+ -ms-grid-row-align
91
+ -ms-grid-row-span
92
+ -ms-grid-rows
93
+ -ms-high-contrast-adjust
94
+ -ms-hyphenate-limit-chars
95
+ -ms-hyphenate-limit-lines
96
+ -ms-hyphenate-limit-zone
97
+ -ms-hyphens
98
+ -ms-ime-mode
99
+ -ms-interpolation-mode
100
+ -ms-layout-flow
101
+ -ms-layout-grid
102
+ -ms-layout-grid-char
103
+ -ms-layout-grid-line
104
+ -ms-layout-grid-mode
105
+ -ms-layout-grid-type
106
+ -ms-overflow-style
107
+ -ms-overflow-x
108
+ -ms-overflow-y
109
+ -ms-progress-appearance
110
+ -ms-scroll-chaining
111
+ -ms-scroll-limit
112
+ -ms-scroll-limit-x-max
113
+ -ms-scroll-limit-x-min
114
+ -ms-scroll-limit-y-max
115
+ -ms-scroll-limit-y-min
116
+ -ms-scroll-rails
117
+ -ms-scroll-snap-points-x
118
+ -ms-scroll-snap-points-y
119
+ -ms-scroll-snap-type
120
+ -ms-scroll-snap-x
121
+ -ms-scroll-snap-y
122
+ -ms-scroll-translation
123
+ -ms-scrollbar-arrow-color
124
+ -ms-scrollbar-base-color
125
+ -ms-scrollbar-darkshadow-color
126
+ -ms-scrollbar-face-color
127
+ -ms-scrollbar-highlight-color
128
+ -ms-scrollbar-shadow-color
129
+ -ms-scrollbar-track-color
130
+ -ms-text-align-last
131
+ -ms-text-autospace
132
+ -ms-text-justify
133
+ -ms-text-kashida-space
134
+ -ms-text-overflow
135
+ -ms-text-underline-position
136
+ -ms-touch-action
137
+ -ms-user-select
138
+ -ms-word-break
139
+ -ms-word-wrap
140
+ -ms-wrap-flow
141
+ -ms-wrap-margin
142
+ -ms-wrap-through
143
+ -ms-writing-mode
144
+ -ms-zoom
145
+ -webkit-align-content
146
+ -webkit-align-items
147
+ -webkit-align-self
148
+ -webkit-animation
149
+ -webkit-animation-delay
150
+ -webkit-animation-direction
151
+ -webkit-animation-duration
152
+ -webkit-animation-fill-mode
153
+ -webkit-animation-iteration-count
154
+ -webkit-animation-name
155
+ -webkit-animation-play-state
156
+ -webkit-animation-timing-function
157
+ -webkit-appearance
158
+ -webkit-backface-visibility
159
+ -webkit-background-blend-mode
160
+ -webkit-background-clip
161
+ -webkit-background-composite
162
+ -webkit-background-origin
163
+ -webkit-background-size
164
+ -webkit-blend-mode
165
+ -webkit-border-after
166
+ -webkit-border-after-color
167
+ -webkit-border-after-style
168
+ -webkit-border-after-width
169
+ -webkit-border-before
170
+ -webkit-border-before-color
171
+ -webkit-border-before-style
172
+ -webkit-border-before-width
173
+ -webkit-border-bottom-left-radius
174
+ -webkit-border-bottom-right-radius
175
+ -webkit-border-end
176
+ -webkit-border-end-color
177
+ -webkit-border-end-style
178
+ -webkit-border-end-width
179
+ -webkit-border-fit
180
+ -webkit-border-image
181
+ -webkit-border-radius
182
+ -webkit-border-start
183
+ -webkit-border-start-color
184
+ -webkit-border-start-style
185
+ -webkit-border-start-width
186
+ -webkit-border-top-left-radius
187
+ -webkit-border-top-right-radius
188
+ -webkit-box-align
189
+ -webkit-box-decoration-break
190
+ -webkit-box-flex
191
+ -webkit-box-flex-group
192
+ -webkit-box-lines
193
+ -webkit-box-ordinal-group
194
+ -webkit-box-orient
195
+ -webkit-box-pack
196
+ -webkit-box-reflect
197
+ -webkit-box-shadow
198
+ -webkit-box-sizing
199
+ -webkit-clip-path
200
+ -webkit-column-axis
201
+ -webkit-column-break-after
202
+ -webkit-column-break-before
203
+ -webkit-column-break-inside
204
+ -webkit-column-count
205
+ -webkit-column-gap
206
+ -webkit-column-progression
207
+ -webkit-column-rule
208
+ -webkit-column-rule-color
209
+ -webkit-column-rule-style
210
+ -webkit-column-rule-width
211
+ -webkit-column-span
212
+ -webkit-column-width
213
+ -webkit-columns
214
+ -webkit-filter
215
+ -webkit-flex
216
+ -webkit-flex-basis
217
+ -webkit-flex-direction
218
+ -webkit-flex-flow
219
+ -webkit-flex-grow
220
+ -webkit-flex-shrink
221
+ -webkit-flex-wrap
222
+ -webkit-flow-from
223
+ -webkit-flow-into
224
+ -webkit-font-size-delta
225
+ -webkit-grid-area
226
+ -webkit-grid-auto-columns
227
+ -webkit-grid-auto-flow
228
+ -webkit-grid-auto-rows
229
+ -webkit-grid-column
230
+ -webkit-grid-column-end
231
+ -webkit-grid-column-start
232
+ -webkit-grid-definition-columns
233
+ -webkit-grid-definition-rows
234
+ -webkit-grid-row
235
+ -webkit-grid-row-end
236
+ -webkit-grid-row-start
237
+ -webkit-justify-content
238
+ -webkit-line-clamp
239
+ -webkit-logical-height
240
+ -webkit-logical-width
241
+ -webkit-margin-after
242
+ -webkit-margin-after-collapse
243
+ -webkit-margin-before
244
+ -webkit-margin-before-collapse
245
+ -webkit-margin-bottom-collapse
246
+ -webkit-margin-collapse
247
+ -webkit-margin-end
248
+ -webkit-margin-start
249
+ -webkit-margin-top-collapse
250
+ -webkit-marquee
251
+ -webkit-marquee-direction
252
+ -webkit-marquee-increment
253
+ -webkit-marquee-repetition
254
+ -webkit-marquee-speed
255
+ -webkit-marquee-style
256
+ -webkit-mask
257
+ -webkit-mask-box-image
258
+ -webkit-mask-box-image-outset
259
+ -webkit-mask-box-image-repeat
260
+ -webkit-mask-box-image-slice
261
+ -webkit-mask-box-image-source
262
+ -webkit-mask-box-image-width
263
+ -webkit-mask-clip
264
+ -webkit-mask-composite
265
+ -webkit-mask-image
266
+ -webkit-mask-origin
267
+ -webkit-mask-position
268
+ -webkit-mask-position-x
269
+ -webkit-mask-position-y
270
+ -webkit-mask-repeat
271
+ -webkit-mask-repeat-x
272
+ -webkit-mask-repeat-y
273
+ -webkit-mask-size
274
+ -webkit-mask-source-type
275
+ -webkit-max-logical-height
276
+ -webkit-max-logical-width
277
+ -webkit-min-logical-height
278
+ -webkit-min-logical-width
279
+ -webkit-opacity
280
+ -webkit-order
281
+ -webkit-padding-after
282
+ -webkit-padding-before
283
+ -webkit-padding-end
284
+ -webkit-padding-start
285
+ -webkit-perspective
286
+ -webkit-perspective-origin
287
+ -webkit-perspective-origin-x
288
+ -webkit-perspective-origin-y
289
+ -webkit-region-break-after
290
+ -webkit-region-break-before
291
+ -webkit-region-break-inside
292
+ -webkit-region-fragment
293
+ -webkit-shape-inside
294
+ -webkit-shape-margin
295
+ -webkit-shape-outside
296
+ -webkit-shape-padding
297
+ -webkit-svg-shadow
298
+ -webkit-tap-highlight-color
299
+ -webkit-text-decoration
300
+ -webkit-text-decoration-color
301
+ -webkit-text-decoration-line
302
+ -webkit-text-decoration-style
303
+ -webkit-touch-callout
304
+ -webkit-transform
305
+ -webkit-transform-origin
306
+ -webkit-transform-origin-x
307
+ -webkit-transform-origin-y
308
+ -webkit-transform-origin-z
309
+ -webkit-transform-style
310
+ -webkit-transition
311
+ -webkit-transition-delay
312
+ -webkit-transition-duration
313
+ -webkit-transition-property
314
+ -webkit-transition-timing-function
315
+ -webkit-user-drag
316
+ -webkit-wrap-flow
317
+ -webkit-wrap-through
318
+ align-content
319
+ align-items
320
+ align-self
321
+ animation
322
+ animation-delay
323
+ animation-direction
324
+ animation-duration
325
+ animation-fill-mode
326
+ animation-iteration-count
327
+ animation-name
328
+ animation-play-state
329
+ animation-timing-function
330
+ backface-visibility
331
+ background
332
+ background-attachment
333
+ background-clip
334
+ background-color
335
+ background-image
336
+ background-origin
337
+ background-position
338
+ background-repeat
339
+ background-size
340
+ border
341
+ border-bottom
342
+ border-bottom-color
343
+ border-bottom-left-radius
344
+ border-bottom-right-radius
345
+ border-bottom-style
346
+ border-bottom-width
347
+ border-collapse
348
+ border-color
349
+ border-image
350
+ border-image-outset
351
+ border-image-repeat
352
+ border-image-slice
353
+ border-image-source
354
+ border-image-width
355
+ border-left
356
+ border-left-color
357
+ border-left-style
358
+ border-left-width
359
+ border-radius
360
+ border-right
361
+ border-right-color
362
+ border-right-style
363
+ border-right-width
364
+ border-spacing
365
+ border-style
366
+ border-top
367
+ border-top-color
368
+ border-top-left-radius
369
+ border-top-right-radius
370
+ border-top-style
371
+ border-top-width
372
+ border-width
373
+ bottom
374
+ box-decoration-break
375
+ box-shadow
376
+ box-sizing
377
+ break-after
378
+ break-before
379
+ break-inside
380
+ caption-side
381
+ clear
382
+ clip
383
+ clip-path
384
+ color
385
+ column-count
386
+ column-fill
387
+ column-gap
388
+ column-rule
389
+ column-rule-color
390
+ column-rule-style
391
+ column-rule-width
392
+ column-span
393
+ column-width
394
+ columns
395
+ content
396
+ counter-increment
397
+ counter-reset
398
+ cursor
399
+ direction
400
+ display
401
+ empty-cells
402
+ filter
403
+ flex
404
+ flex-basis
405
+ flex-direction
406
+ flex-flow
407
+ flex-grow
408
+ flex-shrink
409
+ flex-wrap
410
+ float
411
+ font
412
+ font-family
413
+ font-feature-settings
414
+ font-kerning
415
+ font-language-override
416
+ font-size
417
+ font-size-adjust
418
+ font-stretch
419
+ font-style
420
+ font-synthesis
421
+ font-variant
422
+ font-variant-alternates
423
+ font-variant-caps
424
+ font-variant-east-asian
425
+ font-variant-ligatures
426
+ font-variant-numeric
427
+ font-variant-position
428
+ font-weight
429
+ height
430
+ hyphens
431
+ icon
432
+ image-orientation
433
+ image-rendering
434
+ image-resolution
435
+ ime-mode
436
+ justify-content
437
+ left
438
+ letter-spacing
439
+ line-height
440
+ list-style
441
+ list-style-image
442
+ list-style-position
443
+ list-style-type
444
+ margin
445
+ margin-bottom
446
+ margin-left
447
+ margin-right
448
+ margin-top
449
+ marks
450
+ mask
451
+ mask-type
452
+ max-height
453
+ max-width
454
+ min-height
455
+ min-width
456
+ object-fit
457
+ object-position
458
+ opacity
459
+ order
460
+ orphans
461
+ outline
462
+ outline-color
463
+ outline-offset
464
+ outline-style
465
+ outline-width
466
+ overflow
467
+ overflow-wrap
468
+ overflow-x
469
+ overflow-y
470
+ padding
471
+ padding-bottom
472
+ padding-left
473
+ padding-right
474
+ padding-top
475
+ page-break-after
476
+ page-break-before
477
+ page-break-inside
478
+ perspective
479
+ perspective-origin
480
+ position
481
+ quotes
482
+ resize
483
+ right
484
+ tab-size
485
+ table-layout
486
+ text-align
487
+ text-align-last
488
+ text-combine-horizontal
489
+ text-decoration
490
+ text-decoration-color
491
+ text-decoration-line
492
+ text-decoration-style
493
+ text-indent
494
+ text-orientation
495
+ text-overflow
496
+ text-rendering
497
+ text-shadow
498
+ text-transform
499
+ text-underline-position
500
+ top
501
+ touch-action
502
+ transform
503
+ transform-origin
504
+ transform-style
505
+ transition
506
+ transition-delay
507
+ transition-duration
508
+ transition-property
509
+ transition-timing-function
510
+ unicode-bidi
511
+ unicode-range
512
+ vertical-align
513
+ visibility
514
+ white-space
515
+ widows
516
+ width
517
+ word-break
518
+ word-spacing
519
+ word-wrap
520
+ writing-mode
521
+ z-index
522
+ ]
58
523
  }
59
- }
524
+ )
60
525
  end
61
526
  end