Web Inspector: UI fonts should pull from system fonts automatically to whatever degre...
[WebKit-https.git] / Source / WebInspectorUI / UserInterface / Models / CSSKeywordCompletions.js
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  * Copyright (C) 2013 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  *     * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *     * Redistributions in binary form must reproduce the above
12  * copyright notice, this list of conditions and the following disclaimer
13  * in the documentation and/or other materials provided with the
14  * distribution.
15  *     * Neither the name of Google Inc. nor the names of its
16  * contributors may be used to endorse or promote products derived from
17  * this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 WebInspector.CSSKeywordCompletions = {};
33
34 WebInspector.CSSKeywordCompletions.forProperty = function(propertyName)
35 {
36     var acceptedKeywords = ["initial"];
37     var isNotPrefixed = propertyName.charAt(0) !== "-";
38
39     if (propertyName in WebInspector.CSSKeywordCompletions._propertyKeywordMap)
40         acceptedKeywords = acceptedKeywords.concat(WebInspector.CSSKeywordCompletions._propertyKeywordMap[propertyName]);
41     else if (isNotPrefixed && ("-webkit-" + propertyName) in WebInspector.CSSKeywordCompletions._propertyKeywordMap)
42         acceptedKeywords = acceptedKeywords.concat(WebInspector.CSSKeywordCompletions._propertyKeywordMap["-webkit-" + propertyName]);
43
44     if (propertyName in WebInspector.CSSKeywordCompletions._colorAwareProperties)
45         acceptedKeywords = acceptedKeywords.concat(WebInspector.CSSKeywordCompletions._colors);
46     else if (isNotPrefixed && ("-webkit-" + propertyName) in WebInspector.CSSKeywordCompletions._colorAwareProperties)
47         acceptedKeywords = acceptedKeywords.concat(WebInspector.CSSKeywordCompletions._colors);
48
49     // Only suggest "inherit" on inheritable properties even though it is valid on all properties.
50     if (propertyName in WebInspector.CSSKeywordCompletions.InheritedProperties)
51         acceptedKeywords.push("inherit");
52     else if (isNotPrefixed && ("-webkit-" + propertyName) in WebInspector.CSSKeywordCompletions.InheritedProperties)
53         acceptedKeywords.push("inherit");
54
55     if (acceptedKeywords.contains(WebInspector.CSSKeywordCompletions.AllPropertyNamesPlaceholder)) {
56         acceptedKeywords.remove(WebInspector.CSSKeywordCompletions.AllPropertyNamesPlaceholder);
57         acceptedKeywords = acceptedKeywords.concat(WebInspector.CSSCompletions.cssNameCompletions.values);
58     }
59
60     return new WebInspector.CSSCompletions(acceptedKeywords, true);
61 }
62
63 WebInspector.CSSKeywordCompletions.isColorAwareProperty = function(propertyName)
64 {
65     return WebInspector.CSSKeywordCompletions._colorAwareProperties[propertyName] === true;
66 }
67
68 WebInspector.CSSKeywordCompletions.AllPropertyNamesPlaceholder = "__all-properties__";
69
70 WebInspector.CSSKeywordCompletions.InheritedProperties = [
71     "azimuth", "border-collapse", "border-spacing", "caption-side", "clip-rule", "color", "color-interpolation",
72     "color-interpolation-filters", "color-rendering", "cursor", "direction", "elevation", "empty-cells", "fill",
73     "fill-opacity", "fill-rule", "font", "font-family", "font-size", "font-style", "font-variant", "font-weight",
74     "glyph-orientation-horizontal", "glyph-orientation-vertical", "image-rendering", "kerning", "letter-spacing",
75     "line-height", "list-style", "list-style-image", "list-style-position", "list-style-type", "marker", "marker-end",
76     "marker-mid", "marker-start", "orphans", "pitch", "pitch-range", "pointer-events", "quotes", "resize", "richness",
77     "shape-rendering", "speak", "speak-header", "speak-numeral", "speak-punctuation", "speech-rate", "stress", "stroke",
78     "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity",
79     "stroke-width", "tab-size", "text-align", "text-anchor", "text-decoration", "text-indent", "text-rendering",
80     "text-shadow", "text-transform", "visibility", "voice-family", "volume", "white-space", "widows", "word-break",
81     "word-spacing", "word-wrap", "writing-mode", "-webkit-aspect-ratio", "-webkit-border-horizontal-spacing",
82     "-webkit-border-vertical-spacing", "-webkit-box-direction", "-webkit-color-correction", "-webkit-font-feature-settings",
83     "-webkit-font-kerning", "-webkit-font-smoothing", "-webkit-font-variant-ligatures",
84     "-webkit-hyphenate-character", "-webkit-hyphenate-limit-after", "-webkit-hyphenate-limit-before",
85     "-webkit-hyphenate-limit-lines", "-webkit-hyphens", "-webkit-line-align", "-webkit-line-box-contain",
86     "-webkit-line-break", "-webkit-line-grid", "-webkit-line-snap", "-webkit-locale", "-webkit-nbsp-mode",
87     "-webkit-print-color-adjust", "-webkit-rtl-ordering", "-webkit-text-combine", "-webkit-text-decorations-in-effect",
88     "-webkit-text-emphasis", "-webkit-text-emphasis-color", "-webkit-text-emphasis-position", "-webkit-text-emphasis-style",
89     "-webkit-text-fill-color", "-webkit-text-orientation", "-webkit-text-security", "-webkit-text-size-adjust",
90     "-webkit-text-stroke", "-webkit-text-stroke-color", "-webkit-text-stroke-width", "-webkit-user-modify",
91     "-webkit-user-select", "-webkit-writing-mode", "-webkit-cursor-visibility", "image-orientation", "image-resolution",
92     "overflow-wrap", "-webkit-text-align-last", "-webkit-text-justify", "-webkit-ruby-position", "-webkit-text-decoration-line",
93
94     // iOS Properties
95     "-webkit-overflow-scrolling", "-webkit-touch-callout", "-webkit-tap-highlight-color"
96 ].keySet();
97
98 WebInspector.CSSKeywordCompletions._colors = [
99     "aqua", "black", "blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange", "purple", "red",
100     "silver", "teal", "white", "yellow", "transparent", "currentcolor", "grey", "aliceblue", "antiquewhite",
101     "aquamarine", "azure", "beige", "bisque", "blanchedalmond", "blueviolet", "brown", "burlywood", "cadetblue",
102     "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan",
103     "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange",
104     "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey",
105     "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick",
106     "floralwhite", "forestgreen", "gainsboro", "ghostwhite", "gold", "goldenrod", "greenyellow", "honeydew", "hotpink",
107     "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue",
108     "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink",
109     "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow",
110     "limegreen", "linen", "magenta", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen",
111     "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream",
112     "mistyrose", "moccasin", "navajowhite", "oldlace", "olivedrab", "orangered", "orchid", "palegoldenrod", "palegreen",
113     "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "rebeccapurple", "rosybrown",
114     "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "skyblue", "slateblue",
115     "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "thistle", "tomato", "turquoise", "violet",
116     "wheat", "whitesmoke", "yellowgreen", "rgb()", "rgba()", "hsl()", "hsla()"
117 ];
118
119 WebInspector.CSSKeywordCompletions._colorAwareProperties = [
120     "background", "background-color", "background-image", "border", "border-color", "border-top", "border-right", "border-bottom",
121     "border-left", "border-top-color", "border-right-color", "border-bottom-color", "border-left-color", "box-shadow", "color",
122     "fill", "outline", "outline-color", "stroke", "text-line-through", "text-line-through-color", "text-overline", "text-overline-color",
123     "text-shadow", "text-underline", "text-underline-color", "-webkit-box-shadow", "-webkit-column-rule", "-webkit-column-rule-color",
124     "-webkit-text-emphasis", "-webkit-text-emphasis-color", "-webkit-text-fill-color", "-webkit-text-stroke", "-webkit-text-stroke-color",
125     "-webkit-text-decoration-color",
126
127     // iOS Properties
128     "-webkit-tap-highlight-color"
129 ].keySet();
130
131 WebInspector.CSSKeywordCompletions._propertyKeywordMap = {
132     "table-layout": [
133         "auto", "fixed"
134     ],
135     "visibility": [
136         "hidden", "visible", "collapse"
137     ],
138     "background-repeat": [
139         "repeat", "repeat-x", "repeat-y", "no-repeat", "space", "round"
140     ],
141     "background-blend-mode": [
142         "normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity",
143     ],
144     "text-underline": [
145         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave"
146     ],
147     "content": [
148         "list-item", "close-quote", "no-close-quote", "no-open-quote", "open-quote", "attr()", "counter()", "counters()", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "-webkit-cross-fade()", "-webkit-image-set()"
149     ],
150     "list-style-image": [
151         "none", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "-webkit-cross-fade()", "-webkit-image-set()"
152     ],
153     "clear": [
154         "none", "left", "right", "both"
155     ],
156     "stroke-linejoin": [
157         "round", "miter", "bevel"
158     ],
159     "baseline-shift": [
160         "baseline", "sub", "super"
161     ],
162     "border-bottom-width": [
163         "medium", "thick", "thin", "calc()", "-webkit-calc()"
164     ],
165     "margin-top-collapse": [
166         "collapse", "separate", "discard"
167     ],
168     "-webkit-box-orient": [
169         "horizontal", "vertical", "inline-axis", "block-axis"
170     ],
171     "font-stretch": [
172         "normal", "wider", "narrower", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed",
173         "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"
174     ],
175     "-webkit-color-correction": [
176         "default", "srgb"
177     ],
178     "border-left-width": [
179         "medium", "thick", "thin", "calc()", "-webkit-calc()"
180     ],
181     "-webkit-writing-mode": [
182         "lr", "rl", "tb", "lr-tb", "rl-tb", "tb-rl", "horizontal-tb", "vertical-rl", "vertical-lr", "horizontal-bt"
183     ],
184     "text-line-through-mode": [
185         "continuous", "skip-white-space"
186     ],
187     "text-overline-mode": [
188         "continuous", "skip-white-space"
189     ],
190     "text-underline-mode": [
191         "continuous", "skip-white-space"
192     ],
193     "text-line-through-style": [
194         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave"
195     ],
196     "text-overline-style": [
197         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave"
198     ],
199     "text-underline-style": [
200         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave"
201     ],
202     "border-collapse": [
203         "collapse", "separate"
204     ],
205     "border-top-width": [
206         "medium", "thick", "thin", "calc()", "-webkit-calc()"
207     ],
208     "outline-color": [
209         "invert", "-webkit-focus-ring-color"
210     ],
211     "outline-style": [
212         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double", "auto"
213     ],
214     "cursor": [
215         "none", "copy", "auto", "crosshair", "default", "pointer", "move", "vertical-text", "cell", "context-menu",
216         "alias", "progress", "no-drop", "not-allowed", "-webkit-zoom-in", "-webkit-zoom-out", "e-resize", "ne-resize",
217         "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "ew-resize", "ns-resize",
218         "nesw-resize", "nwse-resize", "col-resize", "row-resize", "text", "wait", "help", "all-scroll", "-webkit-grab",
219         "-webkit-grabbing", "url()", "-webkit-image-set()"
220     ],
221     "border-width": [
222         "medium", "thick", "thin", "calc()", "-webkit-calc()"
223     ],
224     "size": [
225         "a3", "a4", "a5", "b4", "b5", "landscape", "ledger", "legal", "letter", "portrait"
226     ],
227     "background-image": [
228         "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "-webkit-cross-fade()", "-webkit-image-set()"
229     ],
230     "background-size": [
231         "contain", "cover"
232     ],
233     "direction": [
234         "ltr", "rtl"
235     ],
236     "enable-background": [
237         "accumulate", "new"
238     ],
239     "float": [
240         "none", "left", "right"
241     ],
242     "overflow-x": [
243         "hidden", "auto", "visible", "overlay", "scroll", "marquee"
244     ],
245     "overflow-y": [
246         "hidden", "auto", "visible", "overlay", "scroll", "marquee", "-webkit-paged-x", "-webkit-paged-y"
247     ],
248     "overflow": [
249         "hidden", "auto", "visible", "overlay", "scroll", "marquee", "-webkit-paged-x", "-webkit-paged-y"
250     ],
251     "margin-bottom-collapse": [
252         "collapse",  "separate", "discard"
253     ],
254     "-webkit-box-reflect": [
255         "none", "left", "right", "above", "below"
256     ],
257     "text-rendering": [
258         "auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"
259     ],
260     "text-align": [
261         "-webkit-auto", "left", "right", "center", "justify", "-webkit-left", "-webkit-right", "-webkit-center", "-webkit-match-parent", "start", "end"
262     ],
263     "list-style-position": [
264         "outside", "inside"
265     ],
266     "margin-bottom": [
267         "auto"
268     ],
269     "color-interpolation": [
270         "linearrgb"
271     ],
272     "background-origin": [
273         "border-box", "content-box", "padding-box"
274     ],
275     "word-wrap": [
276         "normal", "break-word"
277     ],
278     "font-weight": [
279         "normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"
280     ],
281     "margin-before-collapse": [
282         "collapse", "separate", "discard"
283     ],
284     "text-overline-width": [
285         "normal", "medium", "auto", "thick", "thin", "calc()", "-webkit-calc()"
286     ],
287     "text-transform": [
288         "none", "capitalize", "uppercase", "lowercase"
289     ],
290     "border-right-style": [
291         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
292     ],
293     "border-left-style": [
294         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
295     ],
296     "font-style": [
297         "italic", "oblique", "normal"
298     ],
299     "speak": [
300         "none", "normal", "spell-out", "digits", "literal-punctuation", "no-punctuation"
301     ],
302     "text-line-through": [
303         "none", "dotted", "dashed", "solid", "double", "dot-dash", "dot-dot-dash", "wave", "continuous",
304         "skip-white-space"
305     ],
306     "color-rendering": [
307         "auto", "optimizeSpeed", "optimizeQuality"
308     ],
309     "list-style-type": [
310         "none", "disc", "circle", "square", "decimal", "decimal-leading-zero", "arabic-indic", "binary", "bengali",
311         "cambodian", "khmer", "devanagari", "gujarati", "gurmukhi", "kannada", "lower-hexadecimal", "lao", "malayalam",
312         "mongolian", "myanmar", "octal", "oriya", "persian", "urdu", "telugu", "tibetan", "thai", "upper-hexadecimal",
313         "lower-roman", "upper-roman", "lower-greek", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "afar",
314         "ethiopic-halehame-aa-et", "ethiopic-halehame-aa-er", "amharic", "ethiopic-halehame-am-et", "amharic-abegede",
315         "ethiopic-abegede-am-et", "cjk-earthly-branch", "cjk-heavenly-stem", "ethiopic", "ethiopic-halehame-gez",
316         "ethiopic-abegede", "ethiopic-abegede-gez", "hangul-consonant", "hangul", "lower-norwegian", "oromo",
317         "ethiopic-halehame-om-et", "sidama", "ethiopic-halehame-sid-et", "somali", "ethiopic-halehame-so-et", "tigre",
318         "ethiopic-halehame-tig", "tigrinya-er", "ethiopic-halehame-ti-er", "tigrinya-er-abegede",
319         "ethiopic-abegede-ti-er", "tigrinya-et", "ethiopic-halehame-ti-et", "tigrinya-et-abegede",
320         "ethiopic-abegede-ti-et", "upper-greek", "upper-norwegian", "asterisks", "footnotes", "hebrew", "armenian",
321         "lower-armenian", "upper-armenian", "georgian", "cjk-ideographic", "hiragana", "katakana", "hiragana-iroha",
322         "katakana-iroha"
323     ],
324     "-webkit-text-combine": [
325         "none", "horizontal"
326     ],
327     "outline": [
328         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
329     ],
330     "font": [
331         "caption", "icon", "menu", "message-box", "small-caption", "-webkit-mini-control", "-webkit-small-control",
332         "-webkit-control", "status-bar", "italic", "oblique", "small-caps", "normal", "bold", "bolder", "lighter",
333         "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium",
334         "large", "x-large", "xx-large", "-webkit-xxx-large", "smaller", "larger", "serif", "sans-serif", "cursive",
335         "fantasy", "monospace", "-webkit-body", "-webkit-pictograph", "-webkit-system-font", "-apple-system-font",
336         "-apple-system-headline", "-apple-system-body", "-apple-system-subheadline", "-apple-system-footnote",
337         "-apple-system-caption1", "-apple-system-caption2", "-apple-system-short-headline", "-apple-system-short-body",
338         "-apple-system-short-subheadline", "-apple-system-short-footnote", "-apple-system-short-caption1",
339         "-apple-system-tall-body"
340     ],
341     "dominant-baseline": [
342         "middle", "auto", "central", "text-before-edge", "text-after-edge", "ideographic", "alphabetic", "hanging",
343         "mathematical", "use-script", "no-change", "reset-size"
344     ],
345     "display": [
346         "none", "inline", "block", "list-item", "compact", "inline-block", "table", "inline-table",
347         "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group",
348         "table-column", "table-cell", "table-caption", "-webkit-box", "-webkit-inline-box", "-wap-marquee",
349         "-webkit-flex", "-webkit-inline-flex", "-webkit-grid", "-webkit-inline-grid"
350     ],
351     "image-rendering": [
352         "auto", "optimizeSpeed", "optimizeQuality", "-webkit-crisp-edges", "-webkit-optimize-contrast"
353     ],
354     "alignment-baseline": [
355         "baseline", "middle", "auto", "before-edge", "after-edge", "central", "text-before-edge", "text-after-edge",
356         "ideographic", "alphabetic", "hanging", "mathematical"
357     ],
358     "outline-width": [
359         "medium", "thick", "thin", "calc()", "-webkit-calc()"
360     ],
361     "text-line-through-width": [
362         "normal", "medium", "auto", "thick", "thin"
363     ],
364     "box-align": [
365         "baseline", "center", "stretch", "start", "end"
366     ],
367     "box-shadow": [
368         "none"
369     ],
370     "text-shadow": [
371         "none"
372     ],
373     "-webkit-box-shadow": [
374         "none"
375     ],
376     "border-right-width": [
377         "medium", "thick", "thin"
378     ],
379     "border-top-style": [
380         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
381     ],
382     "line-height": [
383         "normal"
384     ],
385     "counter-increment": [
386         "none"
387     ],
388     "counter-reset": [
389         "none"
390     ],
391     "text-overflow": [
392         "clip", "ellipsis"
393     ],
394     "-webkit-box-direction": [
395         "normal", "reverse"
396     ],
397     "margin-after-collapse": [
398         "collapse", "separate", "discard"
399     ],
400     "page-break-after": [
401         "left", "right", "auto", "always", "avoid"
402     ],
403     "page-break-before": [
404         "left", "right", "auto", "always", "avoid"
405     ],
406     "page-break-inside": [
407         "auto", "avoid"
408     ],
409     "-webkit-column-break-after": [
410         "left", "right", "auto", "always", "avoid"
411     ],
412     "-webkit-column-break-before": [
413         "left", "right", "auto", "always", "avoid"
414     ],
415     "-webkit-column-break-inside": [
416         "auto", "avoid"
417     ],
418     "-webkit-hyphens": [
419         "none", "auto", "manual"
420     ],
421     "border-image": [
422         "repeat", "stretch", "url()", "linear-gradient()", "radial-gradient()", "repeating-linear-gradient()", "repeating-radial-gradient()", "-webkit-canvas()", "-webkit-cross-fade()", "-webkit-image-set()"
423     ],
424     "border-image-repeat": [
425         "repeat", "stretch", "space", "round"
426     ],
427     "-webkit-mask-box-image-repeat": [
428         "repeat", "stretch", "space", "round"
429     ],
430     "position": [
431         "absolute", "fixed", "relative", "static", "-webkit-sticky"
432     ],
433     "font-family": [
434         "serif", "sans-serif", "cursive", "fantasy", "monospace", "-webkit-body", "-webkit-pictograph",
435         "-webkit-system-font", "-apple-system-font", "-apple-system-headline", "-apple-system-body",
436         "-apple-system-subheadline", "-apple-system-footnote", "-apple-system-caption1", "-apple-system-caption2",
437         "-apple-system-short-headline", "-apple-system-short-body", "-apple-system-short-subheadline",
438         "-apple-system-short-footnote", "-apple-system-short-caption1", "-apple-system-tall-body"
439     ],
440     "text-overflow-mode": [
441         "clip", "ellipsis"
442     ],
443     "border-bottom-style": [
444         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
445     ],
446     "unicode-bidi": [
447         "normal", "bidi-override", "embed", "-webkit-plaintext", "-webkit-isolate", "-webkit-isolate-override"
448     ],
449     "clip-rule": [
450         "nonzero", "evenodd"
451     ],
452     "margin-left": [
453         "auto"
454     ],
455     "margin-top": [
456         "auto"
457     ],
458     "zoom": [
459         "normal", "document", "reset"
460     ],
461     "z-index": [
462         "auto"
463     ],
464     "width": [
465         "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
466     ],
467     "height": [
468         "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
469     ],
470     "max-width": [
471         "none", "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
472     ],
473     "min-width": [
474         "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
475     ],
476     "max-height": [
477         "none", "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
478     ],
479     "min-height": [
480         "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
481     ],
482     "-webkit-logical-width": [
483         "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
484     ],
485     "-webkit-logical-height": [
486         "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
487     ],
488     "-webkit-max-logical-width": [
489         "none", "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
490     ],
491     "-webkit-min-logical-width": [
492         "intrinsic", "min-intrinsic", "-webkit-min-content", "-webkit-max-content", "-webkit-fill-available", "-webkit-fit-content", "calc()", "-webkit-calc()"
493     ],
494     "-webkit-max-logical-height": [
495         "none", "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
496     ],
497     "-webkit-min-logical-height": [
498         "intrinsic", "min-intrinsic", "calc()", "-webkit-calc()"
499     ],
500     "empty-cells": [
501         "hide", "show"
502     ],
503     "pointer-events": [
504         "none", "all", "auto", "visible", "visiblepainted", "visiblefill", "visiblestroke", "painted", "fill", "stroke"
505     ],
506     "letter-spacing": [
507         "normal", "calc()", "-webkit-calc()"
508     ],
509     "word-spacing": [
510         "normal", "calc()", "-webkit-calc()"
511     ],
512     "background-clip": [
513         "border-box", "content-box", "padding-box"
514     ],
515     "-webkit-font-kerning": [
516         "auto", "normal", "none"
517     ],
518     "-webkit-font-smoothing": [
519         "none", "auto", "antialiased", "subpixel-antialiased"
520     ],
521     "border": [
522         "none", "hidden", "inset", "groove", "ridge", "outset", "dotted", "dashed", "solid", "double"
523     ],
524     "font-size": [
525         "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "-webkit-xxx-large", "smaller",
526         "larger"
527     ],
528     "font-variant": [
529         "small-caps", "normal"
530     ],
531     "vertical-align": [
532         "baseline", "middle", "sub", "super", "text-top", "text-bottom", "top", "bottom", "-webkit-baseline-middle"
533     ],
534     "white-space": [
535         "normal", "nowrap", "pre", "pre-line", "pre-wrap"
536     ],
537     "word-break": [
538         "normal", "break-all", "break-word"
539     ],
540     "text-underline-width": [
541         "normal", "medium", "auto", "thick", "thin", "calc()", "-webkit-calc()"
542     ],
543     "text-indent": [
544         "-webkit-each-line", "-webkit-hanging"
545     ],
546     "-webkit-box-lines": [
547         "single", "multiple"
548     ],
549     "clip": [
550         "auto", "rect()"
551     ],
552     "clip-path": [
553         "none", "url()", "circle()", "ellipse()", "inset()", "polygon()", "margin-box", "border-box", "padding-box", "content-box"
554     ],
555     "-webkit-shape-outside": [
556         "none", "url()", "circle()", "ellipse()", "inset()", "polygon()", "margin-box", "border-box", "padding-box", "content-box"
557     ],
558     "orphans": [
559         "auto"
560     ],
561     "widows": [
562         "auto"
563     ],
564     "margin": [
565         "auto"
566     ],
567     "page": [
568         "auto"
569     ],
570     "-webkit-marquee-increment": [
571         "small", "large", "medium"
572     ],
573     "-webkit-marquee-direction": [
574         "left", "right", "auto", "reverse", "forwards", "backwards", "ahead", "up", "down"
575     ],
576     "-webkit-marquee-style": [
577         "none", "scroll", "slide", "alternate"
578     ],
579     "-webkit-marquee-repetition": [
580         "infinite"
581     ],
582     "-webkit-marquee-speed": [
583         "normal", "slow", "fast"
584     ],
585     "margin-right": [
586         "auto"
587     ],
588     "marquee-speed": [
589         "normal", "slow", "fast"
590     ],
591     "-webkit-text-emphasis": [
592         "circle", "filled", "open", "dot", "double-circle", "triangle", "sesame"
593     ],
594     "-webkit-text-emphasis-style": [
595         "circle", "filled", "open", "dot", "double-circle", "triangle", "sesame"
596     ],
597     "-webkit-text-emphasis-position": [
598         "over", "under"
599     ],
600     "-webkit-transform": [
601         "none",
602         "scale()", "scaleX()", "scaleY()", "scale3d()", "rotate()", "rotateX()", "rotateY()", "rotateZ()", "rotate3d()", "skew()", "skewX()", "skewY()",
603         "translate()", "translateX()", "translateY()", "translateZ()", "translate3d()", "matrix()", "matrix3d()", "perspective()"
604     ],
605     "-webkit-cursor-visibility": [
606         "auto", "auto-hide"
607     ],
608     "text-decoration": [
609         "none", "underline", "overline", "line-through", "blink"
610     ],
611     "-webkit-text-decorations-in-effect": [
612         "none", "underline", "overline", "line-through", "blink",
613     ],
614     "-webkit-text-decoration-line": [
615         "none", "underline", "overline", "line-through", "blink",
616     ],
617     "-webkit-text-decoration-style": [
618         "solid", "double", "dotted", "dashed", "wavy"
619     ],
620     "-webkit-text-underline-position": [
621         "auto", "alphabetic", "under"
622     ],
623     "image-resolution": [
624         "from-image", "snap"
625     ],
626     "-webkit-blend-mode": [
627         "normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity",
628     ],
629     "mix": [
630         "auto",
631         "normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity",
632         "clear", "copy", "destination", "source-over", "destination-over", "source-in", "destination-in", "source-out", "destination-out", "source-atop", "destination-atop", "xor"
633     ],
634     "geometry": [
635         "detached", "attached", "grid()"
636     ],
637     "overflow-wrap": [
638         "normal", "break-word"
639     ],
640     "transition": [
641         "none", "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()", "all", WebInspector.CSSKeywordCompletions.AllPropertyNamesPlaceholder
642     ],
643     "transition-timing-function": [
644         "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()"
645     ],
646     "transition-property": [
647         "all", "none", WebInspector.CSSKeywordCompletions.AllPropertyNamesPlaceholder
648     ],
649     "-webkit-column-progression": [
650         "normal", "reverse"
651     ],
652     "-webkit-box-decoration-break": [
653         "slice", "clone"
654     ],
655     "-webkit-align-content": [
656         "flex-start", "flex-end", "center", "space-between", "space-around", "stretch"
657     ],
658     "-webkit-align-items": [
659         "flex-start", "flex-end", "center", "baseline", "stretch"
660     ],
661     "-webkit-align-self": [
662         "auto", "flex-start", "flex-end", "center", "baseline", "stretch"
663     ],
664     "-webkit-justify-content": [
665         "flex-start", "flex-end", "center", "space-between", "space-around"
666     ],
667     "-webkit-flex-direction": [
668         "row", "row-reverse", "column", "column-reverse"
669     ],
670     "-webkit-flex-wrap": [
671         "nowrap", "wrap", "wrap-reverse"
672     ],
673     "-webkit-flex-flow": [
674         "row", "row-reverse", "column", "column-reverse",
675         "nowrap", "wrap", "wrap-reverse"
676     ],
677     "-webkit-flex": [
678         "none"
679     ],
680     "-webkit-flex-basis": [
681         "auto"
682     ],
683     "-webkit-grid-after": [
684         "auto"
685     ],
686     "-webkit-grid-before": [
687         "auto"
688     ],
689     "-webkit-grid-end": [
690         "auto"
691     ],
692     "-webkit-grid-start": [
693         "auto"
694     ],
695     "-webkit-grid-auto-flow": [
696         "none", "rows", "columns"
697     ],
698     "-webkit-grid-column": [
699         "auto"
700     ],
701     "-webkit-grid-row": [
702         "auto"
703     ],
704     "-webkit-grid-columns": [
705         "auto", "-webkit-max-content", "-webkit-min-content"
706     ],
707     "-webkit-grid-rows": [
708         "auto", "-webkit-max-content", "-webkit-min-content"
709     ],
710     "-webkit-ruby-position": [
711         "after", "before"
712     ],
713     "-webkit-text-align-last": [
714         "auto", "start", "end", "left", "right", "center", "justify"
715     ],
716     "-webkit-text-justify": [
717         "auto", "none", "inter-word", "inter-ideograph", "inter-cluster", "distribute", "kashida"
718     ],
719     "max-zoom": [
720         "auto"
721     ],
722     "min-zoom": [
723         "auto"
724     ],
725     "orientation": [
726         "auto", "portait", "landscape"
727     ],
728     "user-zoom": [
729         "zoom", "fixed"
730     ],
731     "-webkit-app-region": [
732         "drag", "no-drag"
733     ],
734     "-webkit-line-break": [
735         "auto", "loose", "normal", "strict", "after-white-space"
736     ],
737     "-webkit-background-composite": [
738         "clear", "copy", "source-over", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "plus-darker", "plus-lighter"
739     ],
740     "-webkit-mask-composite": [
741         "clear", "copy", "source-over", "source-in", "source-out", "source-atop", "destination-over", "destination-in", "destination-out", "destination-atop", "xor", "plus-darker", "plus-lighter"
742     ],
743     "-webkit-animation-direction": [
744         "normal", "alternate", "reverse", "alternate-reverse"
745     ],
746     "-webkit-animation-fill-mode": [
747         "none", "forwards", "backwards", "both"
748     ],
749     "-webkit-animation-iteration-count": [
750         "infinite"
751     ],
752     "-webkit-animation-play-state": [
753         "paused", "running"
754     ],
755     "-webkit-animation-timing-function": [
756         "ease", "linear", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps()", "cubic-bezier()"
757     ],
758     "-webkit-column-span": [
759         "all", "none", "calc()", "-webkit-calc()"
760     ],
761     "-webkit-region-break-after": [
762         "auto", "always", "avoid", "left", "right"
763     ],
764     "-webkit-region-break-before": [
765         "auto", "always", "avoid", "left", "right"
766     ],
767     "-webkit-region-break-inside": [
768         "auto", "avoid"
769     ],
770     "-webkit-region-overflow": [
771         "auto", "break"
772     ],
773     "-webkit-backface-visibility": [
774         "visible", "hidden"
775     ],
776     "resize": [
777         "none", "both", "horizontal", "vertical", "auto"
778     ],
779     "caption-side": [
780         "top", "bottom", "left", "right"
781     ],
782     "box-sizing": [
783         "border-box", "content-box"
784     ],
785     "-webkit-border-fit": [
786         "border", "lines"
787     ],
788     "-webkit-line-align": [
789         "none", "edges"
790     ],
791     "-webkit-line-snap": [
792         "none", "baseline", "contain"
793     ],
794     "-webkit-nbsp-mode": [
795         "normal", "space"
796     ],
797     "-webkit-print-color-adjust": [
798         "exact", "economy"
799     ],
800     "-webkit-rtl-ordering": [
801         "logical", "visual"
802     ],
803     "-webkit-text-security": [
804         "disc", "circle", "square", "none"
805     ],
806     "-webkit-transform-style": [
807         "flat", "preserve-3d"
808     ],
809     "-webkit-user-drag": [
810         "auto", "none", "element"
811     ],
812     "-webkit-user-modify": [
813         "read-only", "read-write", "read-write-plaintext-only"
814     ],
815     "-webkit-text-stroke-width": [
816         "medium", "thick", "thin", "calc()", "-webkit-calc()"
817     ],
818     "-webkit-border-start-width": [
819         "medium", "thick", "thin", "calc()", "-webkit-calc()"
820     ],
821     "-webkit-border-end-width": [
822         "medium", "thick", "thin", "calc()", "-webkit-calc()"
823     ],
824     "-webkit-border-before-width": [
825         "medium", "thick", "thin", "calc()", "-webkit-calc()"
826     ],
827     "-webkit-border-after-width": [
828         "medium", "thick", "thin", "calc()", "-webkit-calc()"
829     ],
830     "-webkit-column-rule-width": [
831         "medium", "thick", "thin", "calc()", "-webkit-calc()"
832     ],
833     "-webkit-aspect-ratio": [
834         "none"
835     ],
836     "-webkit-filter": [
837         "none", "grayscale()", "sepia()", "saturate()", "hue-rotate()", "invert()", "opacity()", "brightness()", "contrast()", "blur()", "drop-shadow()", "custom()"
838     ],
839     "-webkit-perspective": [
840         "none"
841     ],
842     "-webkit-column-count": [
843         "auto", "calc()", "-webkit-calc()"
844     ],
845     "-webkit-column-gap": [
846         "normal", "calc()", "-webkit-calc()"
847     ],
848     "-webkit-column-axis": [
849         "horizontal", "vertical", "auto"
850     ],
851     "-webkit-column-width": [
852         "auto", "calc()", "-webkit-calc()"
853     ],
854     "-webkit-hyphenate-character": [
855         "none"
856     ],
857     "-webkit-hyphenate-limit-after": [
858         "auto"
859     ],
860     "-webkit-hyphenate-limit-before": [
861         "auto"
862     ],
863     "-webkit-hyphenate-limit-lines": [
864         "no-limit"
865     ],
866     "-webkit-line-grid": [
867         "none"
868     ],
869     "-webkit-locale": [
870         "auto"
871     ],
872     "-webkit-text-orientation": [
873         "sideways", "sideways-right", "vertical-right", "upright"
874     ],
875     "-webkit-line-box-contain": [
876         "block", "inline", "font", "glyphs", "replaced", "inline-box", "none", "initial"
877     ],
878     "-webkit-font-feature-settings": [
879         "normal"
880     ],
881     "-webkit-font-variant-ligatures": [
882         "normal", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures"
883     ],
884     /*
885     "-webkit-appearance": [
886         "none", "checkbox", "radio", "push-button", "square-button", "button", "button-bevel", "default-button", "inner-spin-button", "-webkit-input-speech-button", "listbox", "listitem", "media-enter-fullscreen-button", "media-exit-fullscreen-button", "media-fullscreen-volume-slider", "media-fullscreen-volume-slider-thumb", "media-mute-button", "media-play-button", "media-overlay-play-button", "media-seek-back-button", "media-seek-forward-button", "media-rewind-button", "media-return-to-realtime-button", "media-toggle-closed-captions-button", "media-slider", "media-sliderthumb", "media-volume-slider-container", "media-volume-slider", "media-volume-sliderthumb", "media-volume-slider-mute-button", "media-controls-background", "media-controls-fullscreen-background", "media-current-time-display", "media-time-remaining-display", "menulist", "menulist-button", "menulist-text", "menulist-textfield", "meter", "progress-bar", "progress-bar-value", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "caret", "searchfield", "searchfield-decoration", "searchfield-results-decoration", "searchfield-results-button", "searchfield-cancel-button", "snapshotted-plugin-overlay", "textfield", "relevancy-level-indicator", "continuous-capacity-level-indicator", "discrete-capacity-level-indicator", "rating-level-indicator", "textarea"
887     ],
888     */
889
890     // iOS Properties
891     "-webkit-text-size-adjust": [
892         "none", "auto"
893     ],
894     "-webkit-touch-callout": [
895         "default", "none"
896     ],
897     "-webkit-overflow-scrolling": [
898         "auto", "touch"
899     ]
900 };