xref: /vim-8.2.3635/runtime/syntax/css.vim (revision e2db695d)
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)
7d09acef4SBram Moolenaar" Maintainer:   Jules Wang      <[email protected]>
83a0d8090SBram Moolenaar" URL:          https://github.com/JulesWang/css.vim
9*e2db695dSBram Moolenaar" Last Change:  2013 Jul 23
10071d4279SBram Moolenaar
11071d4279SBram Moolenaar" For version 5.x: Clear all syntax items
12071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded
13071d4279SBram Moolenaarif !exists("main_syntax")
14071d4279SBram Moolenaar  if version < 600
15071d4279SBram Moolenaar    syntax clear
16071d4279SBram Moolenaar  elseif exists("b:current_syntax")
17071d4279SBram Moolenaar    finish
18071d4279SBram Moolenaar  endif
19071d4279SBram Moolenaar  let main_syntax = 'css'
20*e2db695dSBram Moolenaarelseif exists("b:current_syntax") && b:current_syntax == "css"
21*e2db695dSBram Moolenaar  finish
22071d4279SBram Moolenaarendif
23071d4279SBram Moolenaar
240c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
250c5fa7d7SBram Moolenaarset cpo&vim
260c5fa7d7SBram Moolenaar
27071d4279SBram Moolenaarsyn case ignore
28071d4279SBram Moolenaar
29d09acef4SBram Moolenaar" All HTML4 tags
30071d4279SBram Moolenaarsyn keyword cssTagName abbr acronym address applet area a b base
31071d4279SBram Moolenaarsyn keyword cssTagName basefont bdo big blockquote body br button
32071d4279SBram Moolenaarsyn keyword cssTagName caption center cite code col colgroup dd del
33071d4279SBram Moolenaarsyn keyword cssTagName dfn dir div dl dt em fieldset font form frame
34071d4279SBram Moolenaarsyn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
35071d4279SBram Moolenaarsyn keyword cssTagName iframe img input ins isindex kbd label legend li
36071d4279SBram Moolenaarsyn keyword cssTagName link map menu meta noframes noscript ol optgroup
37071d4279SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script select small
38d09acef4SBram Moolenaarsyn keyword cssTagName span strike strong style sub sup table tbody td
39071d4279SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr tt ul u var
40d09acef4SBram Moolenaarsyn keyword cssTagName object
41d09acef4SBram Moolenaar
42d09acef4SBram Moolenaar" HTML5 new tags 5*6=30
43d09acef4SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command
44d09acef4SBram Moolenaarsyn keyword cssTagName datalist details embed figcaption figure footer
45d09acef4SBram Moolenaarsyn keyword cssTagName header hgroup keygen mark meter nav
46d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section
47d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr
48d09acef4SBram Moolenaar
49d09acef4SBram Moolenaar" Tags not supported in HTML5
50d09acef4SBram Moolenaarsyn keyword cssDeprecated acronym applet basefont big center dir
51d09acef4SBram Moolenaarsyn keyword cssDeprecated font frame frameset noframes strike tt
52d09acef4SBram Moolenaar
53d09acef4SBram Moolenaar"syn match cssTagName "\<table\>"
54071d4279SBram Moolenaarsyn match cssTagName "\*"
55071d4279SBram Moolenaar
56d09acef4SBram Moolenaar" selectors
57d09acef4SBram Moolenaarsyn match cssSelectorOp "[,>+]"
58d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained
59d09acef4SBram Moolenaar" FIXME: add HTML5 attribute
60071d4279SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
61071d4279SBram Moolenaar
62d09acef4SBram Moolenaar" .class and #id
63d09acef4SBram Moolenaarsyn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
64d09acef4SBram Moolenaar
65a5792f58SBram Moolenaartry
66293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
67a5792f58SBram Moolenaarcatch /^.*/
68a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
69a5792f58SBram Moolenaarendtry
70a5792f58SBram Moolenaar
71d09acef4SBram Moolenaarsyn match cssTagName "@page\>" nextgroup=cssDefinition
72d09acef4SBram Moolenaar" FIXME: use cssVendor here
73d09acef4SBram Moolenaarsyn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
74071d4279SBram Moolenaar
75071d4279SBram Moolenaarsyn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
76071d4279SBram Moolenaarsyn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
77d09acef4SBram Moolenaar"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
78071d4279SBram Moolenaarsyn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
79071d4279SBram Moolenaar
80071d4279SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+"
81071d4279SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
82d09acef4SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
83071d4279SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
84071d4279SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
85071d4279SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
86071d4279SBram Moolenaar
87071d4279SBram Moolenaarsyn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
88071d4279SBram Moolenaarsyn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
89071d4279SBram Moolenaarsyn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
90071d4279SBram Moolenaarsyn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
91071d4279SBram Moolenaarsyn keyword cssFontDescriptorAttr contained all
92071d4279SBram Moolenaarsyn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
93071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
94071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+\x\+-\x\+"
95071d4279SBram Moolenaar
963a0d8090SBram Moolenaar" The 16 basic color names
97071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
983a0d8090SBram Moolenaar
993a0d8090SBram Moolenaar" 130 more color names
1003a0d8090SBram Moolenaarsyn keyword cssColor contained aliceblue antiquewhite aquamarine azure
1013a0d8090SBram Moolenaarsyn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
1023a0d8090SBram Moolenaarsyn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
1033a0d8090SBram Moolenaarsyn match cssColor contained /dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)/
1043a0d8090SBram Moolenaarsyn match cssColor contained /dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)/
1053a0d8090SBram Moolenaarsyn match cssColor contained /darkslate\(blue\|gray\|grey\)/
1063a0d8090SBram Moolenaarsyn match cssColor contained /dark\(turquoise\|violet\)/
1073a0d8090SBram Moolenaarsyn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
1083a0d8090SBram Moolenaarsyn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
1093a0d8090SBram Moolenaarsyn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
1103a0d8090SBram Moolenaarsyn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
1113a0d8090SBram Moolenaarsyn keyword cssColor contained lemonchiffon limegreen linen magenta
1123a0d8090SBram Moolenaarsyn match cssColor contained /light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)/
1133a0d8090SBram Moolenaarsyn match cssColor contained /light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)/
1143a0d8090SBram Moolenaarsyn match cssColor contained /light\(slategray\|slategrey\|steelblue\)/
1153a0d8090SBram Moolenaarsyn match cssColor contained /medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)/
1163a0d8090SBram Moolenaarsyn match cssColor contained /medium\(slateblue\|springgreen\|turquoise\|violetred\)/
1173a0d8090SBram Moolenaarsyn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
1183a0d8090SBram Moolenaarsyn keyword cssColor contained oldlace olivedrab orange orangered orchid
1193a0d8090SBram Moolenaarsyn match cssColor contained /pale\(goldenrod\|green\|turquoise\|violetred\)/
1203a0d8090SBram Moolenaarsyn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
1213a0d8090SBram Moolenaarsyn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown
1223a0d8090SBram Moolenaarsyn keyword cssColor contained seagreen seashell sienna skyblue slateblue
1233a0d8090SBram Moolenaarsyn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
1243a0d8090SBram Moolenaarsyn keyword cssColor contained thistle tomato turquoise violet wheat
1253a0d8090SBram Moolenaarsyn keyword cssColor contained whitesmoke yellowgreen
1263a0d8090SBram Moolenaar
127071d4279SBram Moolenaar" FIXME: These are actually case-insentivie too, but (a) specs recommend using
128071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in
129071d4279SBram Moolenaar" all situations
130071d4279SBram Moolenaarsyn case match
131071d4279SBram 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
132071d4279SBram Moolenaarsyn case ignore
133d09acef4SBram Moolenaar
134d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>"
135d09acef4SBram Moolenaar
136071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>"
137071d4279SBram Moolenaarsyn match cssColor contained "\<white\>"
138071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
139071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
140d09acef4SBram Moolenaar
141071d4279SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
142d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
143d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
144d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
145d09acef4SBram 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 keepend
146071d4279SBram Moolenaar
147d09acef4SBram Moolenaar" Prop and Attr
148d09acef4SBram Moolenaar" Reference: http://www.w3schools.com/cssref/default.asp
149d09acef4SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all
150071d4279SBram Moolenaarsyn keyword cssCommonAttr contained top bottom
151071d4279SBram Moolenaarsyn keyword cssCommonAttr contained medium normal
152071d4279SBram Moolenaar
153d09acef4SBram Moolenaar
154d09acef4SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
155d09acef4SBram Moolenaar
156d09acef4SBram Moolenaar
157d09acef4SBram Moolenaarsyn keyword cssAnimationAttr contained infinite alternate paused running
158d09acef4SBram Moolenaar" bugfix: escape linear-gradient
159d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
160d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
161d09acef4SBram Moolenaar
162d09acef4SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
163d09acef4SBram Moolenaarsyn keyword cssBackgroundAttr contained center fixed over contain
164d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>"
165d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
166d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
167d09acef4SBram Moolenaar
168d09acef4SBram Moolenaar
169d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
170d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
171d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
172d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
173d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-radius\>"
174d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained thin thick medium
175d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
176d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
177d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained stretch round
178d09acef4SBram Moolenaar
179d09acef4SBram Moolenaar
180d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
181d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)=\>"
182d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto
183d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>"
184d09acef4SBram Moolenaar
185d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity
186d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>"
187d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>"
188d09acef4SBram Moolenaar
189d09acef4SBram Moolenaar
190d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
191d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height
192d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width
193d09acef4SBram Moolenaar
194d09acef4SBram Moolenaar" shadow and sizing are in other property groups
195d09acef4SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
196d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained start end center baseline stretch
197d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained normal reverse
198d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained single mulitple
199d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained horizontal
200d09acef4SBram Moolenaar" bugfix: escape vertial-align
201d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
202d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
203d09acef4SBram Moolenaar
204d09acef4SBram Moolenaar
20559c0395eSBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
206071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
20759c0395eSBram Moolenaarsyn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
208071d4279SBram Moolenaarsyn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
209071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>"
210071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>"
211071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
212071d4279SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace italic oblique
213d09acef4SBram Moolenaarsyn keyword cssFontAttr contained bold bolder light lighter larger smaller
214d09acef4SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption
215d09acef4SBram Moolenaarsyn keyword cssFontAttr contained large smaller larger narrower wider
216d09acef4SBram Moolenaarsyn keyword cssFontAttr contained Courier Arial Georgia Times
217071d4279SBram Moolenaar
218071d4279SBram Moolenaar
219d09acef4SBram Moolenaarsyn keyword cssGeneratedContentProp contained content quotes crop
220d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
221d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>"
222d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>"
223d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
224d09acef4SBram Moolenaar
225d09acef4SBram Moolenaar
226d09acef4SBram Moolenaarsyn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
227d09acef4SBram Moolenaar
228d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
229d09acef4SBram Moolenaar
230d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
231d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
232d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
233d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
234d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian
235d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside
236d09acef4SBram Moolenaar
237d09acef4SBram Moolenaar
238d09acef4SBram Moolenaarsyn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
239d09acef4SBram Moolenaar
240d09acef4SBram Moolenaarsyn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
241d09acef4SBram Moolenaar
242d09acef4SBram Moolenaar
243d09acef4SBram Moolenaarsyn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
244d09acef4SBram Moolenaar
245d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left
246d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility
247d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>"
248d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained block inline compact
249d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
250d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both
251d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>"
252d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
253d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed
254d09acef4SBram Moolenaar
255d09acef4SBram Moolenaarsyn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
256d09acef4SBram Moolenaarsyn keyword cssPrintProp contained orphans widows
257d09acef4SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always avoid
258d09acef4SBram Moolenaar
259d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
260d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always
261d09acef4SBram Moolenaar
262d09acef4SBram Moolenaar
263d09acef4SBram Moolenaarsyn keyword cssTextProp contained color direction
264071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
265d09acef4SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
266d09acef4SBram Moolenaarsyn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
267d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>"
268d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>"
269d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>"
270071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>"
271071d4279SBram Moolenaarsyn match cssTextAttr contained "\<text-indent\>"
272071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
273d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap
274071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle
275d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase
276d09acef4SBram Moolenaarsyn keyword cssTextAttr contained center justify baseline sub super
277d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
278d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>"
279d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent
280d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
281d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last
282d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress
283d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>"
284d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>"
285d09acef4SBram Moolenaarsyn keyword cssTextAttr contained hyphenate
286071d4279SBram Moolenaar
287071d4279SBram Moolenaar
288d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
289d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
290d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>"
291071d4279SBram Moolenaar
292d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
293071d4279SBram Moolenaar
294d09acef4SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
295d09acef4SBram Moolenaarsyn match cssUIProp contained "\<outline-offset\>"
296d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>"
297d09acef4SBram Moolenaarsyn keyword cssUIProp contained appearance icon resize
298d09acef4SBram Moolenaarsyn keyword cssUIAttr contained window button menu field
299071d4279SBram Moolenaar
300071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
301071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
302071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness
303071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
304071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent
305071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>"
306071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix
307071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>"
308071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
309071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind
310071d4279SBram Moolenaarsyn keyword cssAuralAttr contained below level above higher
311071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
312071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower
313071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous
314d09acef4SBram Moolenaarsyn match cssAuralAttr contained "\<lower\>"
315071d4279SBram Moolenaar
316d09acef4SBram Moolenaar" cursor
317d09acef4SBram Moolenaarsyn keyword cssUIProp contained cursor
318d09acef4SBram Moolenaarsyn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
319d09acef4SBram Moolenaarsyn keyword cssUIAttr contained crosshair default help move pointer
320d09acef4SBram Moolenaarsyn keyword cssUIAttr contained progress wait
321d09acef4SBram Moolenaar
322d09acef4SBram Moolenaar" FIXME: I could not find them in reference
323d09acef4SBram Moolenaarsyn keyword cssUIAttr contained invert maker size zoom
324d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<run-in\>"
325d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<text-rendering\>"
326d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<font-smoothing\>"
327d09acef4SBram Moolenaarsyn match cssRenderProp contained "\<marker-offset\>"
328d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<bidi-override\>"
329d09acef4SBram Moolenaar
330071d4279SBram Moolenaar
331071d4279SBram Moolenaar" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
332071d4279SBram Moolenaarsyn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
333071d4279SBram Moolenaarsyn match cssBraces contained "[{}]"
334071d4279SBram Moolenaarsyn match cssError contained "{@<>"
335d09acef4SBram Moolenaarsyn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition
336071d4279SBram Moolenaarsyn match cssBraceError "}"
337071d4279SBram Moolenaar
338d09acef4SBram Moolenaar" Pseudo class
339f1568ecaSBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
340d09acef4SBram Moolenaarsyn keyword cssPseudoClassId link visited active hover focus before after left right lang
341071d4279SBram Moolenaarsyn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
342d09acef4SBram Moolenaar" FIXME: handle functions.
343d09acef4SBram Moolenaar"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
344d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
345d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
346d09acef4SBram Moolenaarsyn keyword cssPseudoClassId root empty target enable disabled checked not invalid
347d09acef4SBram Moolenaarsyn match cssPseudoClassId contained  "::\(-moz-\)\=selection"
348071d4279SBram Moolenaar
349d09acef4SBram Moolenaar" Comment
35029c34723SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell
351d09acef4SBram Moolenaarsyn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
352071d4279SBram Moolenaar
353071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?"
354071d4279SBram Moolenaarsyn match cssSpecialCharQQ +\\"+ contained
355071d4279SBram Moolenaarsyn match cssSpecialCharQ +\\'+ contained
356071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
357071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
358d09acef4SBram Moolenaar
359d09acef4SBram Moolenaar" Vendor Prefix
360d09acef4SBram Moolenaarsyn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
361d09acef4SBram Moolenaar
362071d4279SBram Moolenaar
363071d4279SBram Moolenaarif main_syntax == "css"
364071d4279SBram Moolenaar  syn sync minlines=10
365071d4279SBram Moolenaarendif
366071d4279SBram Moolenaar
367071d4279SBram Moolenaar" Define the default highlighting.
368071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already
369071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet
370071d4279SBram Moolenaarif version >= 508 || !exists("did_css_syn_inits")
371071d4279SBram Moolenaar  if version < 508
372071d4279SBram Moolenaar    let did_css_syn_inits = 1
373071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
374071d4279SBram Moolenaar  else
375071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
376071d4279SBram Moolenaar  endif
377071d4279SBram Moolenaar
378071d4279SBram Moolenaar  HiLink cssComment Comment
379d09acef4SBram Moolenaar  HiLink cssVendor Comment
380071d4279SBram Moolenaar  HiLink cssTagName Statement
381d09acef4SBram Moolenaar  HiLink cssDeprecated Error
382071d4279SBram Moolenaar  HiLink cssSelectorOp Special
383071d4279SBram Moolenaar  HiLink cssSelectorOp2 Special
384d09acef4SBram Moolenaar
385d09acef4SBram Moolenaar  HiLink cssAnimationProp StorageClass
386d09acef4SBram Moolenaar  HiLink cssBackgroundProp StorageClass
387d09acef4SBram Moolenaar  HiLink cssBorderOutlineProp StorageClass
388071d4279SBram Moolenaar  HiLink cssBoxProp StorageClass
389d09acef4SBram Moolenaar  HiLink cssColorProp StorageClass
390d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaProp StorageClass
391d09acef4SBram Moolenaar  HiLink cssDimensionProp StorageClass
392d09acef4SBram Moolenaar  HiLink cssFlexibleBoxProp StorageClass
393d09acef4SBram Moolenaar  HiLink cssFontProp StorageClass
394d09acef4SBram Moolenaar  HiLink cssGeneratedContentProp StorageClass
395d09acef4SBram Moolenaar  HiLink cssGridProp StorageClass
396d09acef4SBram Moolenaar  HiLink cssHyerlinkProp StorageClass
397d09acef4SBram Moolenaar  HiLink cssLineboxProp StorageClass
398d09acef4SBram Moolenaar  HiLink cssListProp StorageClass
399d09acef4SBram Moolenaar  HiLink cssMarginProp StorageClass
400d09acef4SBram Moolenaar  HiLink cssMarqueeProp StorageClass
401d09acef4SBram Moolenaar  HiLink cssMultiColumnProp StorageClass
402d09acef4SBram Moolenaar  HiLink cssPaddingProp StorageClass
403d09acef4SBram Moolenaar  HiLink cssPagedMediaProp StorageClass
404d09acef4SBram Moolenaar  HiLink cssPositioningProp StorageClass
405d09acef4SBram Moolenaar  HiLink cssPrintProp StorageClass
406d09acef4SBram Moolenaar  HiLink cssRubyProp StorageClass
407d09acef4SBram Moolenaar  HiLink cssSpeechProp StorageClass
408d09acef4SBram Moolenaar  HiLink cssTableProp StorageClass
409d09acef4SBram Moolenaar  HiLink cssTextProp StorageClass
410d09acef4SBram Moolenaar  HiLink cssTransformProp StorageClass
411d09acef4SBram Moolenaar  HiLink cssTransitionProp StorageClass
412d09acef4SBram Moolenaar  HiLink cssUIProp StorageClass
413071d4279SBram Moolenaar  HiLink cssAuralProp StorageClass
414071d4279SBram Moolenaar  HiLink cssRenderProp StorageClass
415d09acef4SBram Moolenaar
416d09acef4SBram Moolenaar  HiLink cssAnimationAttr Type
417d09acef4SBram Moolenaar  HiLink cssBackgroundAttr Type
418d09acef4SBram Moolenaar  HiLink cssBorderOutlineAttr Type
419071d4279SBram Moolenaar  HiLink cssBoxAttr Type
420d09acef4SBram Moolenaar  HiLink cssColorAttr Type
421d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaAttr Type
422d09acef4SBram Moolenaar  HiLink cssDimensionAttr Type
423d09acef4SBram Moolenaar  HiLink cssFlexibleBoxAttr Type
424d09acef4SBram Moolenaar  HiLink cssFontAttr Type
425071d4279SBram Moolenaar  HiLink cssGeneratedContentAttr Type
426d09acef4SBram Moolenaar  HiLink cssGridAttr Type
427d09acef4SBram Moolenaar  HiLink cssHyerlinkAttr Type
428d09acef4SBram Moolenaar  HiLink cssLineboxAttr Type
429d09acef4SBram Moolenaar  HiLink cssListAttr Type
430d09acef4SBram Moolenaar  HiLink cssMarginAttr Type
431d09acef4SBram Moolenaar  HiLink cssMarqueeAttr Type
432d09acef4SBram Moolenaar  HiLink cssMultiColumnAttr Type
433d09acef4SBram Moolenaar  HiLink cssPaddingAttr Type
434d09acef4SBram Moolenaar  HiLink cssPagedMediaAttr Type
435d09acef4SBram Moolenaar  HiLink cssPositioningAttr Type
436d09acef4SBram Moolenaar  HiLink cssPrintAttr Type
437d09acef4SBram Moolenaar  HiLink cssRubyAttr Type
438d09acef4SBram Moolenaar  HiLink cssSpeechAttr Type
439071d4279SBram Moolenaar  HiLink cssTableAttr Type
440d09acef4SBram Moolenaar  HiLink cssTextAttr Type
441d09acef4SBram Moolenaar  HiLink cssTransformAttr Type
442d09acef4SBram Moolenaar  HiLink cssTransitionAttr Type
443071d4279SBram Moolenaar  HiLink cssUIAttr Type
444d09acef4SBram Moolenaar  HiLink cssAuralAttr Type
445d09acef4SBram Moolenaar  HiLink cssRenderAttr Type
446071d4279SBram Moolenaar  HiLink cssCommonAttr Type
447d09acef4SBram Moolenaar
448071d4279SBram Moolenaar  HiLink cssPseudoClassId PreProc
449071d4279SBram Moolenaar  HiLink cssPseudoClassLang Constant
450071d4279SBram Moolenaar  HiLink cssValueLength Number
451071d4279SBram Moolenaar  HiLink cssValueInteger Number
452071d4279SBram Moolenaar  HiLink cssValueNumber Number
453071d4279SBram Moolenaar  HiLink cssValueAngle Number
454071d4279SBram Moolenaar  HiLink cssValueTime Number
455071d4279SBram Moolenaar  HiLink cssValueFrequency Number
456071d4279SBram Moolenaar  HiLink cssFunction Constant
457071d4279SBram Moolenaar  HiLink cssURL String
458071d4279SBram Moolenaar  HiLink cssFunctionName Function
459071d4279SBram Moolenaar  HiLink cssColor Constant
460071d4279SBram Moolenaar  HiLink cssIdentifier Function
461071d4279SBram Moolenaar  HiLink cssInclude Include
462071d4279SBram Moolenaar  HiLink cssImportant Special
463071d4279SBram Moolenaar  HiLink cssBraces Function
464071d4279SBram Moolenaar  HiLink cssBraceError Error
465071d4279SBram Moolenaar  HiLink cssError Error
466071d4279SBram Moolenaar  HiLink cssInclude Include
467071d4279SBram Moolenaar  HiLink cssUnicodeEscape Special
468071d4279SBram Moolenaar  HiLink cssStringQQ String
469071d4279SBram Moolenaar  HiLink cssStringQ String
470071d4279SBram Moolenaar  HiLink cssMedia Special
471071d4279SBram Moolenaar  HiLink cssMediaType Special
472071d4279SBram Moolenaar  HiLink cssMediaComma Normal
473071d4279SBram Moolenaar  HiLink cssFontDescriptor Special
474071d4279SBram Moolenaar  HiLink cssFontDescriptorFunction Constant
475071d4279SBram Moolenaar  HiLink cssFontDescriptorProp StorageClass
476071d4279SBram Moolenaar  HiLink cssFontDescriptorAttr Type
477071d4279SBram Moolenaar  HiLink cssUnicodeRange Constant
47829c34723SBram Moolenaar  HiLink cssClassName Function
479071d4279SBram Moolenaar  delcommand HiLink
480071d4279SBram Moolenaarendif
481071d4279SBram Moolenaar
482071d4279SBram Moolenaarlet b:current_syntax = "css"
483071d4279SBram Moolenaar
484071d4279SBram Moolenaarif main_syntax == 'css'
485071d4279SBram Moolenaar  unlet main_syntax
486071d4279SBram Moolenaarendif
487071d4279SBram Moolenaar
4880c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
4890c5fa7d7SBram Moolenaarunlet s:cpo_save
490071d4279SBram Moolenaar" vim: ts=8
491071d4279SBram Moolenaar
492