xref: /vim-8.2.3635/runtime/syntax/css.vim (revision e7b1ea02)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     Cascading Style Sheets
3d09acef4SBram Moolenaar" Previous Contributor List:
4*e7b1ea02SBram Moolenaar"               Jules Wang      <[email protected]>
5d09acef4SBram Moolenaar"               Claudio Fleiner <[email protected]> (Maintainer)
6d09acef4SBram Moolenaar"               Yeti            (Add full CSS2, HTML4 support)
7d09acef4SBram Moolenaar"               Nikolai Weibull (Add CSS2 support)
8*e7b1ea02SBram Moolenaar" URL:          https://github.com/jsit/css.vim
9*e7b1ea02SBram Moolenaar" Maintainer:   Jay Sitter <[email protected]>
1006fe74aeSBram Moolenaar" Last Change:  2019 Jul. 29
11071d4279SBram Moolenaar
1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded
13071d4279SBram Moolenaarif !exists("main_syntax")
1489bcfda6SBram Moolenaar  if exists("b:current_syntax")
15071d4279SBram Moolenaar    finish
16071d4279SBram Moolenaar  endif
17071d4279SBram Moolenaar  let main_syntax = 'css'
18e2db695dSBram Moolenaarelseif exists("b:current_syntax") && b:current_syntax == "css"
19e2db695dSBram Moolenaar  finish
20071d4279SBram Moolenaarendif
21071d4279SBram Moolenaar
220c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
230c5fa7d7SBram Moolenaarset cpo&vim
240c5fa7d7SBram Moolenaar
25071d4279SBram Moolenaarsyn case ignore
26071d4279SBram Moolenaar
27f2571c61SBram Moolenaar" HTML4 tags
28f2571c61SBram Moolenaarsyn keyword cssTagName abbr address area a b base
29f2571c61SBram Moolenaarsyn keyword cssTagName bdo blockquote body br button
30f2571c61SBram Moolenaarsyn keyword cssTagName caption cite code col colgroup dd del
31f2571c61SBram Moolenaarsyn keyword cssTagName dfn div dl dt em fieldset form
32f2571c61SBram Moolenaarsyn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
33f2571c61SBram Moolenaarsyn keyword cssTagName iframe input ins isindex kbd label legend li
34f2571c61SBram Moolenaarsyn keyword cssTagName link map menu meta noscript ol optgroup
35f2571c61SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script small
36f2571c61SBram Moolenaarsyn keyword cssTagName span strong sub sup tbody td
37f2571c61SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr ul u var
38baca7f70SBram Moolenaarsyn keyword cssTagName object svg
39f2571c61SBram Moolenaarsyn match   cssTagName /\<select\>\|\<style\>\|\<table\>/
40d09acef4SBram Moolenaar
41baca7f70SBram Moolenaar" 34 HTML5 tags
42baca7f70SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command data
43baca7f70SBram Moolenaarsyn keyword cssTagName datalist details dialog embed figcaption figure footer
44baca7f70SBram Moolenaarsyn keyword cssTagName header hgroup keygen main mark menuitem meter nav
45d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section
46d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr
47d09acef4SBram Moolenaar
48d09acef4SBram Moolenaar" Tags not supported in HTML5
49f2571c61SBram Moolenaar" acronym applet basefont big center dir
50f2571c61SBram Moolenaar" font frame frameset noframes strike tt
51d09acef4SBram Moolenaar
52071d4279SBram Moolenaarsyn match cssTagName "\*"
53071d4279SBram Moolenaar
54d09acef4SBram Moolenaar" selectors
55baca7f70SBram Moolenaarsyn match cssSelectorOp "[,>+~]"
56d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained
57baca7f70SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
58071d4279SBram Moolenaar
59d09acef4SBram Moolenaar" .class and #id
60369b6f57SBram Moolenaarsyn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
61dfb18411SBram Moolenaarsyn match cssClassNameDot contained '\.'
62d09acef4SBram Moolenaar
63a5792f58SBram Moolenaartry
64293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
65a5792f58SBram Moolenaarcatch /^.*/
66a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
67a5792f58SBram Moolenaarendtry
68a5792f58SBram Moolenaar
69baca7f70SBram Moolenaar" digits
70baca7f70SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
71baca7f70SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
72*e7b1ea02SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|fr\|vw\|vh\|vmin\|vmax\|ch\)\>" contains=cssUnitDecorators
7322f1d0e3SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
74f2571c61SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
75f2571c61SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
76f2571c61SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
77071d4279SBram Moolenaar
783a0d8090SBram Moolenaar" The 16 basic color names
79071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
803a0d8090SBram Moolenaar
813a0d8090SBram Moolenaar" 130 more color names
823a0d8090SBram Moolenaarsyn keyword cssColor contained aliceblue antiquewhite aquamarine azure
833a0d8090SBram Moolenaarsyn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
843a0d8090SBram Moolenaarsyn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
85f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
86f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
87f2571c61SBram Moolenaarsyn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
88f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(turquoise\|violet\)\>/
893a0d8090SBram Moolenaarsyn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
903a0d8090SBram Moolenaarsyn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
913a0d8090SBram Moolenaarsyn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
923a0d8090SBram Moolenaarsyn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
933a0d8090SBram Moolenaarsyn keyword cssColor contained lemonchiffon limegreen linen magenta
94f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
95f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
96f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
97f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
98f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
993a0d8090SBram Moolenaarsyn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
1003a0d8090SBram Moolenaarsyn keyword cssColor contained oldlace olivedrab orange orangered orchid
101f2571c61SBram Moolenaarsyn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
1023a0d8090SBram Moolenaarsyn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
10322f1d0e3SBram Moolenaarsyn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
10422f1d0e3SBram Moolenaarsyn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
1053a0d8090SBram Moolenaarsyn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
1063a0d8090SBram Moolenaarsyn keyword cssColor contained thistle tomato turquoise violet wheat
1073a0d8090SBram Moolenaarsyn keyword cssColor contained whitesmoke yellowgreen
1083a0d8090SBram Moolenaar
109baca7f70SBram Moolenaar" FIXME: These are actually case-insensitive too, but (a) specs recommend using
110071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in
111071d4279SBram Moolenaar" all situations
112071d4279SBram Moolenaarsyn case match
113071d4279SBram 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
114071d4279SBram Moolenaarsyn case ignore
115d09acef4SBram Moolenaar
116d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>"
11706fe74aeSBram Moolenaarsyn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
118d09acef4SBram Moolenaar
119071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>"
120f2571c61SBram Moolenaarsyn match cssColor contained "\<currentColor\>"
121071d4279SBram Moolenaarsyn match cssColor contained "\<white\>"
12222f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
12322f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
12422f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
125d09acef4SBram Moolenaar
12622f1d0e3SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
12706fe74aeSBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
128baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline  contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
129baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
130baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline  contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
131baca7f70SBram 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
132*e7b1ea02SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
133baca7f70SBram Moolenaarsyn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
134baca7f70SBram Moolenaarsyn match cssFunctionComma contained ","
135071d4279SBram Moolenaar
136baca7f70SBram Moolenaar" Common Prop and Attr
137baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all default normal
138baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained top bottom center stretch hidden visible
139*e7b1ea02SBram Moolenaarsyn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>"
140baca7f70SBram Moolenaar"------------------------------------------------
141baca7f70SBram Moolenaar" CSS Animations
142baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-animations/
143dfb18411SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
144071d4279SBram Moolenaar
145baca7f70SBram Moolenaar" animation-direction attributes
146baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained alternate reverse
147baca7f70SBram Moolenaarsyn match cssAnimationAttr contained "\<alternate-reverse\>"
148d09acef4SBram Moolenaar
149baca7f70SBram Moolenaar" animation-fill-mode attributes
150baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained forwards backwards both
151d09acef4SBram Moolenaar
152baca7f70SBram Moolenaar" animation-play-state attributes
153baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained running paused
154f2571c61SBram Moolenaar
155f2571c61SBram Moolenaar" animation-iteration-count attributes
156f2571c61SBram Moolenaarsyn keyword cssAnimationAttr contained infinite
157baca7f70SBram Moolenaar"------------------------------------------------
158baca7f70SBram Moolenaar"  CSS Backgrounds and Borders Module Level 3
159baca7f70SBram Moolenaar"  http://www.w3.org/TR/css3-background/
160baca7f70SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
161baca7f70SBram Moolenaar" background-attachment attributes
162baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained scroll fixed local
163d09acef4SBram Moolenaar
164baca7f70SBram Moolenaar" background-position attributes
165baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained left center right top bottom
166d09acef4SBram Moolenaar
167baca7f70SBram Moolenaar" background-repeat attributes
168d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>"
169d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
170d09acef4SBram Moolenaar
171baca7f70SBram Moolenaar" background-size attributes
172baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained cover contain
173d09acef4SBram Moolenaar
174baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
175baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
176baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
177baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-decoration-break\>"
178baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-shadow\>"
179d09acef4SBram Moolenaar
180baca7f70SBram Moolenaar" border-image attributes
18122f1d0e3SBram Moolenaarsyn keyword cssBorderAttr contained stretch round fill
182d09acef4SBram Moolenaar
183baca7f70SBram Moolenaar" border-style attributes
184baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
185baca7f70SBram Moolenaar
186baca7f70SBram Moolenaar" border-width attributes
187baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained thin thick medium
188baca7f70SBram Moolenaar
189baca7f70SBram Moolenaar" box-decoration-break attributes
190baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained clone slice
191baca7f70SBram Moolenaar"------------------------------------------------
192baca7f70SBram Moolenaar
193baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
194baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
195d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
196dfb18411SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)\=\>"
197d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto
198d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>"
199d09acef4SBram Moolenaar
20006fe74aeSBram Moolenaarsyn keyword cssCascadeProp contained all
20106fe74aeSBram Moolenaarsyn keyword cssCascadeAttr contained initial unset revert
20206fe74aeSBram Moolenaar
203d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity
204d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>"
205d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>"
206d09acef4SBram Moolenaar
207d09acef4SBram Moolenaar
208d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
209d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height
210d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width
211d09acef4SBram Moolenaar
21222f1d0e3SBram Moolenaar" CSS Flexible Box Layout Module Level 1
21322f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-flexbox/
21422f1d0e3SBram Moolenaar" CSS Box Alignment Module Level 3
21522f1d0e3SBram Moolenaar" http://www.w3.org/TR/css-align-3/
21622f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
21722f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
21822f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxProp contained order
21922f1d0e3SBram Moolenaar
22022f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
22122f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
22222f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
22322f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
224d09acef4SBram Moolenaar
225baca7f70SBram Moolenaar" CSS Fonts Module Level 3
226baca7f70SBram Moolenaar" http://www.w3.org/TR/css-fonts-3/
227baca7f70SBram 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\)\)\=\>"
228f2571c61SBram Moolenaar
229baca7f70SBram Moolenaar" font attributes
230baca7f70SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption
231071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>"
232071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>"
233baca7f70SBram Moolenaarsyn keyword cssFontAttr contained larger smaller
234baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
23522f1d0e3SBram Moolenaarsyn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
236baca7f70SBram Moolenaar" font-family attributes
237baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=serif\>"
238f2571c61SBram 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
239baca7f70SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace
240baca7f70SBram Moolenaar" font-feature-settings attributes
241baca7f70SBram Moolenaarsyn keyword cssFontAttr contained on off
242baca7f70SBram Moolenaar" font-stretch attributes
243baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
244baca7f70SBram Moolenaar" font-style attributes
245baca7f70SBram Moolenaarsyn keyword cssFontAttr contained italic oblique
246f2571c61SBram Moolenaar" font-synthesis attributes
247f2571c61SBram Moolenaarsyn keyword cssFontAttr contained weight style
248baca7f70SBram Moolenaar" font-weight attributes
249baca7f70SBram Moolenaarsyn keyword cssFontAttr contained bold bolder lighter
250f2571c61SBram Moolenaar" TODO: font-variant-* attributes
251baca7f70SBram Moolenaar"------------------------------------------------
252baca7f70SBram Moolenaar
253baca7f70SBram Moolenaar" Webkit specific property/attributes
254baca7f70SBram Moolenaarsyn match cssFontProp contained "\<font-smooth\>"
255baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
256baca7f70SBram Moolenaar
257dfb18411SBram Moolenaar
258dfb18411SBram Moolenaar" CSS Multi-column Layout Module
259dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-multicol/
260dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
261dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
262dfb18411SBram Moolenaarsyn keyword cssMultiColumnProp contained columns
263dfb18411SBram Moolenaarsyn keyword cssMultiColumnAttr contained balance medium
26422f1d0e3SBram Moolenaarsyn keyword cssMultiColumnAttr contained always left right page column
26522f1d0e3SBram Moolenaarsyn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"
266dfb18411SBram Moolenaar
267dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-break/#page-break
268dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
269dfb18411SBram Moolenaar
27022f1d0e3SBram Moolenaar" http://www.w3.org/TR/SVG11/interact.html
27122f1d0e3SBram Moolenaarsyn match cssInteractProp contained "\<pointer-events\>"
27222f1d0e3SBram Moolenaarsyn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"
27322f1d0e3SBram Moolenaar
274dfb18411SBram Moolenaar" TODO find following items in w3c docs.
275baca7f70SBram Moolenaarsyn keyword cssGeneratedContentProp contained quotes crop
276d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
277d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>"
278d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>"
279d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
280d09acef4SBram Moolenaar
28122f1d0e3SBram Moolenaar" https://www.w3.org/TR/css-grid-1/
28222f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid\>"
28306fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>"
28422f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
28522f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(area\|gap\)\>"
28606fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>"
287d09acef4SBram Moolenaar
288d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
289d09acef4SBram Moolenaar
290d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
291d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
292d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
293d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
294d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian
295d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside
296d09acef4SBram Moolenaar
297d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left
298d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility
299d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>"
30022f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained block compact grid
301baca7f70SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
302d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both
303d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>"
30422f1d0e3SBram Moolenaarsyn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
30506fe74aeSBram Moolenaarsyn match cssPositioningAttr contained "\<flow\(-root\)\=\>"
30622f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed subgrid
307d09acef4SBram Moolenaar
30822f1d0e3SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always
309d09acef4SBram Moolenaar
310d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
311d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always
312d09acef4SBram Moolenaar
313d09acef4SBram Moolenaar
31406fe74aeSBram Moolenaarsyn keyword cssTextProp contained color direction hyphens
315071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
316baca7f70SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
31706fe74aeSBram Moolenaarsyn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>"
318d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>"
319d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>"
32006fe74aeSBram Moolenaarsyn match cssTextProp contained "\<tab-size\>"
321d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>"
322071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>"
323071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
324d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap
325071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle
326d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase
327baca7f70SBram Moolenaarsyn keyword cssTextAttr contained justify baseline sub super
32806fe74aeSBram Moolenaarsyn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision
329d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
330d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>"
331d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent
332d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
333d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last
334d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress
335d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>"
336d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>"
33706fe74aeSBram Moolenaarsyn keyword cssTextAttr contained manual
338baca7f70SBram Moolenaarsyn match cssTextAttr contained "\<bidi-override\>"
339071d4279SBram Moolenaar
340d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
341d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
342d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>"
343071d4279SBram Moolenaar
344baca7f70SBram Moolenaar" CSS Transitions
345baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-transitions/
346d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
347071d4279SBram Moolenaar
348baca7f70SBram Moolenaar" transition-time-function attributes
349baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
350baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
351baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
352baca7f70SBram Moolenaar"------------------------------------------------
353baca7f70SBram Moolenaar" CSS Basic User Interface Module Level 3 (CSS3 UI)
354baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-ui/
355d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>"
356baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
357baca7f70SBram Moolenaar
358baca7f70SBram Moolenaarsyn keyword cssUIProp contained cursor
359baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
360baca7f70SBram Moolenaarsyn keyword cssUIAttr contained crosshair help move pointer alias copy
361baca7f70SBram Moolenaarsyn keyword cssUIAttr contained progress wait text cell move
362baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<context-menu\>"
363baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<no-drop\>"
364baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<not-allowed\>"
365baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<all-scroll\>"
366baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(vertical-\)\=text\>"
367baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
368baca7f70SBram Moolenaar
369baca7f70SBram Moolenaarsyn match cssUIProp contained "\<ime-mode\>"
370baca7f70SBram Moolenaarsyn keyword cssUIAttr contained active inactive disabled
371baca7f70SBram Moolenaar
372baca7f70SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
373baca7f70SBram Moolenaarsyn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
374baca7f70SBram Moolenaarsyn keyword cssUIAttr contained invert
375baca7f70SBram Moolenaar
376baca7f70SBram Moolenaarsyn keyword cssUIProp contained icon resize
377baca7f70SBram Moolenaarsyn keyword cssUIAttr contained both horizontal vertical
378baca7f70SBram Moolenaar
379baca7f70SBram Moolenaarsyn match cssUIProp contained "\<text-overflow\>"
380baca7f70SBram Moolenaarsyn keyword cssUIAttr contained clip ellipsis
381baca7f70SBram Moolenaar
38222f1d0e3SBram Moolenaarsyn match cssUIProp contained "\<image-rendering\>"
38322f1d0e3SBram Moolenaarsyn keyword cssUIAttr contained pixellated
38422f1d0e3SBram Moolenaarsyn match cssUIAttr contained "\<crisp-edges\>"
38522f1d0e3SBram Moolenaar
386baca7f70SBram Moolenaar"------------------------------------------------
387baca7f70SBram Moolenaar" Webkit/iOS specific attributes
38822f1d0e3SBram Moolenaarsyn match cssUIAttr contained '\<preserve-3d\>'
389baca7f70SBram Moolenaar" IE specific attributes
39022f1d0e3SBram Moolenaarsyn match cssIEUIAttr contained '\<bicubic\>'
391baca7f70SBram Moolenaar
392baca7f70SBram Moolenaar" Webkit/iOS specific properties
39322f1d0e3SBram Moolenaarsyn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
394baca7f70SBram Moolenaar" IE specific properties
39522f1d0e3SBram Moolenaarsyn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
396baca7f70SBram Moolenaar
397baca7f70SBram Moolenaar" Webkit/Firebox specific properties/attributes
398baca7f70SBram Moolenaarsyn keyword cssUIProp contained appearance
399baca7f70SBram Moolenaarsyn keyword cssUIAttr contained window button field icon document menu
400baca7f70SBram Moolenaar
401071d4279SBram Moolenaar
402071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
403baca7f70SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
404071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness
405071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
406071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent
407071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>"
408071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix
409071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>"
410071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
411071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind
412baca7f70SBram Moolenaarsyn keyword cssAuralAttr contained below level above lower higher
413baca7f70SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
414071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower
415071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous
416071d4279SBram Moolenaar
417baca7f70SBram Moolenaar" mobile text
418baca7f70SBram Moolenaarsyn match cssMobileTextProp contained "\<text-size-adjust\>"
419d09acef4SBram Moolenaar
42006fe74aeSBram Moolenaarsyn keyword cssMediaProp contained width height orientation scan
42122f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
42222f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
42322f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
42422f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
42522f1d0e3SBram Moolenaarsyn keyword cssMediaAttr contained portrait landscape progressive interlace
42606fe74aeSBram Moolenaarsyn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
42722f1d0e3SBram Moolenaarsyn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
42822f1d0e3SBram Moolenaarsyn keyword cssPageProp contained content size
42922f1d0e3SBram Moolenaarsyn keyword cssPageProp contained orphans widows
43022f1d0e3SBram Moolenaarsyn keyword cssFontDescriptorProp contained src
43122f1d0e3SBram Moolenaarsyn match cssFontDescriptorProp contained "\<unicode-range\>"
43222f1d0e3SBram Moolenaar" unicode-range attributes
43322f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
43422f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
435baca7f70SBram Moolenaar
436071d4279SBram Moolenaarsyn match cssBraces contained "[{}]"
437071d4279SBram Moolenaarsyn match cssError contained "{@<>"
43806fe74aeSBram 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
439071d4279SBram Moolenaarsyn match cssBraceError "}"
440baca7f70SBram Moolenaarsyn match cssAttrComma ","
441071d4279SBram Moolenaar
442d09acef4SBram Moolenaar" Pseudo class
443baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-selectors/
444baca7f70SBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
445baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained link visited active hover before after left right
446baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
447baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
448baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
44906fe74aeSBram Moolenaarsyn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ
450baca7f70SBram Moolenaar" ------------------------------------
451baca7f70SBram Moolenaar" Vendor specific properties
452baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<selection\>"
453baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<focus\(-inner\)\=\>"
454baca7f70SBram Moolenaarsyn match cssPseudoClassId contained  "\<\(input-\)\=placeholder\>"
455baca7f70SBram Moolenaar
456f2571c61SBram Moolenaar" Misc highlight groups
45722f1d0e3SBram 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
458f2571c61SBram Moolenaarsyntax match cssNoise contained /\(:\|;\|\/\)/
459071d4279SBram Moolenaar
460d09acef4SBram Moolenaar" Comment
46118441ae2SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell fold
462071d4279SBram Moolenaar
463071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?"
464dfb18411SBram Moolenaarsyn match cssSpecialCharQQ +\\\\\|\\"+ contained
465dfb18411SBram Moolenaarsyn match cssSpecialCharQ +\\\\\|\\'+ contained
466071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
467071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
468d09acef4SBram Moolenaar
469d09acef4SBram Moolenaar" Vendor Prefix
47022f1d0e3SBram Moolenaarsyn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
471d09acef4SBram Moolenaar
472baca7f70SBram Moolenaar" Various CSS Hack characters
473baca7f70SBram Moolenaar" In earlier versions of IE (6 and 7), one can prefix property names
474baca7f70SBram Moolenaar" with a _ or * to isolate those definitions to particular versions of IE
475baca7f70SBram Moolenaar" This is purely decorative and therefore we assign to the same highlight
476baca7f70SBram Moolenaar" group to cssVendor, for more information:
477baca7f70SBram Moolenaar" http://www.paulirish.com/2009/browser-specific-css-hacks/
478baca7f70SBram Moolenaarsyn match cssHacks contained /\(_\|*\)/
479baca7f70SBram Moolenaar
480baca7f70SBram Moolenaar" Attr Enhance
481baca7f70SBram Moolenaar" Some keywords are both Prop and Attr, so we have to handle them
48206fe74aeSBram Moolenaar" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69
48306fe74aeSBram Moolenaarsyn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
484baca7f70SBram Moolenaar
485baca7f70SBram Moolenaar" Hack for transition
486f2571c61SBram Moolenaar" 'transition' has Props after ':'.
487f2571c61SBram 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
488baca7f70SBram Moolenaar
48906fe74aeSBram Moolenaarsyn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/
49022f1d0e3SBram Moolenaar
49122f1d0e3SBram Moolenaarsyn keyword cssAtRuleLogical only not and contained
49222f1d0e3SBram Moolenaar
49322f1d0e3SBram Moolenaar" @media
49422f1d0e3SBram Moolenaar" Reference: http://www.w3.org/TR/css3-mediaqueries/
49506fe74aeSBram Moolenaarsyn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment,cssCustomProp,cssFunctionName nextgroup=cssDefinition
49622f1d0e3SBram Moolenaarsyn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
49722f1d0e3SBram Moolenaar
49822f1d0e3SBram Moolenaar" @page
49922f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-page/
50022f1d0e3SBram Moolenaarsyn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
50122f1d0e3SBram Moolenaarsyn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
50222f1d0e3SBram Moolenaar" @keyframe
50322f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-animations/#keyframes
50422f1d0e3SBram Moolenaarsyn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
50522f1d0e3SBram Moolenaar
50622f1d0e3SBram Moolenaarsyn region cssAtRule start=/@import\>/    end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
50722f1d0e3SBram Moolenaarsyn region cssAtRule start=/@charset\>/   end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
50822f1d0e3SBram Moolenaarsyn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
50922f1d0e3SBram Moolenaar
51022f1d0e3SBram Moolenaar" @supports
51122f1d0e3SBram Moolenaar" https://www.w3.org/TR/css3-conditional/#at-supports
51222f1d0e3SBram Moolenaarsyn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
51322f1d0e3SBram Moolenaar
514071d4279SBram Moolenaar
515071d4279SBram Moolenaarif main_syntax == "css"
516071d4279SBram Moolenaar  syn sync minlines=10
517071d4279SBram Moolenaarendif
518071d4279SBram Moolenaar
519071d4279SBram Moolenaar" Define the default highlighting.
52089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
521071d4279SBram Moolenaar
522f37506f6SBram Moolenaarhi def link cssComment Comment
523f37506f6SBram Moolenaarhi def link cssVendor Comment
524f37506f6SBram Moolenaarhi def link cssHacks Comment
525f37506f6SBram Moolenaarhi def link cssTagName Statement
526f37506f6SBram Moolenaarhi def link cssDeprecated Error
527f37506f6SBram Moolenaarhi def link cssSelectorOp Special
528f37506f6SBram Moolenaarhi def link cssSelectorOp2 Special
529f37506f6SBram Moolenaarhi def link cssAttrComma Special
530d09acef4SBram Moolenaar
531f37506f6SBram Moolenaarhi def link cssAnimationProp cssProp
532f37506f6SBram Moolenaarhi def link cssBackgroundProp cssProp
533f37506f6SBram Moolenaarhi def link cssBorderProp cssProp
534f37506f6SBram Moolenaarhi def link cssBoxProp cssProp
53506fe74aeSBram Moolenaarhi def link cssCascadeProp cssProp
536f37506f6SBram Moolenaarhi def link cssColorProp cssProp
537f37506f6SBram Moolenaarhi def link cssContentForPagedMediaProp cssProp
538f37506f6SBram Moolenaarhi def link cssDimensionProp cssProp
539f37506f6SBram Moolenaarhi def link cssFlexibleBoxProp cssProp
540f37506f6SBram Moolenaarhi def link cssFontProp cssProp
541f37506f6SBram Moolenaarhi def link cssGeneratedContentProp cssProp
542f37506f6SBram Moolenaarhi def link cssGridProp cssProp
543f37506f6SBram Moolenaarhi def link cssHyerlinkProp cssProp
54422f1d0e3SBram Moolenaarhi def link cssInteractProp cssProp
545f37506f6SBram Moolenaarhi def link cssLineboxProp cssProp
546f37506f6SBram Moolenaarhi def link cssListProp cssProp
547f37506f6SBram Moolenaarhi def link cssMarqueeProp cssProp
548f37506f6SBram Moolenaarhi def link cssMultiColumnProp cssProp
549f37506f6SBram Moolenaarhi def link cssPagedMediaProp cssProp
550f37506f6SBram Moolenaarhi def link cssPositioningProp cssProp
551f37506f6SBram Moolenaarhi def link cssPrintProp cssProp
552f37506f6SBram Moolenaarhi def link cssRubyProp cssProp
553f37506f6SBram Moolenaarhi def link cssSpeechProp cssProp
554f37506f6SBram Moolenaarhi def link cssTableProp cssProp
555f37506f6SBram Moolenaarhi def link cssTextProp cssProp
556f37506f6SBram Moolenaarhi def link cssTransformProp cssProp
557f37506f6SBram Moolenaarhi def link cssTransitionProp cssProp
558f37506f6SBram Moolenaarhi def link cssUIProp cssProp
559f37506f6SBram Moolenaarhi def link cssIEUIProp cssProp
560f37506f6SBram Moolenaarhi def link cssAuralProp cssProp
561f37506f6SBram Moolenaarhi def link cssRenderProp cssProp
562f37506f6SBram Moolenaarhi def link cssMobileTextProp cssProp
563d09acef4SBram Moolenaar
564f37506f6SBram Moolenaarhi def link cssAnimationAttr cssAttr
565f37506f6SBram Moolenaarhi def link cssBackgroundAttr cssAttr
566f37506f6SBram Moolenaarhi def link cssBorderAttr cssAttr
567f37506f6SBram Moolenaarhi def link cssBoxAttr cssAttr
568f37506f6SBram Moolenaarhi def link cssContentForPagedMediaAttr cssAttr
569f37506f6SBram Moolenaarhi def link cssDimensionAttr cssAttr
570f37506f6SBram Moolenaarhi def link cssFlexibleBoxAttr cssAttr
571f37506f6SBram Moolenaarhi def link cssFontAttr cssAttr
572f37506f6SBram Moolenaarhi def link cssGeneratedContentAttr cssAttr
573f37506f6SBram Moolenaarhi def link cssGridAttr cssAttr
574f37506f6SBram Moolenaarhi def link cssHyerlinkAttr cssAttr
57522f1d0e3SBram Moolenaarhi def link cssInteractAttr cssAttr
576f37506f6SBram Moolenaarhi def link cssLineboxAttr cssAttr
577f37506f6SBram Moolenaarhi def link cssListAttr cssAttr
578f37506f6SBram Moolenaarhi def link cssMarginAttr cssAttr
579f37506f6SBram Moolenaarhi def link cssMarqueeAttr cssAttr
580f37506f6SBram Moolenaarhi def link cssMultiColumnAttr cssAttr
581f37506f6SBram Moolenaarhi def link cssPaddingAttr cssAttr
582f37506f6SBram Moolenaarhi def link cssPagedMediaAttr cssAttr
583f37506f6SBram Moolenaarhi def link cssPositioningAttr cssAttr
584f37506f6SBram Moolenaarhi def link cssGradientAttr cssAttr
585f37506f6SBram Moolenaarhi def link cssPrintAttr cssAttr
586f37506f6SBram Moolenaarhi def link cssRubyAttr cssAttr
587f37506f6SBram Moolenaarhi def link cssSpeechAttr cssAttr
588f37506f6SBram Moolenaarhi def link cssTableAttr cssAttr
589f37506f6SBram Moolenaarhi def link cssTextAttr cssAttr
590f37506f6SBram Moolenaarhi def link cssTransformAttr cssAttr
591f37506f6SBram Moolenaarhi def link cssTransitionAttr cssAttr
592f37506f6SBram Moolenaarhi def link cssUIAttr cssAttr
593f37506f6SBram Moolenaarhi def link cssIEUIAttr cssAttr
594f37506f6SBram Moolenaarhi def link cssAuralAttr cssAttr
595f37506f6SBram Moolenaarhi def link cssRenderAttr cssAttr
59606fe74aeSBram Moolenaarhi def link cssCascadeAttr cssAttr
597f37506f6SBram Moolenaarhi def link cssCommonAttr cssAttr
598d09acef4SBram Moolenaar
599f37506f6SBram Moolenaarhi def link cssPseudoClassId PreProc
600f37506f6SBram Moolenaarhi def link cssPseudoClassLang Constant
601f37506f6SBram Moolenaarhi def link cssValueLength Number
602f37506f6SBram Moolenaarhi def link cssValueInteger Number
603f37506f6SBram Moolenaarhi def link cssValueNumber Number
604f37506f6SBram Moolenaarhi def link cssValueAngle Number
605f37506f6SBram Moolenaarhi def link cssValueTime Number
606f37506f6SBram Moolenaarhi def link cssValueFrequency Number
607f37506f6SBram Moolenaarhi def link cssFunction Constant
608f37506f6SBram Moolenaarhi def link cssURL String
609f37506f6SBram Moolenaarhi def link cssFunctionName Function
610f37506f6SBram Moolenaarhi def link cssFunctionComma Function
611f37506f6SBram Moolenaarhi def link cssColor Constant
612f37506f6SBram Moolenaarhi def link cssIdentifier Function
61322f1d0e3SBram Moolenaarhi def link cssAtRule Include
61422f1d0e3SBram Moolenaarhi def link cssAtKeyword PreProc
615f37506f6SBram Moolenaarhi def link cssImportant Special
61606fe74aeSBram Moolenaarhi def link cssCustomProp Special
617f37506f6SBram Moolenaarhi def link cssBraces Function
618f37506f6SBram Moolenaarhi def link cssBraceError Error
619f37506f6SBram Moolenaarhi def link cssError Error
620f37506f6SBram Moolenaarhi def link cssUnicodeEscape Special
621f37506f6SBram Moolenaarhi def link cssStringQQ String
622f37506f6SBram Moolenaarhi def link cssStringQ String
623f37506f6SBram Moolenaarhi def link cssAttributeSelector String
624f37506f6SBram Moolenaarhi def link cssMediaType Special
625f37506f6SBram Moolenaarhi def link cssMediaComma Normal
62622f1d0e3SBram Moolenaarhi def link cssAtRuleLogical Statement
627f37506f6SBram Moolenaarhi def link cssMediaProp cssProp
628f37506f6SBram Moolenaarhi def link cssMediaAttr cssAttr
629f37506f6SBram Moolenaarhi def link cssPagePseudo PreProc
63022f1d0e3SBram Moolenaarhi def link cssPageMarginProp cssAtKeyword
631f37506f6SBram Moolenaarhi def link cssPageProp cssProp
63222f1d0e3SBram Moolenaarhi def link cssKeyFrameProp Constant
633f37506f6SBram Moolenaarhi def link cssFontDescriptor Special
634f37506f6SBram Moolenaarhi def link cssFontDescriptorProp cssProp
635f37506f6SBram Moolenaarhi def link cssFontDescriptorAttr cssAttr
636f37506f6SBram Moolenaarhi def link cssUnicodeRange Constant
637f37506f6SBram Moolenaarhi def link cssClassName Function
638f37506f6SBram Moolenaarhi def link cssClassNameDot Function
639f37506f6SBram Moolenaarhi def link cssProp StorageClass
640f37506f6SBram Moolenaarhi def link cssAttr Constant
641f37506f6SBram Moolenaarhi def link cssUnitDecorators Number
642f37506f6SBram Moolenaarhi def link cssNoise Noise
643071d4279SBram Moolenaar
644071d4279SBram Moolenaarlet b:current_syntax = "css"
645071d4279SBram Moolenaar
646071d4279SBram Moolenaarif main_syntax == 'css'
647071d4279SBram Moolenaar  unlet main_syntax
648071d4279SBram Moolenaarendif
649071d4279SBram Moolenaar
6500c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
6510c5fa7d7SBram Moolenaarunlet s:cpo_save
652071d4279SBram Moolenaar" vim: ts=8
653071d4279SBram Moolenaar
654