blob: df7f2a1aae01fec79edf60901260f08f34885bdb [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaard09acef2012-09-21 14:54:30 +02002" Language: Cascading Style Sheets
3" Previous Contributor List:
4" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
5" Yeti (Add full CSS2, HTML4 support)
6" Nikolai Weibull (Add CSS2 support)
7" Maintainer: Jules Wang <w.jq0722@gmail.com>
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +02008" Last Change: 2012 Oct 05
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
10" For version 5.x: Clear all syntax items
11" For version 6.x: Quit when a syntax file was already loaded
12if !exists("main_syntax")
13 if version < 600
14 syntax clear
15 elseif exists("b:current_syntax")
16 finish
17endif
18 let main_syntax = 'css'
19endif
20
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020021let s:cpo_save = &cpo
22set cpo&vim
23
Bram Moolenaar071d4272004-06-13 20:20:40 +000024syn case ignore
25
Bram Moolenaard09acef2012-09-21 14:54:30 +020026" All HTML4 tags
Bram Moolenaar071d4272004-06-13 20:20:40 +000027syn keyword cssTagName abbr acronym address applet area a b base
28syn keyword cssTagName basefont bdo big blockquote body br button
29syn keyword cssTagName caption center cite code col colgroup dd del
30syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
31syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
32syn keyword cssTagName iframe img input ins isindex kbd label legend li
33syn keyword cssTagName link map menu meta noframes noscript ol optgroup
34syn keyword cssTagName option p param pre q s samp script select small
Bram Moolenaard09acef2012-09-21 14:54:30 +020035syn keyword cssTagName span strike strong style sub sup table tbody td
Bram Moolenaar071d4272004-06-13 20:20:40 +000036syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
Bram Moolenaard09acef2012-09-21 14:54:30 +020037syn keyword cssTagName object
38
39" HTML5 new tags 5*6=30
40syn keyword cssTagName article aside audio bdi canvas command
41syn keyword cssTagName datalist details embed figcaption figure footer
42syn keyword cssTagName header hgroup keygen mark meter nav
43syn keyword cssTagName output progress rt rp ruby section
44syn keyword cssTagName source summary time track video wbr
45
46" Tags not supported in HTML5
47syn keyword cssDeprecated acronym applet basefont big center dir
48syn keyword cssDeprecated font frame frameset noframes strike tt
49
50"syn match cssTagName "\<table\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000051syn match cssTagName "\*"
52
Bram Moolenaard09acef2012-09-21 14:54:30 +020053" selectors
54syn match cssSelectorOp "[,>+]"
55syn match cssSelectorOp2 "[~|^$*]\?=" contained
56" FIXME: add HTML5 attribute
Bram Moolenaar071d4272004-06-13 20:20:40 +000057syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
58
Bram Moolenaard09acef2012-09-21 14:54:30 +020059" .class and #id
60syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
61
Bram Moolenaara5792f52005-11-23 21:25:05 +000062try
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000063syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
Bram Moolenaara5792f52005-11-23 21:25:05 +000064catch /^.*/
65syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
66endtry
67
Bram Moolenaard09acef2012-09-21 14:54:30 +020068syn match cssTagName "@page\>" nextgroup=cssDefinition
69" FIXME: use cssVendor here
70syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +000071
72syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
73syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
Bram Moolenaard09acef2012-09-21 14:54:30 +020074"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
Bram Moolenaar071d4272004-06-13 20:20:40 +000075syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
76
77syn match cssValueInteger contained "[-+]\=\d\+"
78syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
Bram Moolenaard09acef2012-09-21 14:54:30 +020079syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
Bram Moolenaar071d4272004-06-13 20:20:40 +000080syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
81syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
82syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
83
84syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
85syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
86syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
87syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
88syn keyword cssFontDescriptorAttr contained all
89syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
90syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
91syn match cssUnicodeRange contained "U+\x\+-\x\+"
92
93syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
94" FIXME: These are actually case-insentivie too, but (a) specs recommend using
95" mixed-case (b) it's hard to highlight the word `Background' correctly in
96" all situations
97syn case match
98syn 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
99syn case ignore
Bram Moolenaard09acef2012-09-21 14:54:30 +0200100
101syn match cssImportant contained "!\s*important\>"
102
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103syn match cssColor contained "\<transparent\>"
104syn match cssColor contained "\<white\>"
105syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
106syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200107
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
Bram Moolenaard09acef2012-09-21 14:54:30 +0200109syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
110syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
111syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
112syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000113
Bram Moolenaard09acef2012-09-21 14:54:30 +0200114" Prop and Attr
115" Reference: http://www.w3schools.com/cssref/default.asp
116syn keyword cssCommonAttr contained auto none inherit all
Bram Moolenaar071d4272004-06-13 20:20:40 +0000117syn keyword cssCommonAttr contained top bottom
118syn keyword cssCommonAttr contained medium normal
119
Bram Moolenaard09acef2012-09-21 14:54:30 +0200120
121syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
122
123
124syn keyword cssAnimationAttr contained infinite alternate paused running
125" bugfix: escape linear-gradient
126syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
127syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
128
129syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
130syn keyword cssBackgroundAttr contained center fixed over contain
131syn match cssBackgroundAttr contained "\<no-repeat\>"
132syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
133syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
134
135
136syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
137syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
138syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
139syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
140syn match cssBorderOutlineProp contained "\<border-radius\>"
141syn keyword cssBorderOutlineAttr contained thin thick medium
142syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
143syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
144syn keyword cssBorderOutlineAttr contained stretch round
145
146
147syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
148syn match cssBoxProp contained "\<rotation\(-point\)=\>"
149syn keyword cssBoxAttr contained visible hidden scroll auto
150syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
151
152syn keyword cssColorProp contained opacity
153syn match cssColorProp contained "\<color-profile\>"
154syn match cssColorProp contained "\<rendering-intent\>"
155
156
157syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
158syn keyword cssDimensionProp contained height
159syn keyword cssDimensionProp contained width
160
161" shadow and sizing are in other property groups
162syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
163syn keyword cssFlexibleBoxAttr contained start end center baseline stretch
164syn keyword cssFlexibleBoxAttr contained normal reverse
165syn keyword cssFlexibleBoxAttr contained single mulitple
166syn keyword cssFlexibleBoxAttr contained horizontal
167" bugfix: escape vertial-align
168syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
169syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
170
171
Bram Moolenaar59c03952010-07-28 12:52:27 +0200172syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000173syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
Bram Moolenaar59c03952010-07-28 12:52:27 +0200174syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000175syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
176syn match cssFontAttr contained "\<message-box\>"
177syn match cssFontAttr contained "\<status-bar\>"
178syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
179syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
Bram Moolenaard09acef2012-09-21 14:54:30 +0200180syn keyword cssFontAttr contained bold bolder light lighter larger smaller
181syn keyword cssFontAttr contained icon menu caption
182syn keyword cssFontAttr contained large smaller larger narrower wider
183syn keyword cssFontAttr contained Courier Arial Georgia Times
Bram Moolenaar071d4272004-06-13 20:20:40 +0000184
Bram Moolenaar071d4272004-06-13 20:20:40 +0000185
Bram Moolenaard09acef2012-09-21 14:54:30 +0200186syn keyword cssGeneratedContentProp contained content quotes crop
187syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
188syn match cssGeneratedContentProp contained "\<move-to\>"
189syn match cssGeneratedContentProp contained "\<page-policy\>"
190syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
191
192
193syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
194
195syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
196
197syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
198syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
199syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
200syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
201syn keyword cssListAttr contained disc circle square hebrew armenian georgian
202syn keyword cssListAttr contained inside outside
203
204
205syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
206
207syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
208
209
210syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
211
212syn keyword cssPositioningProp contained bottom clear clip display float left
213syn keyword cssPositioningProp contained position right top visibility
214syn match cssPositioningProp contained "\<z-index\>"
215syn keyword cssPositioningAttr contained block inline compact
216syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
217syn keyword cssPositioningAttr contained left right both
218syn match cssPositioningAttr contained "\<list-item\>"
219syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
220syn keyword cssPositioningAttr contained static relative absolute fixed
221
222syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
223syn keyword cssPrintProp contained orphans widows
224syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
225
226syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
227syn keyword cssTableAttr contained fixed collapse separate show hide once always
228
229
230syn keyword cssTextProp contained color direction
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200232syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
233syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
234syn match cssTextProp contained "\<white-space\>"
235syn match cssTextProp contained "\<hanging-punctuation\>"
236syn match cssTextProp contained "\<punctuation-trim\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000237syn match cssTextAttr contained "\<line-through\>"
238syn match cssTextAttr contained "\<text-indent\>"
239syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200240syn keyword cssTextAttr contained ltr rtl embed nowrap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000241syn keyword cssTextAttr contained underline overline blink sub super middle
Bram Moolenaard09acef2012-09-21 14:54:30 +0200242syn keyword cssTextAttr contained capitalize uppercase lowercase
243syn keyword cssTextAttr contained center justify baseline sub super
244syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
245syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
246syn keyword cssTextAttr contained start end adjacent
247syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
248syn keyword cssTextAttr contained distribute kashida first last
249syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
250syn match cssTextAttr contained "\<break-all\>"
251syn match cssTextAttr contained "\<break-word\>"
252syn keyword cssTextAttr contained hyphenate
Bram Moolenaar071d4272004-06-13 20:20:40 +0000253
Bram Moolenaar071d4272004-06-13 20:20:40 +0000254
Bram Moolenaard09acef2012-09-21 14:54:30 +0200255syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
256syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
257syn match cssTransformProp contained "\<backface-visibility\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258
Bram Moolenaard09acef2012-09-21 14:54:30 +0200259syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000260
Bram Moolenaard09acef2012-09-21 14:54:30 +0200261syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
262syn match cssUIProp contained "\<outline-offset\>"
263syn match cssUIProp contained "\<box-sizing\>"
264syn keyword cssUIProp contained appearance icon resize
265syn keyword cssUIAttr contained window button menu field
Bram Moolenaar071d4272004-06-13 20:20:40 +0000266
267syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
268syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
269syn keyword cssAuralProp contained volume during azimuth elevation stress richness
270syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
271syn keyword cssAuralAttr contained silent
272syn match cssAuralAttr contained "\<spell-out\>"
273syn keyword cssAuralAttr contained non mix
274syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
275syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
276syn keyword cssAuralAttr contained leftwards rightwards behind
277syn keyword cssAuralAttr contained below level above higher
278syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
279syn keyword cssAuralAttr contained faster slower
280syn keyword cssAuralAttr contained male female child code digits continuous
Bram Moolenaard09acef2012-09-21 14:54:30 +0200281syn match cssAuralAttr contained "\<lower\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000282
Bram Moolenaard09acef2012-09-21 14:54:30 +0200283" cursor
284syn keyword cssUIProp contained cursor
285syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
286syn keyword cssUIAttr contained crosshair default help move pointer
287syn keyword cssUIAttr contained progress wait
288
289" FIXME: I could not find them in reference
290syn keyword cssUIAttr contained invert maker size zoom
291syn match cssRenderAttr contained "\<run-in\>"
292syn match cssRenderAttr contained "\<text-rendering\>"
293syn match cssRenderAttr contained "\<font-smoothing\>"
294syn match cssRenderProp contained "\<marker-offset\>"
295syn match cssRenderAttr contained "\<bidi-override\>"
296
Bram Moolenaar071d4272004-06-13 20:20:40 +0000297
298" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
299syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
300syn match cssBraces contained "[{}]"
301syn match cssError contained "{@<>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200302syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +0000303syn match cssBraceError "}"
304
Bram Moolenaard09acef2012-09-21 14:54:30 +0200305" Pseudo class
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100306syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
Bram Moolenaard09acef2012-09-21 14:54:30 +0200307syn keyword cssPseudoClassId link visited active hover focus before after left right lang
Bram Moolenaar071d4272004-06-13 20:20:40 +0000308syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200309" FIXME: handle functions.
310"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
311syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
312syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
313syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
314syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000315
Bram Moolenaard09acef2012-09-21 14:54:30 +0200316" Comment
Bram Moolenaar29c34722007-05-12 15:34:06 +0000317syn region cssComment start="/\*" end="\*/" contains=@Spell
Bram Moolenaard09acef2012-09-21 14:54:30 +0200318syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +0000319
320syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
321syn match cssSpecialCharQQ +\\"+ contained
322syn match cssSpecialCharQ +\\'+ contained
323syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
324syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
Bram Moolenaard09acef2012-09-21 14:54:30 +0200325
326" Vendor Prefix
327syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
328
Bram Moolenaar071d4272004-06-13 20:20:40 +0000329
330if main_syntax == "css"
331 syn sync minlines=10
332endif
333
334" Define the default highlighting.
335" For version 5.7 and earlier: only when not done already
336" For version 5.8 and later: only when an item doesn't have highlighting yet
337if version >= 508 || !exists("did_css_syn_inits")
338 if version < 508
339 let did_css_syn_inits = 1
340 command -nargs=+ HiLink hi link <args>
341 else
342 command -nargs=+ HiLink hi def link <args>
343 endif
344
345 HiLink cssComment Comment
Bram Moolenaard09acef2012-09-21 14:54:30 +0200346 HiLink cssVendor Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +0000347 HiLink cssTagName Statement
Bram Moolenaard09acef2012-09-21 14:54:30 +0200348 HiLink cssDeprecated Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000349 HiLink cssSelectorOp Special
350 HiLink cssSelectorOp2 Special
Bram Moolenaard09acef2012-09-21 14:54:30 +0200351
352 HiLink cssAnimationProp StorageClass
353 HiLink cssBackgroundProp StorageClass
354 HiLink cssBorderOutlineProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000355 HiLink cssBoxProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200356 HiLink cssColorProp StorageClass
357 HiLink cssContentForPagedMediaProp StorageClass
358 HiLink cssDimensionProp StorageClass
359 HiLink cssFlexibleBoxProp StorageClass
360 HiLink cssFontProp StorageClass
361 HiLink cssGeneratedContentProp StorageClass
362 HiLink cssGridProp StorageClass
363 HiLink cssHyerlinkProp StorageClass
364 HiLink cssLineboxProp StorageClass
365 HiLink cssListProp StorageClass
366 HiLink cssMarginProp StorageClass
367 HiLink cssMarqueeProp StorageClass
368 HiLink cssMultiColumnProp StorageClass
369 HiLink cssPaddingProp StorageClass
370 HiLink cssPagedMediaProp StorageClass
371 HiLink cssPositioningProp StorageClass
372 HiLink cssPrintProp StorageClass
373 HiLink cssRubyProp StorageClass
374 HiLink cssSpeechProp StorageClass
375 HiLink cssTableProp StorageClass
376 HiLink cssTextProp StorageClass
377 HiLink cssTransformProp StorageClass
378 HiLink cssTransitionProp StorageClass
379 HiLink cssUIProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000380 HiLink cssAuralProp StorageClass
381 HiLink cssRenderProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200382
383 HiLink cssAnimationAttr Type
384 HiLink cssBackgroundAttr Type
385 HiLink cssBorderOutlineAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000386 HiLink cssBoxAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200387 HiLink cssColorAttr Type
388 HiLink cssContentForPagedMediaAttr Type
389 HiLink cssDimensionAttr Type
390 HiLink cssFlexibleBoxAttr Type
391 HiLink cssFontAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000392 HiLink cssGeneratedContentAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200393 HiLink cssGridAttr Type
394 HiLink cssHyerlinkAttr Type
395 HiLink cssLineboxAttr Type
396 HiLink cssListAttr Type
397 HiLink cssMarginAttr Type
398 HiLink cssMarqueeAttr Type
399 HiLink cssMultiColumnAttr Type
400 HiLink cssPaddingAttr Type
401 HiLink cssPagedMediaAttr Type
402 HiLink cssPositioningAttr Type
403 HiLink cssPrintAttr Type
404 HiLink cssRubyAttr Type
405 HiLink cssSpeechAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000406 HiLink cssTableAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200407 HiLink cssTextAttr Type
408 HiLink cssTransformAttr Type
409 HiLink cssTransitionAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000410 HiLink cssUIAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200411 HiLink cssAuralAttr Type
412 HiLink cssRenderAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000413 HiLink cssCommonAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200414
Bram Moolenaar071d4272004-06-13 20:20:40 +0000415 HiLink cssPseudoClassId PreProc
416 HiLink cssPseudoClassLang Constant
417 HiLink cssValueLength Number
418 HiLink cssValueInteger Number
419 HiLink cssValueNumber Number
420 HiLink cssValueAngle Number
421 HiLink cssValueTime Number
422 HiLink cssValueFrequency Number
423 HiLink cssFunction Constant
424 HiLink cssURL String
425 HiLink cssFunctionName Function
426 HiLink cssColor Constant
427 HiLink cssIdentifier Function
428 HiLink cssInclude Include
429 HiLink cssImportant Special
430 HiLink cssBraces Function
431 HiLink cssBraceError Error
432 HiLink cssError Error
433 HiLink cssInclude Include
434 HiLink cssUnicodeEscape Special
435 HiLink cssStringQQ String
436 HiLink cssStringQ String
437 HiLink cssMedia Special
438 HiLink cssMediaType Special
439 HiLink cssMediaComma Normal
440 HiLink cssFontDescriptor Special
441 HiLink cssFontDescriptorFunction Constant
442 HiLink cssFontDescriptorProp StorageClass
443 HiLink cssFontDescriptorAttr Type
444 HiLink cssUnicodeRange Constant
Bram Moolenaar29c34722007-05-12 15:34:06 +0000445 HiLink cssClassName Function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000446 delcommand HiLink
447endif
448
449let b:current_syntax = "css"
450
451if main_syntax == 'css'
452 unlet main_syntax
453endif
454
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200455let &cpo = s:cpo_save
456unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000457" vim: ts=8
458