xref: /vim-8.2.3635/runtime/syntax/css.vim (revision 06fe74ae)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     Cascading Style Sheets
3d09acef4SBram Moolenaar" Previous Contributor List:
4d09acef4SBram Moolenaar"               Claudio Fleiner <[email protected]> (Maintainer)
5d09acef4SBram Moolenaar"               Yeti            (Add full CSS2, HTML4 support)
6d09acef4SBram Moolenaar"               Nikolai Weibull (Add CSS2 support)
73a0d8090SBram Moolenaar" URL:          https://github.com/JulesWang/css.vim
822f1d0e3SBram Moolenaar" Maintainer:   Jules Wang      <[email protected]>
9*06fe74aeSBram Moolenaar" Last Change:  2019 Jul. 29
10071d4279SBram Moolenaar
1189bcfda6SBram Moolenaar" quit when a syntax file was already loaded
12071d4279SBram Moolenaarif !exists("main_syntax")
1389bcfda6SBram Moolenaar  if exists("b:current_syntax")
14071d4279SBram Moolenaar    finish
15071d4279SBram Moolenaar  endif
16071d4279SBram Moolenaar  let main_syntax = 'css'
17e2db695dSBram Moolenaarelseif exists("b:current_syntax") && b:current_syntax == "css"
18e2db695dSBram Moolenaar  finish
19071d4279SBram Moolenaarendif
20071d4279SBram Moolenaar
210c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
220c5fa7d7SBram Moolenaarset cpo&vim
230c5fa7d7SBram Moolenaar
24071d4279SBram Moolenaarsyn case ignore
25071d4279SBram Moolenaar
26f2571c61SBram Moolenaar" HTML4 tags
27f2571c61SBram Moolenaarsyn keyword cssTagName abbr address area a b base
28f2571c61SBram Moolenaarsyn keyword cssTagName bdo blockquote body br button
29f2571c61SBram Moolenaarsyn keyword cssTagName caption cite code col colgroup dd del
30f2571c61SBram Moolenaarsyn keyword cssTagName dfn div dl dt em fieldset form
31f2571c61SBram Moolenaarsyn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
32f2571c61SBram Moolenaarsyn keyword cssTagName iframe input ins isindex kbd label legend li
33f2571c61SBram Moolenaarsyn keyword cssTagName link map menu meta noscript ol optgroup
34f2571c61SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script small
35f2571c61SBram Moolenaarsyn keyword cssTagName span strong sub sup tbody td
36f2571c61SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr ul u var
37baca7f70SBram Moolenaarsyn keyword cssTagName object svg
38f2571c61SBram Moolenaarsyn match   cssTagName /\<select\>\|\<style\>\|\<table\>/
39d09acef4SBram Moolenaar
40baca7f70SBram Moolenaar" 34 HTML5 tags
41baca7f70SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command data
42baca7f70SBram Moolenaarsyn keyword cssTagName datalist details dialog embed figcaption figure footer
43baca7f70SBram Moolenaarsyn keyword cssTagName header hgroup keygen main mark menuitem meter nav
44d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section
45d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr
46d09acef4SBram Moolenaar
47d09acef4SBram Moolenaar" Tags not supported in HTML5
48f2571c61SBram Moolenaar" acronym applet basefont big center dir
49f2571c61SBram Moolenaar" font frame frameset noframes strike tt
50d09acef4SBram Moolenaar
51071d4279SBram Moolenaarsyn match cssTagName "\*"
52071d4279SBram Moolenaar
53d09acef4SBram Moolenaar" selectors
54baca7f70SBram Moolenaarsyn match cssSelectorOp "[,>+~]"
55d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained
56baca7f70SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
57071d4279SBram Moolenaar
58d09acef4SBram Moolenaar" .class and #id
59369b6f57SBram Moolenaarsyn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
60dfb18411SBram Moolenaarsyn match cssClassNameDot contained '\.'
61d09acef4SBram Moolenaar
62a5792f58SBram Moolenaartry
63293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
64a5792f58SBram Moolenaarcatch /^.*/
65a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
66a5792f58SBram Moolenaarendtry
67a5792f58SBram Moolenaar
68baca7f70SBram Moolenaar" digits
69baca7f70SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
70baca7f70SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
71*06fe74aeSBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|fr\|vw\|vh\|vmin\|vmax\)\>" contains=cssUnitDecorators
7222f1d0e3SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
73f2571c61SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
74f2571c61SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
75f2571c61SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
76071d4279SBram Moolenaar
773a0d8090SBram Moolenaar" The 16 basic color names
78071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
793a0d8090SBram Moolenaar
803a0d8090SBram Moolenaar" 130 more color names
813a0d8090SBram Moolenaarsyn keyword cssColor contained aliceblue antiquewhite aquamarine azure
823a0d8090SBram Moolenaarsyn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
833a0d8090SBram Moolenaarsyn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
84f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
85f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
86f2571c61SBram Moolenaarsyn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
87f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(turquoise\|violet\)\>/
883a0d8090SBram Moolenaarsyn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
893a0d8090SBram Moolenaarsyn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
903a0d8090SBram Moolenaarsyn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
913a0d8090SBram Moolenaarsyn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
923a0d8090SBram Moolenaarsyn keyword cssColor contained lemonchiffon limegreen linen magenta
93f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
94f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
95f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
96f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
97f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
983a0d8090SBram Moolenaarsyn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
993a0d8090SBram Moolenaarsyn keyword cssColor contained oldlace olivedrab orange orangered orchid
100f2571c61SBram Moolenaarsyn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
1013a0d8090SBram Moolenaarsyn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
10222f1d0e3SBram Moolenaarsyn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
10322f1d0e3SBram Moolenaarsyn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
1043a0d8090SBram Moolenaarsyn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
1053a0d8090SBram Moolenaarsyn keyword cssColor contained thistle tomato turquoise violet wheat
1063a0d8090SBram Moolenaarsyn keyword cssColor contained whitesmoke yellowgreen
1073a0d8090SBram Moolenaar
108baca7f70SBram Moolenaar" FIXME: These are actually case-insensitive too, but (a) specs recommend using
109071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in
110071d4279SBram Moolenaar" all situations
111071d4279SBram Moolenaarsyn case match
112071d4279SBram Moolenaarsyn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background
113071d4279SBram Moolenaarsyn case ignore
114d09acef4SBram Moolenaar
115d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>"
116*06fe74aeSBram Moolenaarsyn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
117d09acef4SBram Moolenaar
118071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>"
119f2571c61SBram Moolenaarsyn match cssColor contained "\<currentColor\>"
120071d4279SBram Moolenaarsyn match cssColor contained "\<white\>"
12122f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
12222f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
12322f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
124d09acef4SBram Moolenaar
12522f1d0e3SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
126*06fe74aeSBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
127baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline  contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
128baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
129baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
130baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
131baca7f70SBram Moolenaarsyn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
132baca7f70SBram Moolenaarsyn match cssFunctionComma contained ","
133071d4279SBram Moolenaar
134baca7f70SBram Moolenaar" Common Prop and Attr
135baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all default normal
136baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained top bottom center stretch hidden visible
137baca7f70SBram Moolenaar"------------------------------------------------
138baca7f70SBram Moolenaar" CSS Animations
139baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-animations/
140dfb18411SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
141071d4279SBram Moolenaar
142baca7f70SBram Moolenaar" animation-direction attributes
143baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained alternate reverse
144baca7f70SBram Moolenaarsyn match cssAnimationAttr contained "\<alternate-reverse\>"
145d09acef4SBram Moolenaar
146baca7f70SBram Moolenaar" animation-fill-mode attributes
147baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained forwards backwards both
148d09acef4SBram Moolenaar
149baca7f70SBram Moolenaar" animation-play-state attributes
150baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained running paused
151f2571c61SBram Moolenaar
152f2571c61SBram Moolenaar" animation-iteration-count attributes
153f2571c61SBram Moolenaarsyn keyword cssAnimationAttr contained infinite
154baca7f70SBram Moolenaar"------------------------------------------------
155baca7f70SBram Moolenaar"  CSS Backgrounds and Borders Module Level 3
156baca7f70SBram Moolenaar"  http://www.w3.org/TR/css3-background/
157baca7f70SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
158baca7f70SBram Moolenaar" background-attachment attributes
159baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained scroll fixed local
160d09acef4SBram Moolenaar
161baca7f70SBram Moolenaar" background-position attributes
162baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained left center right top bottom
163d09acef4SBram Moolenaar
164baca7f70SBram Moolenaar" background-repeat attributes
165d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>"
166d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
167d09acef4SBram Moolenaar
168baca7f70SBram Moolenaar" background-size attributes
169baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained cover contain
170d09acef4SBram Moolenaar
171baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
172baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
173baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
174baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-decoration-break\>"
175baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-shadow\>"
176d09acef4SBram Moolenaar
177baca7f70SBram Moolenaar" border-image attributes
17822f1d0e3SBram Moolenaarsyn keyword cssBorderAttr contained stretch round fill
179d09acef4SBram Moolenaar
180baca7f70SBram Moolenaar" border-style attributes
181baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
182baca7f70SBram Moolenaar
183baca7f70SBram Moolenaar" border-width attributes
184baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained thin thick medium
185baca7f70SBram Moolenaar
186baca7f70SBram Moolenaar" box-decoration-break attributes
187baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained clone slice
188baca7f70SBram Moolenaar"------------------------------------------------
189baca7f70SBram Moolenaar
190baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
191baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
192d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
193dfb18411SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)\=\>"
194d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto
195d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>"
196d09acef4SBram Moolenaar
197*06fe74aeSBram Moolenaarsyn keyword cssCascadeProp contained all
198*06fe74aeSBram Moolenaarsyn keyword cssCascadeAttr contained initial unset revert
199*06fe74aeSBram Moolenaar
200d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity
201d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>"
202d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>"
203d09acef4SBram Moolenaar
204d09acef4SBram Moolenaar
205d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
206d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height
207d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width
208d09acef4SBram Moolenaar
20922f1d0e3SBram Moolenaar" CSS Flexible Box Layout Module Level 1
21022f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-flexbox/
21122f1d0e3SBram Moolenaar" CSS Box Alignment Module Level 3
21222f1d0e3SBram Moolenaar" http://www.w3.org/TR/css-align-3/
21322f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
21422f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
21522f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxProp contained order
21622f1d0e3SBram Moolenaar
21722f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
21822f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
21922f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
22022f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
221d09acef4SBram Moolenaar
222baca7f70SBram Moolenaar" CSS Fonts Module Level 3
223baca7f70SBram Moolenaar" http://www.w3.org/TR/css-fonts-3/
224baca7f70SBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
225f2571c61SBram Moolenaar
226baca7f70SBram Moolenaar" font attributes
227baca7f70SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption
228071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>"
229071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>"
230baca7f70SBram Moolenaarsyn keyword cssFontAttr contained larger smaller
231baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
23222f1d0e3SBram Moolenaarsyn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
233baca7f70SBram Moolenaar" font-family attributes
234baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=serif\>"
235f2571c61SBram Moolenaarsyn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
236baca7f70SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace
237baca7f70SBram Moolenaar" font-feature-settings attributes
238baca7f70SBram Moolenaarsyn keyword cssFontAttr contained on off
239baca7f70SBram Moolenaar" font-stretch attributes
240baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
241baca7f70SBram Moolenaar" font-style attributes
242baca7f70SBram Moolenaarsyn keyword cssFontAttr contained italic oblique
243f2571c61SBram Moolenaar" font-synthesis attributes
244f2571c61SBram Moolenaarsyn keyword cssFontAttr contained weight style
245baca7f70SBram Moolenaar" font-weight attributes
246baca7f70SBram Moolenaarsyn keyword cssFontAttr contained bold bolder lighter
247f2571c61SBram Moolenaar" TODO: font-variant-* attributes
248baca7f70SBram Moolenaar"------------------------------------------------
249baca7f70SBram Moolenaar
250baca7f70SBram Moolenaar" Webkit specific property/attributes
251baca7f70SBram Moolenaarsyn match cssFontProp contained "\<font-smooth\>"
252baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
253baca7f70SBram Moolenaar
254dfb18411SBram Moolenaar
255dfb18411SBram Moolenaar" CSS Multi-column Layout Module
256dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-multicol/
257dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
258dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
259dfb18411SBram Moolenaarsyn keyword cssMultiColumnProp contained columns
260dfb18411SBram Moolenaarsyn keyword cssMultiColumnAttr contained balance medium
26122f1d0e3SBram Moolenaarsyn keyword cssMultiColumnAttr contained always left right page column
26222f1d0e3SBram Moolenaarsyn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"
263dfb18411SBram Moolenaar
264dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-break/#page-break
265dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
266dfb18411SBram Moolenaar
26722f1d0e3SBram Moolenaar" http://www.w3.org/TR/SVG11/interact.html
26822f1d0e3SBram Moolenaarsyn match cssInteractProp contained "\<pointer-events\>"
26922f1d0e3SBram Moolenaarsyn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"
27022f1d0e3SBram Moolenaar
271dfb18411SBram Moolenaar" TODO find following items in w3c docs.
272baca7f70SBram Moolenaarsyn keyword cssGeneratedContentProp contained quotes crop
273d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
274d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>"
275d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>"
276d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
277d09acef4SBram Moolenaar
27822f1d0e3SBram Moolenaar" https://www.w3.org/TR/css-grid-1/
27922f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid\>"
280*06fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>"
28122f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
28222f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(area\|gap\)\>"
283*06fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>"
284d09acef4SBram Moolenaar
285d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
286d09acef4SBram Moolenaar
287d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
288d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
289d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
290d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
291d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian
292d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside
293d09acef4SBram Moolenaar
294d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left
295d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility
296d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>"
29722f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained block compact grid
298baca7f70SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
299d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both
300d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>"
30122f1d0e3SBram Moolenaarsyn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
302*06fe74aeSBram Moolenaarsyn match cssPositioningAttr contained "\<flow\(-root\)\=\>"
30322f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed subgrid
304d09acef4SBram Moolenaar
30522f1d0e3SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always
306d09acef4SBram Moolenaar
307d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
308d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always
309d09acef4SBram Moolenaar
310d09acef4SBram Moolenaar
311*06fe74aeSBram Moolenaarsyn keyword cssTextProp contained color direction hyphens
312071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
313baca7f70SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
314*06fe74aeSBram Moolenaarsyn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>"
315d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>"
316d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>"
317*06fe74aeSBram Moolenaarsyn match cssTextProp contained "\<tab-size\>"
318d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>"
319071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>"
320071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
321d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap
322071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle
323d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase
324baca7f70SBram Moolenaarsyn keyword cssTextAttr contained justify baseline sub super
325*06fe74aeSBram Moolenaarsyn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision
326d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
327d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>"
328d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent
329d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
330d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last
331d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress
332d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>"
333d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>"
334*06fe74aeSBram Moolenaarsyn keyword cssTextAttr contained manual
335baca7f70SBram Moolenaarsyn match cssTextAttr contained "\<bidi-override\>"
336071d4279SBram Moolenaar
337d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
338d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
339d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>"
340071d4279SBram Moolenaar
341baca7f70SBram Moolenaar" CSS Transitions
342baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-transitions/
343d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
344071d4279SBram Moolenaar
345baca7f70SBram Moolenaar" transition-time-function attributes
346baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
347baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
348baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
349baca7f70SBram Moolenaar"------------------------------------------------
350baca7f70SBram Moolenaar" CSS Basic User Interface Module Level 3 (CSS3 UI)
351baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-ui/
352d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>"
353baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
354baca7f70SBram Moolenaar
355baca7f70SBram Moolenaarsyn keyword cssUIProp contained cursor
356baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
357baca7f70SBram Moolenaarsyn keyword cssUIAttr contained crosshair help move pointer alias copy
358baca7f70SBram Moolenaarsyn keyword cssUIAttr contained progress wait text cell move
359baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<context-menu\>"
360baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<no-drop\>"
361baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<not-allowed\>"
362baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<all-scroll\>"
363baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(vertical-\)\=text\>"
364baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
365baca7f70SBram Moolenaar
366baca7f70SBram Moolenaarsyn match cssUIProp contained "\<ime-mode\>"
367baca7f70SBram Moolenaarsyn keyword cssUIAttr contained active inactive disabled
368baca7f70SBram Moolenaar
369baca7f70SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
370baca7f70SBram Moolenaarsyn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
371baca7f70SBram Moolenaarsyn keyword cssUIAttr contained invert
372baca7f70SBram Moolenaar
373baca7f70SBram Moolenaarsyn keyword cssUIProp contained icon resize
374baca7f70SBram Moolenaarsyn keyword cssUIAttr contained both horizontal vertical
375baca7f70SBram Moolenaar
376baca7f70SBram Moolenaarsyn match cssUIProp contained "\<text-overflow\>"
377baca7f70SBram Moolenaarsyn keyword cssUIAttr contained clip ellipsis
378baca7f70SBram Moolenaar
37922f1d0e3SBram Moolenaarsyn match cssUIProp contained "\<image-rendering\>"
38022f1d0e3SBram Moolenaarsyn keyword cssUIAttr contained pixellated
38122f1d0e3SBram Moolenaarsyn match cssUIAttr contained "\<crisp-edges\>"
38222f1d0e3SBram Moolenaar
383baca7f70SBram Moolenaar"------------------------------------------------
384baca7f70SBram Moolenaar" Webkit/iOS specific attributes
38522f1d0e3SBram Moolenaarsyn match cssUIAttr contained '\<preserve-3d\>'
386baca7f70SBram Moolenaar" IE specific attributes
38722f1d0e3SBram Moolenaarsyn match cssIEUIAttr contained '\<bicubic\>'
388baca7f70SBram Moolenaar
389baca7f70SBram Moolenaar" Webkit/iOS specific properties
39022f1d0e3SBram Moolenaarsyn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
391baca7f70SBram Moolenaar" IE specific properties
39222f1d0e3SBram Moolenaarsyn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
393baca7f70SBram Moolenaar
394baca7f70SBram Moolenaar" Webkit/Firebox specific properties/attributes
395baca7f70SBram Moolenaarsyn keyword cssUIProp contained appearance
396baca7f70SBram Moolenaarsyn keyword cssUIAttr contained window button field icon document menu
397baca7f70SBram Moolenaar
398071d4279SBram Moolenaar
399071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
400baca7f70SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
401071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness
402071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
403071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent
404071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>"
405071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix
406071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>"
407071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
408071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind
409baca7f70SBram Moolenaarsyn keyword cssAuralAttr contained below level above lower higher
410baca7f70SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
411071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower
412071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous
413071d4279SBram Moolenaar
414baca7f70SBram Moolenaar" mobile text
415baca7f70SBram Moolenaarsyn match cssMobileTextProp contained "\<text-size-adjust\>"
416d09acef4SBram Moolenaar
417*06fe74aeSBram Moolenaarsyn keyword cssMediaProp contained width height orientation scan
41822f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
41922f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
42022f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
42122f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
42222f1d0e3SBram Moolenaarsyn keyword cssMediaAttr contained portrait landscape progressive interlace
423*06fe74aeSBram Moolenaarsyn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
42422f1d0e3SBram Moolenaarsyn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
42522f1d0e3SBram Moolenaarsyn keyword cssPageProp contained content size
42622f1d0e3SBram Moolenaarsyn keyword cssPageProp contained orphans widows
42722f1d0e3SBram Moolenaarsyn keyword cssFontDescriptorProp contained src
42822f1d0e3SBram Moolenaarsyn match cssFontDescriptorProp contained "\<unicode-range\>"
42922f1d0e3SBram Moolenaar" unicode-range attributes
43022f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
43122f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
432baca7f70SBram Moolenaar
433071d4279SBram Moolenaarsyn match cssBraces contained "[{}]"
434071d4279SBram Moolenaarsyn match cssError contained "{@<>"
435*06fe74aeSBram Moolenaarsyn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssCustomProp,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
436071d4279SBram Moolenaarsyn match cssBraceError "}"
437baca7f70SBram Moolenaarsyn match cssAttrComma ","
438071d4279SBram Moolenaar
439d09acef4SBram Moolenaar" Pseudo class
440baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-selectors/
441baca7f70SBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
442baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained link visited active hover before after left right
443baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
444baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
445baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
446*06fe74aeSBram Moolenaarsyn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ
447baca7f70SBram Moolenaar" ------------------------------------
448baca7f70SBram Moolenaar" Vendor specific properties
449baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<selection\>"
450baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<focus\(-inner\)\=\>"
451baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<\(input-\)\=placeholder\>"
452baca7f70SBram Moolenaar
453f2571c61SBram Moolenaar" Misc highlight groups
45422f1d0e3SBram Moolenaarsyntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
455f2571c61SBram Moolenaarsyntax match cssNoise contained /\(:\|;\|\/\)/
456071d4279SBram Moolenaar
457d09acef4SBram Moolenaar" Comment
45818441ae2SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell fold
459071d4279SBram Moolenaar
460071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?"
461dfb18411SBram Moolenaarsyn match cssSpecialCharQQ +\\\\\|\\"+ contained
462dfb18411SBram Moolenaarsyn match cssSpecialCharQ +\\\\\|\\'+ contained
463071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
464071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
465d09acef4SBram Moolenaar
466d09acef4SBram Moolenaar" Vendor Prefix
46722f1d0e3SBram Moolenaarsyn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
468d09acef4SBram Moolenaar
469baca7f70SBram Moolenaar" Various CSS Hack characters
470baca7f70SBram Moolenaar" In earlier versions of IE (6 and 7), one can prefix property names
471baca7f70SBram Moolenaar" with a _ or * to isolate those definitions to particular versions of IE
472baca7f70SBram Moolenaar" This is purely decorative and therefore we assign to the same highlight
473baca7f70SBram Moolenaar" group to cssVendor, for more information:
474baca7f70SBram Moolenaar" http://www.paulirish.com/2009/browser-specific-css-hacks/
475baca7f70SBram Moolenaarsyn match cssHacks contained /\(_\|*\)/
476baca7f70SBram Moolenaar
477baca7f70SBram Moolenaar" Attr Enhance
478baca7f70SBram Moolenaar" Some keywords are both Prop and Attr, so we have to handle them
479*06fe74aeSBram Moolenaar" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69
480*06fe74aeSBram Moolenaarsyn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
481baca7f70SBram Moolenaar
482baca7f70SBram Moolenaar" Hack for transition
483f2571c61SBram Moolenaar" 'transition' has Props after ':'.
484f2571c61SBram Moolenaarsyn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
485baca7f70SBram Moolenaar
486*06fe74aeSBram Moolenaarsyn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/
48722f1d0e3SBram Moolenaar
48822f1d0e3SBram Moolenaarsyn keyword cssAtRuleLogical only not and contained
48922f1d0e3SBram Moolenaar
49022f1d0e3SBram Moolenaar" @media
49122f1d0e3SBram Moolenaar" Reference: http://www.w3.org/TR/css3-mediaqueries/
492*06fe74aeSBram Moolenaarsyn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment,cssCustomProp,cssFunctionName nextgroup=cssDefinition
49322f1d0e3SBram Moolenaarsyn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
49422f1d0e3SBram Moolenaar
49522f1d0e3SBram Moolenaar" @page
49622f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-page/
49722f1d0e3SBram Moolenaarsyn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
49822f1d0e3SBram Moolenaarsyn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
49922f1d0e3SBram Moolenaar" @keyframe
50022f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-animations/#keyframes
50122f1d0e3SBram Moolenaarsyn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
50222f1d0e3SBram Moolenaar
50322f1d0e3SBram Moolenaarsyn region cssAtRule start=/@import\>/    end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
50422f1d0e3SBram Moolenaarsyn region cssAtRule start=/@charset\>/   end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
50522f1d0e3SBram Moolenaarsyn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
50622f1d0e3SBram Moolenaar
50722f1d0e3SBram Moolenaar" @supports
50822f1d0e3SBram Moolenaar" https://www.w3.org/TR/css3-conditional/#at-supports
50922f1d0e3SBram Moolenaarsyn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
51022f1d0e3SBram Moolenaar
511071d4279SBram Moolenaar
512071d4279SBram Moolenaarif main_syntax == "css"
513071d4279SBram Moolenaar  syn sync minlines=10
514071d4279SBram Moolenaarendif
515071d4279SBram Moolenaar
516071d4279SBram Moolenaar" Define the default highlighting.
51789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
518071d4279SBram Moolenaar
519f37506f6SBram Moolenaarhi def link cssComment Comment
520f37506f6SBram Moolenaarhi def link cssVendor Comment
521f37506f6SBram Moolenaarhi def link cssHacks Comment
522f37506f6SBram Moolenaarhi def link cssTagName Statement
523f37506f6SBram Moolenaarhi def link cssDeprecated Error
524f37506f6SBram Moolenaarhi def link cssSelectorOp Special
525f37506f6SBram Moolenaarhi def link cssSelectorOp2 Special
526f37506f6SBram Moolenaarhi def link cssAttrComma Special
527d09acef4SBram Moolenaar
528f37506f6SBram Moolenaarhi def link cssAnimationProp cssProp
529f37506f6SBram Moolenaarhi def link cssBackgroundProp cssProp
530f37506f6SBram Moolenaarhi def link cssBorderProp cssProp
531f37506f6SBram Moolenaarhi def link cssBoxProp cssProp
532*06fe74aeSBram Moolenaarhi def link cssCascadeProp cssProp
533f37506f6SBram Moolenaarhi def link cssColorProp cssProp
534f37506f6SBram Moolenaarhi def link cssContentForPagedMediaProp cssProp
535f37506f6SBram Moolenaarhi def link cssDimensionProp cssProp
536f37506f6SBram Moolenaarhi def link cssFlexibleBoxProp cssProp
537f37506f6SBram Moolenaarhi def link cssFontProp cssProp
538f37506f6SBram Moolenaarhi def link cssGeneratedContentProp cssProp
539f37506f6SBram Moolenaarhi def link cssGridProp cssProp
540f37506f6SBram Moolenaarhi def link cssHyerlinkProp cssProp
54122f1d0e3SBram Moolenaarhi def link cssInteractProp cssProp
542f37506f6SBram Moolenaarhi def link cssLineboxProp cssProp
543f37506f6SBram Moolenaarhi def link cssListProp cssProp
544f37506f6SBram Moolenaarhi def link cssMarqueeProp cssProp
545f37506f6SBram Moolenaarhi def link cssMultiColumnProp cssProp
546f37506f6SBram Moolenaarhi def link cssPagedMediaProp cssProp
547f37506f6SBram Moolenaarhi def link cssPositioningProp cssProp
548f37506f6SBram Moolenaarhi def link cssPrintProp cssProp
549f37506f6SBram Moolenaarhi def link cssRubyProp cssProp
550f37506f6SBram Moolenaarhi def link cssSpeechProp cssProp
551f37506f6SBram Moolenaarhi def link cssTableProp cssProp
552f37506f6SBram Moolenaarhi def link cssTextProp cssProp
553f37506f6SBram Moolenaarhi def link cssTransformProp cssProp
554f37506f6SBram Moolenaarhi def link cssTransitionProp cssProp
555f37506f6SBram Moolenaarhi def link cssUIProp cssProp
556f37506f6SBram Moolenaarhi def link cssIEUIProp cssProp
557f37506f6SBram Moolenaarhi def link cssAuralProp cssProp
558f37506f6SBram Moolenaarhi def link cssRenderProp cssProp
559f37506f6SBram Moolenaarhi def link cssMobileTextProp cssProp
560d09acef4SBram Moolenaar
561f37506f6SBram Moolenaarhi def link cssAnimationAttr cssAttr
562f37506f6SBram Moolenaarhi def link cssBackgroundAttr cssAttr
563f37506f6SBram Moolenaarhi def link cssBorderAttr cssAttr
564f37506f6SBram Moolenaarhi def link cssBoxAttr cssAttr
565f37506f6SBram Moolenaarhi def link cssContentForPagedMediaAttr cssAttr
566f37506f6SBram Moolenaarhi def link cssDimensionAttr cssAttr
567f37506f6SBram Moolenaarhi def link cssFlexibleBoxAttr cssAttr
568f37506f6SBram Moolenaarhi def link cssFontAttr cssAttr
569f37506f6SBram Moolenaarhi def link cssGeneratedContentAttr cssAttr
570f37506f6SBram Moolenaarhi def link cssGridAttr cssAttr
571f37506f6SBram Moolenaarhi def link cssHyerlinkAttr cssAttr
57222f1d0e3SBram Moolenaarhi def link cssInteractAttr cssAttr
573f37506f6SBram Moolenaarhi def link cssLineboxAttr cssAttr
574f37506f6SBram Moolenaarhi def link cssListAttr cssAttr
575f37506f6SBram Moolenaarhi def link cssMarginAttr cssAttr
576f37506f6SBram Moolenaarhi def link cssMarqueeAttr cssAttr
577f37506f6SBram Moolenaarhi def link cssMultiColumnAttr cssAttr
578f37506f6SBram Moolenaarhi def link cssPaddingAttr cssAttr
579f37506f6SBram Moolenaarhi def link cssPagedMediaAttr cssAttr
580f37506f6SBram Moolenaarhi def link cssPositioningAttr cssAttr
581f37506f6SBram Moolenaarhi def link cssGradientAttr cssAttr
582f37506f6SBram Moolenaarhi def link cssPrintAttr cssAttr
583f37506f6SBram Moolenaarhi def link cssRubyAttr cssAttr
584f37506f6SBram Moolenaarhi def link cssSpeechAttr cssAttr
585f37506f6SBram Moolenaarhi def link cssTableAttr cssAttr
586f37506f6SBram Moolenaarhi def link cssTextAttr cssAttr
587f37506f6SBram Moolenaarhi def link cssTransformAttr cssAttr
588f37506f6SBram Moolenaarhi def link cssTransitionAttr cssAttr
589f37506f6SBram Moolenaarhi def link cssUIAttr cssAttr
590f37506f6SBram Moolenaarhi def link cssIEUIAttr cssAttr
591f37506f6SBram Moolenaarhi def link cssAuralAttr cssAttr
592f37506f6SBram Moolenaarhi def link cssRenderAttr cssAttr
593*06fe74aeSBram Moolenaarhi def link cssCascadeAttr cssAttr
594f37506f6SBram Moolenaarhi def link cssCommonAttr cssAttr
595d09acef4SBram Moolenaar
596f37506f6SBram Moolenaarhi def link cssPseudoClassId PreProc
597f37506f6SBram Moolenaarhi def link cssPseudoClassLang Constant
598f37506f6SBram Moolenaarhi def link cssValueLength Number
599f37506f6SBram Moolenaarhi def link cssValueInteger Number
600f37506f6SBram Moolenaarhi def link cssValueNumber Number
601f37506f6SBram Moolenaarhi def link cssValueAngle Number
602f37506f6SBram Moolenaarhi def link cssValueTime Number
603f37506f6SBram Moolenaarhi def link cssValueFrequency Number
604f37506f6SBram Moolenaarhi def link cssFunction Constant
605f37506f6SBram Moolenaarhi def link cssURL String
606f37506f6SBram Moolenaarhi def link cssFunctionName Function
607f37506f6SBram Moolenaarhi def link cssFunctionComma Function
608f37506f6SBram Moolenaarhi def link cssColor Constant
609f37506f6SBram Moolenaarhi def link cssIdentifier Function
61022f1d0e3SBram Moolenaarhi def link cssAtRule Include
61122f1d0e3SBram Moolenaarhi def link cssAtKeyword PreProc
612f37506f6SBram Moolenaarhi def link cssImportant Special
613*06fe74aeSBram Moolenaarhi def link cssCustomProp Special
614f37506f6SBram Moolenaarhi def link cssBraces Function
615f37506f6SBram Moolenaarhi def link cssBraceError Error
616f37506f6SBram Moolenaarhi def link cssError Error
617f37506f6SBram Moolenaarhi def link cssUnicodeEscape Special
618f37506f6SBram Moolenaarhi def link cssStringQQ String
619f37506f6SBram Moolenaarhi def link cssStringQ String
620f37506f6SBram Moolenaarhi def link cssAttributeSelector String
621f37506f6SBram Moolenaarhi def link cssMediaType Special
622f37506f6SBram Moolenaarhi def link cssMediaComma Normal
62322f1d0e3SBram Moolenaarhi def link cssAtRuleLogical Statement
624f37506f6SBram Moolenaarhi def link cssMediaProp cssProp
625f37506f6SBram Moolenaarhi def link cssMediaAttr cssAttr
626f37506f6SBram Moolenaarhi def link cssPagePseudo PreProc
62722f1d0e3SBram Moolenaarhi def link cssPageMarginProp cssAtKeyword
628f37506f6SBram Moolenaarhi def link cssPageProp cssProp
62922f1d0e3SBram Moolenaarhi def link cssKeyFrameProp Constant
630f37506f6SBram Moolenaarhi def link cssFontDescriptor Special
631f37506f6SBram Moolenaarhi def link cssFontDescriptorProp cssProp
632f37506f6SBram Moolenaarhi def link cssFontDescriptorAttr cssAttr
633f37506f6SBram Moolenaarhi def link cssUnicodeRange Constant
634f37506f6SBram Moolenaarhi def link cssClassName Function
635f37506f6SBram Moolenaarhi def link cssClassNameDot Function
636f37506f6SBram Moolenaarhi def link cssProp StorageClass
637f37506f6SBram Moolenaarhi def link cssAttr Constant
638f37506f6SBram Moolenaarhi def link cssUnitDecorators Number
639f37506f6SBram Moolenaarhi def link cssNoise Noise
640071d4279SBram Moolenaar
641071d4279SBram Moolenaarlet b:current_syntax = "css"
642071d4279SBram Moolenaar
643071d4279SBram Moolenaarif main_syntax == 'css'
644071d4279SBram Moolenaar  unlet main_syntax
645071d4279SBram Moolenaarendif
646071d4279SBram Moolenaar
6470c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
6480c5fa7d7SBram Moolenaarunlet s:cpo_save
649071d4279SBram Moolenaar" vim: ts=8
650071d4279SBram Moolenaar
651