xref: /vim-8.2.3635/runtime/syntax/css.vim (revision 0c5fa7d7)
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]>
8*0c5fa7d7SBram Moolenaar" Last Change:  2012 Oct 05
9071d4279SBram Moolenaar
10071d4279SBram Moolenaar" For version 5.x: Clear all syntax items
11071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded
12071d4279SBram Moolenaarif !exists("main_syntax")
13071d4279SBram Moolenaar  if version < 600
14071d4279SBram Moolenaar    syntax clear
15071d4279SBram Moolenaar  elseif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar  let main_syntax = 'css'
19071d4279SBram Moolenaarendif
20071d4279SBram Moolenaar
21*0c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
22*0c5fa7d7SBram Moolenaarset cpo&vim
23*0c5fa7d7SBram Moolenaar
24071d4279SBram Moolenaarsyn case ignore
25071d4279SBram Moolenaar
26d09acef4SBram Moolenaar" All HTML4 tags
27071d4279SBram Moolenaarsyn keyword cssTagName abbr acronym address applet area a b base
28071d4279SBram Moolenaarsyn keyword cssTagName basefont bdo big blockquote body br button
29071d4279SBram Moolenaarsyn keyword cssTagName caption center cite code col colgroup dd del
30071d4279SBram Moolenaarsyn keyword cssTagName dfn dir div dl dt em fieldset font form frame
31071d4279SBram Moolenaarsyn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
32071d4279SBram Moolenaarsyn keyword cssTagName iframe img input ins isindex kbd label legend li
33071d4279SBram Moolenaarsyn keyword cssTagName link map menu meta noframes noscript ol optgroup
34071d4279SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script select small
35d09acef4SBram Moolenaarsyn keyword cssTagName span strike strong style sub sup table tbody td
36071d4279SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr tt ul u var
37d09acef4SBram Moolenaarsyn keyword cssTagName object
38d09acef4SBram Moolenaar
39d09acef4SBram Moolenaar" HTML5 new tags 5*6=30
40d09acef4SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command
41d09acef4SBram Moolenaarsyn keyword cssTagName datalist details embed figcaption figure footer
42d09acef4SBram Moolenaarsyn keyword cssTagName header hgroup keygen mark meter nav
43d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section
44d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr
45d09acef4SBram Moolenaar
46d09acef4SBram Moolenaar" Tags not supported in HTML5
47d09acef4SBram Moolenaarsyn keyword cssDeprecated acronym applet basefont big center dir
48d09acef4SBram Moolenaarsyn keyword cssDeprecated font frame frameset noframes strike tt
49d09acef4SBram Moolenaar
50d09acef4SBram Moolenaar"syn match cssTagName "\<table\>"
51071d4279SBram Moolenaarsyn match cssTagName "\*"
52071d4279SBram Moolenaar
53d09acef4SBram Moolenaar" selectors
54d09acef4SBram Moolenaarsyn match cssSelectorOp "[,>+]"
55d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained
56d09acef4SBram Moolenaar" FIXME: add HTML5 attribute
57071d4279SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
58071d4279SBram Moolenaar
59d09acef4SBram Moolenaar" .class and #id
60d09acef4SBram Moolenaarsyn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
61d09acef4SBram Moolenaar
62a5792f58SBram Moolenaartry
63293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
64a5792f58SBram Moolenaarcatch /^.*/
65a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
66a5792f58SBram Moolenaarendtry
67a5792f58SBram Moolenaar
68d09acef4SBram Moolenaarsyn match cssTagName "@page\>" nextgroup=cssDefinition
69d09acef4SBram Moolenaar" FIXME: use cssVendor here
70d09acef4SBram Moolenaarsyn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
71071d4279SBram Moolenaar
72071d4279SBram Moolenaarsyn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
73071d4279SBram Moolenaarsyn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
74d09acef4SBram Moolenaar"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
75071d4279SBram Moolenaarsyn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
76071d4279SBram Moolenaar
77071d4279SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+"
78071d4279SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
79d09acef4SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
80071d4279SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
81071d4279SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
82071d4279SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
83071d4279SBram Moolenaar
84071d4279SBram Moolenaarsyn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
85071d4279SBram Moolenaarsyn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
86071d4279SBram Moolenaarsyn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
87071d4279SBram Moolenaarsyn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
88071d4279SBram Moolenaarsyn keyword cssFontDescriptorAttr contained all
89071d4279SBram Moolenaarsyn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
90071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
91071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+\x\+-\x\+"
92071d4279SBram Moolenaar
93071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
94071d4279SBram Moolenaar" FIXME: These are actually case-insentivie too, but (a) specs recommend using
95071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in
96071d4279SBram Moolenaar" all situations
97071d4279SBram Moolenaarsyn case match
98071d4279SBram 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
99071d4279SBram Moolenaarsyn case ignore
100d09acef4SBram Moolenaar
101d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>"
102d09acef4SBram Moolenaar
103071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>"
104071d4279SBram Moolenaarsyn match cssColor contained "\<white\>"
105071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
106071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
107d09acef4SBram Moolenaar
108071d4279SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
109d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
110d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
111d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
112d09acef4SBram 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
113071d4279SBram Moolenaar
114d09acef4SBram Moolenaar" Prop and Attr
115d09acef4SBram Moolenaar" Reference: http://www.w3schools.com/cssref/default.asp
116d09acef4SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all
117071d4279SBram Moolenaarsyn keyword cssCommonAttr contained top bottom
118071d4279SBram Moolenaarsyn keyword cssCommonAttr contained medium normal
119071d4279SBram Moolenaar
120d09acef4SBram Moolenaar
121d09acef4SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
122d09acef4SBram Moolenaar
123d09acef4SBram Moolenaar
124d09acef4SBram Moolenaarsyn keyword cssAnimationAttr contained infinite alternate paused running
125d09acef4SBram Moolenaar" bugfix: escape linear-gradient
126d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
127d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
128d09acef4SBram Moolenaar
129d09acef4SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
130d09acef4SBram Moolenaarsyn keyword cssBackgroundAttr contained center fixed over contain
131d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>"
132d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
133d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
134d09acef4SBram Moolenaar
135d09acef4SBram Moolenaar
136d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
137d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
138d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
139d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
140d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-radius\>"
141d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained thin thick medium
142d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
143d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
144d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained stretch round
145d09acef4SBram Moolenaar
146d09acef4SBram Moolenaar
147d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
148d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)=\>"
149d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto
150d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>"
151d09acef4SBram Moolenaar
152d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity
153d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>"
154d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>"
155d09acef4SBram Moolenaar
156d09acef4SBram Moolenaar
157d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
158d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height
159d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width
160d09acef4SBram Moolenaar
161d09acef4SBram Moolenaar" shadow and sizing are in other property groups
162d09acef4SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
163d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained start end center baseline stretch
164d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained normal reverse
165d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained single mulitple
166d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained horizontal
167d09acef4SBram Moolenaar" bugfix: escape vertial-align
168d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
169d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
170d09acef4SBram Moolenaar
171d09acef4SBram Moolenaar
17259c0395eSBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
173071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
17459c0395eSBram Moolenaarsyn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
175071d4279SBram Moolenaarsyn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
176071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>"
177071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>"
178071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
179071d4279SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace italic oblique
180d09acef4SBram Moolenaarsyn keyword cssFontAttr contained bold bolder light lighter larger smaller
181d09acef4SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption
182d09acef4SBram Moolenaarsyn keyword cssFontAttr contained large smaller larger narrower wider
183d09acef4SBram Moolenaarsyn keyword cssFontAttr contained Courier Arial Georgia Times
184071d4279SBram Moolenaar
185071d4279SBram Moolenaar
186d09acef4SBram Moolenaarsyn keyword cssGeneratedContentProp contained content quotes crop
187d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
188d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>"
189d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>"
190d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
191d09acef4SBram Moolenaar
192d09acef4SBram Moolenaar
193d09acef4SBram Moolenaarsyn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
194d09acef4SBram Moolenaar
195d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
196d09acef4SBram Moolenaar
197d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
198d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
199d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
200d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
201d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian
202d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside
203d09acef4SBram Moolenaar
204d09acef4SBram Moolenaar
205d09acef4SBram Moolenaarsyn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
206d09acef4SBram Moolenaar
207d09acef4SBram Moolenaarsyn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
208d09acef4SBram Moolenaar
209d09acef4SBram Moolenaar
210d09acef4SBram Moolenaarsyn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
211d09acef4SBram Moolenaar
212d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left
213d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility
214d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>"
215d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained block inline compact
216d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
217d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both
218d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>"
219d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
220d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed
221d09acef4SBram Moolenaar
222d09acef4SBram Moolenaarsyn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
223d09acef4SBram Moolenaarsyn keyword cssPrintProp contained orphans widows
224d09acef4SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always avoid
225d09acef4SBram Moolenaar
226d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
227d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always
228d09acef4SBram Moolenaar
229d09acef4SBram Moolenaar
230d09acef4SBram Moolenaarsyn keyword cssTextProp contained color direction
231071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
232d09acef4SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
233d09acef4SBram Moolenaarsyn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
234d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>"
235d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>"
236d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>"
237071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>"
238071d4279SBram Moolenaarsyn match cssTextAttr contained "\<text-indent\>"
239071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
240d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap
241071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle
242d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase
243d09acef4SBram Moolenaarsyn keyword cssTextAttr contained center justify baseline sub super
244d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
245d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>"
246d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent
247d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
248d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last
249d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress
250d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>"
251d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>"
252d09acef4SBram Moolenaarsyn keyword cssTextAttr contained hyphenate
253071d4279SBram Moolenaar
254071d4279SBram Moolenaar
255d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
256d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
257d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>"
258071d4279SBram Moolenaar
259d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
260071d4279SBram Moolenaar
261d09acef4SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
262d09acef4SBram Moolenaarsyn match cssUIProp contained "\<outline-offset\>"
263d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>"
264d09acef4SBram Moolenaarsyn keyword cssUIProp contained appearance icon resize
265d09acef4SBram Moolenaarsyn keyword cssUIAttr contained window button menu field
266071d4279SBram Moolenaar
267071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
268071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
269071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness
270071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
271071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent
272071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>"
273071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix
274071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>"
275071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
276071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind
277071d4279SBram Moolenaarsyn keyword cssAuralAttr contained below level above higher
278071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
279071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower
280071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous
281d09acef4SBram Moolenaarsyn match cssAuralAttr contained "\<lower\>"
282071d4279SBram Moolenaar
283d09acef4SBram Moolenaar" cursor
284d09acef4SBram Moolenaarsyn keyword cssUIProp contained cursor
285d09acef4SBram Moolenaarsyn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
286d09acef4SBram Moolenaarsyn keyword cssUIAttr contained crosshair default help move pointer
287d09acef4SBram Moolenaarsyn keyword cssUIAttr contained progress wait
288d09acef4SBram Moolenaar
289d09acef4SBram Moolenaar" FIXME: I could not find them in reference
290d09acef4SBram Moolenaarsyn keyword cssUIAttr contained invert maker size zoom
291d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<run-in\>"
292d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<text-rendering\>"
293d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<font-smoothing\>"
294d09acef4SBram Moolenaarsyn match cssRenderProp contained "\<marker-offset\>"
295d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<bidi-override\>"
296d09acef4SBram Moolenaar
297071d4279SBram Moolenaar
298071d4279SBram Moolenaar" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
299071d4279SBram Moolenaarsyn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
300071d4279SBram Moolenaarsyn match cssBraces contained "[{}]"
301071d4279SBram Moolenaarsyn match cssError contained "{@<>"
302d09acef4SBram 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
303071d4279SBram Moolenaarsyn match cssBraceError "}"
304071d4279SBram Moolenaar
305d09acef4SBram Moolenaar" Pseudo class
306f1568ecaSBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
307d09acef4SBram Moolenaarsyn keyword cssPseudoClassId link visited active hover focus before after left right lang
308071d4279SBram Moolenaarsyn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
309d09acef4SBram Moolenaar" FIXME: handle functions.
310d09acef4SBram Moolenaar"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
311d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
312d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
313d09acef4SBram Moolenaarsyn keyword cssPseudoClassId root empty target enable disabled checked not invalid
314d09acef4SBram Moolenaarsyn match cssPseudoClassId contained  "::\(-moz-\)\=selection"
315071d4279SBram Moolenaar
316d09acef4SBram Moolenaar" Comment
31729c34723SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell
318d09acef4SBram Moolenaarsyn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
319071d4279SBram Moolenaar
320071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?"
321071d4279SBram Moolenaarsyn match cssSpecialCharQQ +\\"+ contained
322071d4279SBram Moolenaarsyn match cssSpecialCharQ +\\'+ contained
323071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
324071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
325d09acef4SBram Moolenaar
326d09acef4SBram Moolenaar" Vendor Prefix
327d09acef4SBram Moolenaarsyn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
328d09acef4SBram Moolenaar
329071d4279SBram Moolenaar
330071d4279SBram Moolenaarif main_syntax == "css"
331071d4279SBram Moolenaar  syn sync minlines=10
332071d4279SBram Moolenaarendif
333071d4279SBram Moolenaar
334071d4279SBram Moolenaar" Define the default highlighting.
335071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already
336071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet
337071d4279SBram Moolenaarif version >= 508 || !exists("did_css_syn_inits")
338071d4279SBram Moolenaar  if version < 508
339071d4279SBram Moolenaar    let did_css_syn_inits = 1
340071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
341071d4279SBram Moolenaar  else
342071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
343071d4279SBram Moolenaar  endif
344071d4279SBram Moolenaar
345071d4279SBram Moolenaar  HiLink cssComment Comment
346d09acef4SBram Moolenaar  HiLink cssVendor Comment
347071d4279SBram Moolenaar  HiLink cssTagName Statement
348d09acef4SBram Moolenaar  HiLink cssDeprecated Error
349071d4279SBram Moolenaar  HiLink cssSelectorOp Special
350071d4279SBram Moolenaar  HiLink cssSelectorOp2 Special
351d09acef4SBram Moolenaar
352d09acef4SBram Moolenaar  HiLink cssAnimationProp StorageClass
353d09acef4SBram Moolenaar  HiLink cssBackgroundProp StorageClass
354d09acef4SBram Moolenaar  HiLink cssBorderOutlineProp StorageClass
355071d4279SBram Moolenaar  HiLink cssBoxProp StorageClass
356d09acef4SBram Moolenaar  HiLink cssColorProp StorageClass
357d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaProp StorageClass
358d09acef4SBram Moolenaar  HiLink cssDimensionProp StorageClass
359d09acef4SBram Moolenaar  HiLink cssFlexibleBoxProp StorageClass
360d09acef4SBram Moolenaar  HiLink cssFontProp StorageClass
361d09acef4SBram Moolenaar  HiLink cssGeneratedContentProp StorageClass
362d09acef4SBram Moolenaar  HiLink cssGridProp StorageClass
363d09acef4SBram Moolenaar  HiLink cssHyerlinkProp StorageClass
364d09acef4SBram Moolenaar  HiLink cssLineboxProp StorageClass
365d09acef4SBram Moolenaar  HiLink cssListProp StorageClass
366d09acef4SBram Moolenaar  HiLink cssMarginProp StorageClass
367d09acef4SBram Moolenaar  HiLink cssMarqueeProp StorageClass
368d09acef4SBram Moolenaar  HiLink cssMultiColumnProp StorageClass
369d09acef4SBram Moolenaar  HiLink cssPaddingProp StorageClass
370d09acef4SBram Moolenaar  HiLink cssPagedMediaProp StorageClass
371d09acef4SBram Moolenaar  HiLink cssPositioningProp StorageClass
372d09acef4SBram Moolenaar  HiLink cssPrintProp StorageClass
373d09acef4SBram Moolenaar  HiLink cssRubyProp StorageClass
374d09acef4SBram Moolenaar  HiLink cssSpeechProp StorageClass
375d09acef4SBram Moolenaar  HiLink cssTableProp StorageClass
376d09acef4SBram Moolenaar  HiLink cssTextProp StorageClass
377d09acef4SBram Moolenaar  HiLink cssTransformProp StorageClass
378d09acef4SBram Moolenaar  HiLink cssTransitionProp StorageClass
379d09acef4SBram Moolenaar  HiLink cssUIProp StorageClass
380071d4279SBram Moolenaar  HiLink cssAuralProp StorageClass
381071d4279SBram Moolenaar  HiLink cssRenderProp StorageClass
382d09acef4SBram Moolenaar
383d09acef4SBram Moolenaar  HiLink cssAnimationAttr Type
384d09acef4SBram Moolenaar  HiLink cssBackgroundAttr Type
385d09acef4SBram Moolenaar  HiLink cssBorderOutlineAttr Type
386071d4279SBram Moolenaar  HiLink cssBoxAttr Type
387d09acef4SBram Moolenaar  HiLink cssColorAttr Type
388d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaAttr Type
389d09acef4SBram Moolenaar  HiLink cssDimensionAttr Type
390d09acef4SBram Moolenaar  HiLink cssFlexibleBoxAttr Type
391d09acef4SBram Moolenaar  HiLink cssFontAttr Type
392071d4279SBram Moolenaar  HiLink cssGeneratedContentAttr Type
393d09acef4SBram Moolenaar  HiLink cssGridAttr Type
394d09acef4SBram Moolenaar  HiLink cssHyerlinkAttr Type
395d09acef4SBram Moolenaar  HiLink cssLineboxAttr Type
396d09acef4SBram Moolenaar  HiLink cssListAttr Type
397d09acef4SBram Moolenaar  HiLink cssMarginAttr Type
398d09acef4SBram Moolenaar  HiLink cssMarqueeAttr Type
399d09acef4SBram Moolenaar  HiLink cssMultiColumnAttr Type
400d09acef4SBram Moolenaar  HiLink cssPaddingAttr Type
401d09acef4SBram Moolenaar  HiLink cssPagedMediaAttr Type
402d09acef4SBram Moolenaar  HiLink cssPositioningAttr Type
403d09acef4SBram Moolenaar  HiLink cssPrintAttr Type
404d09acef4SBram Moolenaar  HiLink cssRubyAttr Type
405d09acef4SBram Moolenaar  HiLink cssSpeechAttr Type
406071d4279SBram Moolenaar  HiLink cssTableAttr Type
407d09acef4SBram Moolenaar  HiLink cssTextAttr Type
408d09acef4SBram Moolenaar  HiLink cssTransformAttr Type
409d09acef4SBram Moolenaar  HiLink cssTransitionAttr Type
410071d4279SBram Moolenaar  HiLink cssUIAttr Type
411d09acef4SBram Moolenaar  HiLink cssAuralAttr Type
412d09acef4SBram Moolenaar  HiLink cssRenderAttr Type
413071d4279SBram Moolenaar  HiLink cssCommonAttr Type
414d09acef4SBram Moolenaar
415071d4279SBram Moolenaar  HiLink cssPseudoClassId PreProc
416071d4279SBram Moolenaar  HiLink cssPseudoClassLang Constant
417071d4279SBram Moolenaar  HiLink cssValueLength Number
418071d4279SBram Moolenaar  HiLink cssValueInteger Number
419071d4279SBram Moolenaar  HiLink cssValueNumber Number
420071d4279SBram Moolenaar  HiLink cssValueAngle Number
421071d4279SBram Moolenaar  HiLink cssValueTime Number
422071d4279SBram Moolenaar  HiLink cssValueFrequency Number
423071d4279SBram Moolenaar  HiLink cssFunction Constant
424071d4279SBram Moolenaar  HiLink cssURL String
425071d4279SBram Moolenaar  HiLink cssFunctionName Function
426071d4279SBram Moolenaar  HiLink cssColor Constant
427071d4279SBram Moolenaar  HiLink cssIdentifier Function
428071d4279SBram Moolenaar  HiLink cssInclude Include
429071d4279SBram Moolenaar  HiLink cssImportant Special
430071d4279SBram Moolenaar  HiLink cssBraces Function
431071d4279SBram Moolenaar  HiLink cssBraceError Error
432071d4279SBram Moolenaar  HiLink cssError Error
433071d4279SBram Moolenaar  HiLink cssInclude Include
434071d4279SBram Moolenaar  HiLink cssUnicodeEscape Special
435071d4279SBram Moolenaar  HiLink cssStringQQ String
436071d4279SBram Moolenaar  HiLink cssStringQ String
437071d4279SBram Moolenaar  HiLink cssMedia Special
438071d4279SBram Moolenaar  HiLink cssMediaType Special
439071d4279SBram Moolenaar  HiLink cssMediaComma Normal
440071d4279SBram Moolenaar  HiLink cssFontDescriptor Special
441071d4279SBram Moolenaar  HiLink cssFontDescriptorFunction Constant
442071d4279SBram Moolenaar  HiLink cssFontDescriptorProp StorageClass
443071d4279SBram Moolenaar  HiLink cssFontDescriptorAttr Type
444071d4279SBram Moolenaar  HiLink cssUnicodeRange Constant
44529c34723SBram Moolenaar  HiLink cssClassName Function
446071d4279SBram Moolenaar  delcommand HiLink
447071d4279SBram Moolenaarendif
448071d4279SBram Moolenaar
449071d4279SBram Moolenaarlet b:current_syntax = "css"
450071d4279SBram Moolenaar
451071d4279SBram Moolenaarif main_syntax == 'css'
452071d4279SBram Moolenaar  unlet main_syntax
453071d4279SBram Moolenaarendif
454071d4279SBram Moolenaar
455*0c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
456*0c5fa7d7SBram Moolenaarunlet s:cpo_save
457071d4279SBram Moolenaar" vim: ts=8
458071d4279SBram Moolenaar
459