blob: 324dce3cc8b7e14057492124c07154c77458085a [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>
8" Last Change: 2012 Aug 21
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
21syn case ignore
22
Bram Moolenaard09acef2012-09-21 14:54:30 +020023" All HTML4 tags
Bram Moolenaar071d4272004-06-13 20:20:40 +000024syn keyword cssTagName abbr acronym address applet area a b base
25syn keyword cssTagName basefont bdo big blockquote body br button
26syn keyword cssTagName caption center cite code col colgroup dd del
27syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
28syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
29syn keyword cssTagName iframe img input ins isindex kbd label legend li
30syn keyword cssTagName link map menu meta noframes noscript ol optgroup
31syn keyword cssTagName option p param pre q s samp script select small
Bram Moolenaard09acef2012-09-21 14:54:30 +020032syn keyword cssTagName span strike strong style sub sup table tbody td
Bram Moolenaar071d4272004-06-13 20:20:40 +000033syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
Bram Moolenaard09acef2012-09-21 14:54:30 +020034syn keyword cssTagName object
35
36" HTML5 new tags 5*6=30
37syn keyword cssTagName article aside audio bdi canvas command
38syn keyword cssTagName datalist details embed figcaption figure footer
39syn keyword cssTagName header hgroup keygen mark meter nav
40syn keyword cssTagName output progress rt rp ruby section
41syn keyword cssTagName source summary time track video wbr
42
43" Tags not supported in HTML5
44syn keyword cssDeprecated acronym applet basefont big center dir
45syn keyword cssDeprecated font frame frameset noframes strike tt
46
47"syn match cssTagName "\<table\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000048syn match cssTagName "\*"
49
Bram Moolenaard09acef2012-09-21 14:54:30 +020050" selectors
51syn match cssSelectorOp "[,>+]"
52syn match cssSelectorOp2 "[~|^$*]\?=" contained
53" FIXME: add HTML5 attribute
Bram Moolenaar071d4272004-06-13 20:20:40 +000054syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
55
Bram Moolenaard09acef2012-09-21 14:54:30 +020056" .class and #id
57syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
58
Bram Moolenaara5792f52005-11-23 21:25:05 +000059try
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000060syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
Bram Moolenaara5792f52005-11-23 21:25:05 +000061catch /^.*/
62syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
63endtry
64
Bram Moolenaard09acef2012-09-21 14:54:30 +020065syn match cssTagName "@page\>" nextgroup=cssDefinition
66" FIXME: use cssVendor here
67syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +000068
69syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
70syn 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 +020071"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
Bram Moolenaar071d4272004-06-13 20:20:40 +000072syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
73
74syn match cssValueInteger contained "[-+]\=\d\+"
75syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
Bram Moolenaard09acef2012-09-21 14:54:30 +020076syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
Bram Moolenaar071d4272004-06-13 20:20:40 +000077syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
78syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
79syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
80
81syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
82syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
83syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
84syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
85syn keyword cssFontDescriptorAttr contained all
86syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
87syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
88syn match cssUnicodeRange contained "U+\x\+-\x\+"
89
90syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
91" FIXME: These are actually case-insentivie too, but (a) specs recommend using
92" mixed-case (b) it's hard to highlight the word `Background' correctly in
93" all situations
94syn case match
95syn 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
96syn case ignore
Bram Moolenaard09acef2012-09-21 14:54:30 +020097
98syn match cssImportant contained "!\s*important\>"
99
Bram Moolenaar071d4272004-06-13 20:20:40 +0000100syn match cssColor contained "\<transparent\>"
101syn match cssColor contained "\<white\>"
102syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
103syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200104
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
Bram Moolenaard09acef2012-09-21 14:54:30 +0200106syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
107syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
108syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
109syn 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 +0000110
Bram Moolenaard09acef2012-09-21 14:54:30 +0200111" Prop and Attr
112" Reference: http://www.w3schools.com/cssref/default.asp
113syn keyword cssCommonAttr contained auto none inherit all
Bram Moolenaar071d4272004-06-13 20:20:40 +0000114syn keyword cssCommonAttr contained top bottom
115syn keyword cssCommonAttr contained medium normal
116
Bram Moolenaard09acef2012-09-21 14:54:30 +0200117
118syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
119
120
121syn keyword cssAnimationAttr contained infinite alternate paused running
122" bugfix: escape linear-gradient
123syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
124syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
125
126syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
127syn keyword cssBackgroundAttr contained center fixed over contain
128syn match cssBackgroundAttr contained "\<no-repeat\>"
129syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
130syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
131
132
133syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
134syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
135syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
136syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
137syn match cssBorderOutlineProp contained "\<border-radius\>"
138syn keyword cssBorderOutlineAttr contained thin thick medium
139syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
140syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
141syn keyword cssBorderOutlineAttr contained stretch round
142
143
144syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
145syn match cssBoxProp contained "\<rotation\(-point\)=\>"
146syn keyword cssBoxAttr contained visible hidden scroll auto
147syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
148
149syn keyword cssColorProp contained opacity
150syn match cssColorProp contained "\<color-profile\>"
151syn match cssColorProp contained "\<rendering-intent\>"
152
153
154syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
155syn keyword cssDimensionProp contained height
156syn keyword cssDimensionProp contained width
157
158" shadow and sizing are in other property groups
159syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
160syn keyword cssFlexibleBoxAttr contained start end center baseline stretch
161syn keyword cssFlexibleBoxAttr contained normal reverse
162syn keyword cssFlexibleBoxAttr contained single mulitple
163syn keyword cssFlexibleBoxAttr contained horizontal
164" bugfix: escape vertial-align
165syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
166syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
167
168
Bram Moolenaar59c03952010-07-28 12:52:27 +0200169syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000170syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
Bram Moolenaar59c03952010-07-28 12:52:27 +0200171syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000172syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
173syn match cssFontAttr contained "\<message-box\>"
174syn match cssFontAttr contained "\<status-bar\>"
175syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
176syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
Bram Moolenaard09acef2012-09-21 14:54:30 +0200177syn keyword cssFontAttr contained bold bolder light lighter larger smaller
178syn keyword cssFontAttr contained icon menu caption
179syn keyword cssFontAttr contained large smaller larger narrower wider
180syn keyword cssFontAttr contained Courier Arial Georgia Times
Bram Moolenaar071d4272004-06-13 20:20:40 +0000181
Bram Moolenaar071d4272004-06-13 20:20:40 +0000182
Bram Moolenaard09acef2012-09-21 14:54:30 +0200183syn keyword cssGeneratedContentProp contained content quotes crop
184syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
185syn match cssGeneratedContentProp contained "\<move-to\>"
186syn match cssGeneratedContentProp contained "\<page-policy\>"
187syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
188
189
190syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
191
192syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
193
194syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
195syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
196syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
197syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
198syn keyword cssListAttr contained disc circle square hebrew armenian georgian
199syn keyword cssListAttr contained inside outside
200
201
202syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
203
204syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
205
206
207syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
208
209syn keyword cssPositioningProp contained bottom clear clip display float left
210syn keyword cssPositioningProp contained position right top visibility
211syn match cssPositioningProp contained "\<z-index\>"
212syn keyword cssPositioningAttr contained block inline compact
213syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
214syn keyword cssPositioningAttr contained left right both
215syn match cssPositioningAttr contained "\<list-item\>"
216syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
217syn keyword cssPositioningAttr contained static relative absolute fixed
218
219syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
220syn keyword cssPrintProp contained orphans widows
221syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
222
223syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
224syn keyword cssTableAttr contained fixed collapse separate show hide once always
225
226
227syn keyword cssTextProp contained color direction
Bram Moolenaar071d4272004-06-13 20:20:40 +0000228syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200229syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
230syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
231syn match cssTextProp contained "\<white-space\>"
232syn match cssTextProp contained "\<hanging-punctuation\>"
233syn match cssTextProp contained "\<punctuation-trim\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000234syn match cssTextAttr contained "\<line-through\>"
235syn match cssTextAttr contained "\<text-indent\>"
236syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200237syn keyword cssTextAttr contained ltr rtl embed nowrap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000238syn keyword cssTextAttr contained underline overline blink sub super middle
Bram Moolenaard09acef2012-09-21 14:54:30 +0200239syn keyword cssTextAttr contained capitalize uppercase lowercase
240syn keyword cssTextAttr contained center justify baseline sub super
241syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
242syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
243syn keyword cssTextAttr contained start end adjacent
244syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
245syn keyword cssTextAttr contained distribute kashida first last
246syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
247syn match cssTextAttr contained "\<break-all\>"
248syn match cssTextAttr contained "\<break-word\>"
249syn keyword cssTextAttr contained hyphenate
Bram Moolenaar071d4272004-06-13 20:20:40 +0000250
Bram Moolenaar071d4272004-06-13 20:20:40 +0000251
Bram Moolenaard09acef2012-09-21 14:54:30 +0200252syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
253syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
254syn match cssTransformProp contained "\<backface-visibility\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000255
Bram Moolenaard09acef2012-09-21 14:54:30 +0200256syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000257
Bram Moolenaard09acef2012-09-21 14:54:30 +0200258syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
259syn match cssUIProp contained "\<outline-offset\>"
260syn match cssUIProp contained "\<box-sizing\>"
261syn keyword cssUIProp contained appearance icon resize
262syn keyword cssUIAttr contained window button menu field
Bram Moolenaar071d4272004-06-13 20:20:40 +0000263
264syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
265syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
266syn keyword cssAuralProp contained volume during azimuth elevation stress richness
267syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
268syn keyword cssAuralAttr contained silent
269syn match cssAuralAttr contained "\<spell-out\>"
270syn keyword cssAuralAttr contained non mix
271syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
272syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
273syn keyword cssAuralAttr contained leftwards rightwards behind
274syn keyword cssAuralAttr contained below level above higher
275syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
276syn keyword cssAuralAttr contained faster slower
277syn keyword cssAuralAttr contained male female child code digits continuous
Bram Moolenaard09acef2012-09-21 14:54:30 +0200278syn match cssAuralAttr contained "\<lower\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000279
Bram Moolenaard09acef2012-09-21 14:54:30 +0200280" cursor
281syn keyword cssUIProp contained cursor
282syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
283syn keyword cssUIAttr contained crosshair default help move pointer
284syn keyword cssUIAttr contained progress wait
285
286" FIXME: I could not find them in reference
287syn keyword cssUIAttr contained invert maker size zoom
288syn match cssRenderAttr contained "\<run-in\>"
289syn match cssRenderAttr contained "\<text-rendering\>"
290syn match cssRenderAttr contained "\<font-smoothing\>"
291syn match cssRenderProp contained "\<marker-offset\>"
292syn match cssRenderAttr contained "\<bidi-override\>"
293
Bram Moolenaar071d4272004-06-13 20:20:40 +0000294
295" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
296syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
297syn match cssBraces contained "[{}]"
298syn match cssError contained "{@<>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200299syn 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 +0000300syn match cssBraceError "}"
301
Bram Moolenaard09acef2012-09-21 14:54:30 +0200302" Pseudo class
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100303syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
Bram Moolenaard09acef2012-09-21 14:54:30 +0200304syn keyword cssPseudoClassId link visited active hover focus before after left right lang
Bram Moolenaar071d4272004-06-13 20:20:40 +0000305syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200306" FIXME: handle functions.
307"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
308syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
309syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
310syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
311syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000312
Bram Moolenaard09acef2012-09-21 14:54:30 +0200313" Comment
Bram Moolenaar29c34722007-05-12 15:34:06 +0000314syn region cssComment start="/\*" end="\*/" contains=@Spell
Bram Moolenaard09acef2012-09-21 14:54:30 +0200315syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +0000316
317syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
318syn match cssSpecialCharQQ +\\"+ contained
319syn match cssSpecialCharQ +\\'+ contained
320syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
321syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
Bram Moolenaard09acef2012-09-21 14:54:30 +0200322
323" Vendor Prefix
324syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
325
Bram Moolenaar071d4272004-06-13 20:20:40 +0000326
327if main_syntax == "css"
328 syn sync minlines=10
329endif
330
331" Define the default highlighting.
332" For version 5.7 and earlier: only when not done already
333" For version 5.8 and later: only when an item doesn't have highlighting yet
334if version >= 508 || !exists("did_css_syn_inits")
335 if version < 508
336 let did_css_syn_inits = 1
337 command -nargs=+ HiLink hi link <args>
338 else
339 command -nargs=+ HiLink hi def link <args>
340 endif
341
342 HiLink cssComment Comment
Bram Moolenaard09acef2012-09-21 14:54:30 +0200343 HiLink cssVendor Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +0000344 HiLink cssTagName Statement
Bram Moolenaard09acef2012-09-21 14:54:30 +0200345 HiLink cssDeprecated Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000346 HiLink cssSelectorOp Special
347 HiLink cssSelectorOp2 Special
Bram Moolenaard09acef2012-09-21 14:54:30 +0200348
349 HiLink cssAnimationProp StorageClass
350 HiLink cssBackgroundProp StorageClass
351 HiLink cssBorderOutlineProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000352 HiLink cssBoxProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200353 HiLink cssColorProp StorageClass
354 HiLink cssContentForPagedMediaProp StorageClass
355 HiLink cssDimensionProp StorageClass
356 HiLink cssFlexibleBoxProp StorageClass
357 HiLink cssFontProp StorageClass
358 HiLink cssGeneratedContentProp StorageClass
359 HiLink cssGridProp StorageClass
360 HiLink cssHyerlinkProp StorageClass
361 HiLink cssLineboxProp StorageClass
362 HiLink cssListProp StorageClass
363 HiLink cssMarginProp StorageClass
364 HiLink cssMarqueeProp StorageClass
365 HiLink cssMultiColumnProp StorageClass
366 HiLink cssPaddingProp StorageClass
367 HiLink cssPagedMediaProp StorageClass
368 HiLink cssPositioningProp StorageClass
369 HiLink cssPrintProp StorageClass
370 HiLink cssRubyProp StorageClass
371 HiLink cssSpeechProp StorageClass
372 HiLink cssTableProp StorageClass
373 HiLink cssTextProp StorageClass
374 HiLink cssTransformProp StorageClass
375 HiLink cssTransitionProp StorageClass
376 HiLink cssUIProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000377 HiLink cssAuralProp StorageClass
378 HiLink cssRenderProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200379
380 HiLink cssAnimationAttr Type
381 HiLink cssBackgroundAttr Type
382 HiLink cssBorderOutlineAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000383 HiLink cssBoxAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200384 HiLink cssColorAttr Type
385 HiLink cssContentForPagedMediaAttr Type
386 HiLink cssDimensionAttr Type
387 HiLink cssFlexibleBoxAttr Type
388 HiLink cssFontAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000389 HiLink cssGeneratedContentAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200390 HiLink cssGridAttr Type
391 HiLink cssHyerlinkAttr Type
392 HiLink cssLineboxAttr Type
393 HiLink cssListAttr Type
394 HiLink cssMarginAttr Type
395 HiLink cssMarqueeAttr Type
396 HiLink cssMultiColumnAttr Type
397 HiLink cssPaddingAttr Type
398 HiLink cssPagedMediaAttr Type
399 HiLink cssPositioningAttr Type
400 HiLink cssPrintAttr Type
401 HiLink cssRubyAttr Type
402 HiLink cssSpeechAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000403 HiLink cssTableAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200404 HiLink cssTextAttr Type
405 HiLink cssTransformAttr Type
406 HiLink cssTransitionAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000407 HiLink cssUIAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200408 HiLink cssAuralAttr Type
409 HiLink cssRenderAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000410 HiLink cssCommonAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200411
Bram Moolenaar071d4272004-06-13 20:20:40 +0000412 HiLink cssPseudoClassId PreProc
413 HiLink cssPseudoClassLang Constant
414 HiLink cssValueLength Number
415 HiLink cssValueInteger Number
416 HiLink cssValueNumber Number
417 HiLink cssValueAngle Number
418 HiLink cssValueTime Number
419 HiLink cssValueFrequency Number
420 HiLink cssFunction Constant
421 HiLink cssURL String
422 HiLink cssFunctionName Function
423 HiLink cssColor Constant
424 HiLink cssIdentifier Function
425 HiLink cssInclude Include
426 HiLink cssImportant Special
427 HiLink cssBraces Function
428 HiLink cssBraceError Error
429 HiLink cssError Error
430 HiLink cssInclude Include
431 HiLink cssUnicodeEscape Special
432 HiLink cssStringQQ String
433 HiLink cssStringQ String
434 HiLink cssMedia Special
435 HiLink cssMediaType Special
436 HiLink cssMediaComma Normal
437 HiLink cssFontDescriptor Special
438 HiLink cssFontDescriptorFunction Constant
439 HiLink cssFontDescriptorProp StorageClass
440 HiLink cssFontDescriptorAttr Type
441 HiLink cssUnicodeRange Constant
Bram Moolenaar29c34722007-05-12 15:34:06 +0000442 HiLink cssClassName Function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000443 delcommand HiLink
444endif
445
446let b:current_syntax = "css"
447
448if main_syntax == 'css'
449 unlet main_syntax
450endif
451
Bram Moolenaara5792f52005-11-23 21:25:05 +0000452
Bram Moolenaar071d4272004-06-13 20:20:40 +0000453" vim: ts=8
454