xref: /vim-8.2.3635/runtime/syntax/css.vim (revision d09acef4)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     Cascading Style Sheets
3*d09acef4SBram Moolenaar" Previous Contributor List:
4*d09acef4SBram Moolenaar"               Claudio Fleiner <[email protected]> (Maintainer)
5*d09acef4SBram Moolenaar"               Yeti            (Add full CSS2, HTML4 support)
6*d09acef4SBram Moolenaar"               Nikolai Weibull (Add CSS2 support)
7*d09acef4SBram Moolenaar" Maintainer:   Jules Wang      <[email protected]>
8*d09acef4SBram Moolenaar" Last Change:  2012 Aug 21
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
21071d4279SBram Moolenaarsyn case ignore
22071d4279SBram Moolenaar
23*d09acef4SBram Moolenaar" All HTML4 tags
24071d4279SBram Moolenaarsyn keyword cssTagName abbr acronym address applet area a b base
25071d4279SBram Moolenaarsyn keyword cssTagName basefont bdo big blockquote body br button
26071d4279SBram Moolenaarsyn keyword cssTagName caption center cite code col colgroup dd del
27071d4279SBram Moolenaarsyn keyword cssTagName dfn dir div dl dt em fieldset font form frame
28071d4279SBram Moolenaarsyn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
29071d4279SBram Moolenaarsyn keyword cssTagName iframe img input ins isindex kbd label legend li
30071d4279SBram Moolenaarsyn keyword cssTagName link map menu meta noframes noscript ol optgroup
31071d4279SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script select small
32*d09acef4SBram Moolenaarsyn keyword cssTagName span strike strong style sub sup table tbody td
33071d4279SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr tt ul u var
34*d09acef4SBram Moolenaarsyn keyword cssTagName object
35*d09acef4SBram Moolenaar
36*d09acef4SBram Moolenaar" HTML5 new tags 5*6=30
37*d09acef4SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command
38*d09acef4SBram Moolenaarsyn keyword cssTagName datalist details embed figcaption figure footer
39*d09acef4SBram Moolenaarsyn keyword cssTagName header hgroup keygen mark meter nav
40*d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section
41*d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr
42*d09acef4SBram Moolenaar
43*d09acef4SBram Moolenaar" Tags not supported in HTML5
44*d09acef4SBram Moolenaarsyn keyword cssDeprecated acronym applet basefont big center dir
45*d09acef4SBram Moolenaarsyn keyword cssDeprecated font frame frameset noframes strike tt
46*d09acef4SBram Moolenaar
47*d09acef4SBram Moolenaar"syn match cssTagName "\<table\>"
48071d4279SBram Moolenaarsyn match cssTagName "\*"
49071d4279SBram Moolenaar
50*d09acef4SBram Moolenaar" selectors
51*d09acef4SBram Moolenaarsyn match cssSelectorOp "[,>+]"
52*d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained
53*d09acef4SBram Moolenaar" FIXME: add HTML5 attribute
54071d4279SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
55071d4279SBram Moolenaar
56*d09acef4SBram Moolenaar" .class and #id
57*d09acef4SBram Moolenaarsyn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
58*d09acef4SBram Moolenaar
59a5792f58SBram Moolenaartry
60293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*"
61a5792f58SBram Moolenaarcatch /^.*/
62a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
63a5792f58SBram Moolenaarendtry
64a5792f58SBram Moolenaar
65*d09acef4SBram Moolenaarsyn match cssTagName "@page\>" nextgroup=cssDefinition
66*d09acef4SBram Moolenaar" FIXME: use cssVendor here
67*d09acef4SBram Moolenaarsyn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
68071d4279SBram Moolenaar
69071d4279SBram Moolenaarsyn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
70071d4279SBram Moolenaarsyn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
71*d09acef4SBram Moolenaar"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
72071d4279SBram Moolenaarsyn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
73071d4279SBram Moolenaar
74071d4279SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+"
75071d4279SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
76*d09acef4SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
77071d4279SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
78071d4279SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
79071d4279SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
80071d4279SBram Moolenaar
81071d4279SBram Moolenaarsyn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
82071d4279SBram Moolenaarsyn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
83071d4279SBram Moolenaarsyn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
84071d4279SBram Moolenaarsyn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
85071d4279SBram Moolenaarsyn keyword cssFontDescriptorAttr contained all
86071d4279SBram Moolenaarsyn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
87071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
88071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+\x\+-\x\+"
89071d4279SBram Moolenaar
90071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
91071d4279SBram Moolenaar" FIXME: These are actually case-insentivie too, but (a) specs recommend using
92071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in
93071d4279SBram Moolenaar" all situations
94071d4279SBram Moolenaarsyn case match
95071d4279SBram 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
96071d4279SBram Moolenaarsyn case ignore
97*d09acef4SBram Moolenaar
98*d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>"
99*d09acef4SBram Moolenaar
100071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>"
101071d4279SBram Moolenaarsyn match cssColor contained "\<white\>"
102071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
103071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
104*d09acef4SBram Moolenaar
105071d4279SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
106*d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
107*d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
108*d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
109*d09acef4SBram 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
110071d4279SBram Moolenaar
111*d09acef4SBram Moolenaar" Prop and Attr
112*d09acef4SBram Moolenaar" Reference: http://www.w3schools.com/cssref/default.asp
113*d09acef4SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all
114071d4279SBram Moolenaarsyn keyword cssCommonAttr contained top bottom
115071d4279SBram Moolenaarsyn keyword cssCommonAttr contained medium normal
116071d4279SBram Moolenaar
117*d09acef4SBram Moolenaar
118*d09acef4SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
119*d09acef4SBram Moolenaar
120*d09acef4SBram Moolenaar
121*d09acef4SBram Moolenaarsyn keyword cssAnimationAttr contained infinite alternate paused running
122*d09acef4SBram Moolenaar" bugfix: escape linear-gradient
123*d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
124*d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
125*d09acef4SBram Moolenaar
126*d09acef4SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
127*d09acef4SBram Moolenaarsyn keyword cssBackgroundAttr contained center fixed over contain
128*d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>"
129*d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
130*d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
131*d09acef4SBram Moolenaar
132*d09acef4SBram Moolenaar
133*d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
134*d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
135*d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
136*d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
137*d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-radius\>"
138*d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained thin thick medium
139*d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
140*d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
141*d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained stretch round
142*d09acef4SBram Moolenaar
143*d09acef4SBram Moolenaar
144*d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
145*d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)=\>"
146*d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto
147*d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>"
148*d09acef4SBram Moolenaar
149*d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity
150*d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>"
151*d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>"
152*d09acef4SBram Moolenaar
153*d09acef4SBram Moolenaar
154*d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
155*d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height
156*d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width
157*d09acef4SBram Moolenaar
158*d09acef4SBram Moolenaar" shadow and sizing are in other property groups
159*d09acef4SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
160*d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained start end center baseline stretch
161*d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained normal reverse
162*d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained single mulitple
163*d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained horizontal
164*d09acef4SBram Moolenaar" bugfix: escape vertial-align
165*d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
166*d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
167*d09acef4SBram Moolenaar
168*d09acef4SBram Moolenaar
16959c0395eSBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
170071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
17159c0395eSBram Moolenaarsyn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
172071d4279SBram Moolenaarsyn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
173071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>"
174071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>"
175071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
176071d4279SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace italic oblique
177*d09acef4SBram Moolenaarsyn keyword cssFontAttr contained bold bolder light lighter larger smaller
178*d09acef4SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption
179*d09acef4SBram Moolenaarsyn keyword cssFontAttr contained large smaller larger narrower wider
180*d09acef4SBram Moolenaarsyn keyword cssFontAttr contained Courier Arial Georgia Times
181071d4279SBram Moolenaar
182071d4279SBram Moolenaar
183*d09acef4SBram Moolenaarsyn keyword cssGeneratedContentProp contained content quotes crop
184*d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
185*d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>"
186*d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>"
187*d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
188*d09acef4SBram Moolenaar
189*d09acef4SBram Moolenaar
190*d09acef4SBram Moolenaarsyn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
191*d09acef4SBram Moolenaar
192*d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
193*d09acef4SBram Moolenaar
194*d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
195*d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
196*d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
197*d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
198*d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian
199*d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside
200*d09acef4SBram Moolenaar
201*d09acef4SBram Moolenaar
202*d09acef4SBram Moolenaarsyn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
203*d09acef4SBram Moolenaar
204*d09acef4SBram Moolenaarsyn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
205*d09acef4SBram Moolenaar
206*d09acef4SBram Moolenaar
207*d09acef4SBram Moolenaarsyn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
208*d09acef4SBram Moolenaar
209*d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left
210*d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility
211*d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>"
212*d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained block inline compact
213*d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
214*d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both
215*d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>"
216*d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
217*d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed
218*d09acef4SBram Moolenaar
219*d09acef4SBram Moolenaarsyn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
220*d09acef4SBram Moolenaarsyn keyword cssPrintProp contained orphans widows
221*d09acef4SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always avoid
222*d09acef4SBram Moolenaar
223*d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
224*d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always
225*d09acef4SBram Moolenaar
226*d09acef4SBram Moolenaar
227*d09acef4SBram Moolenaarsyn keyword cssTextProp contained color direction
228071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
229*d09acef4SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
230*d09acef4SBram Moolenaarsyn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
231*d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>"
232*d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>"
233*d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>"
234071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>"
235071d4279SBram Moolenaarsyn match cssTextAttr contained "\<text-indent\>"
236071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
237*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap
238071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle
239*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase
240*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained center justify baseline sub super
241*d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
242*d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>"
243*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent
244*d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
245*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last
246*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress
247*d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>"
248*d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>"
249*d09acef4SBram Moolenaarsyn keyword cssTextAttr contained hyphenate
250071d4279SBram Moolenaar
251071d4279SBram Moolenaar
252*d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
253*d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
254*d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>"
255071d4279SBram Moolenaar
256*d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
257071d4279SBram Moolenaar
258*d09acef4SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
259*d09acef4SBram Moolenaarsyn match cssUIProp contained "\<outline-offset\>"
260*d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>"
261*d09acef4SBram Moolenaarsyn keyword cssUIProp contained appearance icon resize
262*d09acef4SBram Moolenaarsyn keyword cssUIAttr contained window button menu field
263071d4279SBram Moolenaar
264071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
265071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
266071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness
267071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
268071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent
269071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>"
270071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix
271071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>"
272071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
273071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind
274071d4279SBram Moolenaarsyn keyword cssAuralAttr contained below level above higher
275071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
276071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower
277071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous
278*d09acef4SBram Moolenaarsyn match cssAuralAttr contained "\<lower\>"
279071d4279SBram Moolenaar
280*d09acef4SBram Moolenaar" cursor
281*d09acef4SBram Moolenaarsyn keyword cssUIProp contained cursor
282*d09acef4SBram Moolenaarsyn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
283*d09acef4SBram Moolenaarsyn keyword cssUIAttr contained crosshair default help move pointer
284*d09acef4SBram Moolenaarsyn keyword cssUIAttr contained progress wait
285*d09acef4SBram Moolenaar
286*d09acef4SBram Moolenaar" FIXME: I could not find them in reference
287*d09acef4SBram Moolenaarsyn keyword cssUIAttr contained invert maker size zoom
288*d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<run-in\>"
289*d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<text-rendering\>"
290*d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<font-smoothing\>"
291*d09acef4SBram Moolenaarsyn match cssRenderProp contained "\<marker-offset\>"
292*d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<bidi-override\>"
293*d09acef4SBram Moolenaar
294071d4279SBram Moolenaar
295071d4279SBram Moolenaar" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
296071d4279SBram Moolenaarsyn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
297071d4279SBram Moolenaarsyn match cssBraces contained "[{}]"
298071d4279SBram Moolenaarsyn match cssError contained "{@<>"
299*d09acef4SBram 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
300071d4279SBram Moolenaarsyn match cssBraceError "}"
301071d4279SBram Moolenaar
302*d09acef4SBram Moolenaar" Pseudo class
303f1568ecaSBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
304*d09acef4SBram Moolenaarsyn keyword cssPseudoClassId link visited active hover focus before after left right lang
305071d4279SBram Moolenaarsyn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
306*d09acef4SBram Moolenaar" FIXME: handle functions.
307*d09acef4SBram Moolenaar"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
308*d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
309*d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
310*d09acef4SBram Moolenaarsyn keyword cssPseudoClassId root empty target enable disabled checked not invalid
311*d09acef4SBram Moolenaarsyn match cssPseudoClassId contained  "::\(-moz-\)\=selection"
312071d4279SBram Moolenaar
313*d09acef4SBram Moolenaar" Comment
31429c34723SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell
315*d09acef4SBram Moolenaarsyn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
316071d4279SBram Moolenaar
317071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?"
318071d4279SBram Moolenaarsyn match cssSpecialCharQQ +\\"+ contained
319071d4279SBram Moolenaarsyn match cssSpecialCharQ +\\'+ contained
320071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
321071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
322*d09acef4SBram Moolenaar
323*d09acef4SBram Moolenaar" Vendor Prefix
324*d09acef4SBram Moolenaarsyn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
325*d09acef4SBram Moolenaar
326071d4279SBram Moolenaar
327071d4279SBram Moolenaarif main_syntax == "css"
328071d4279SBram Moolenaar  syn sync minlines=10
329071d4279SBram Moolenaarendif
330071d4279SBram Moolenaar
331071d4279SBram Moolenaar" Define the default highlighting.
332071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already
333071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet
334071d4279SBram Moolenaarif version >= 508 || !exists("did_css_syn_inits")
335071d4279SBram Moolenaar  if version < 508
336071d4279SBram Moolenaar    let did_css_syn_inits = 1
337071d4279SBram Moolenaar    command -nargs=+ HiLink hi link <args>
338071d4279SBram Moolenaar  else
339071d4279SBram Moolenaar    command -nargs=+ HiLink hi def link <args>
340071d4279SBram Moolenaar  endif
341071d4279SBram Moolenaar
342071d4279SBram Moolenaar  HiLink cssComment Comment
343*d09acef4SBram Moolenaar  HiLink cssVendor Comment
344071d4279SBram Moolenaar  HiLink cssTagName Statement
345*d09acef4SBram Moolenaar  HiLink cssDeprecated Error
346071d4279SBram Moolenaar  HiLink cssSelectorOp Special
347071d4279SBram Moolenaar  HiLink cssSelectorOp2 Special
348*d09acef4SBram Moolenaar
349*d09acef4SBram Moolenaar  HiLink cssAnimationProp StorageClass
350*d09acef4SBram Moolenaar  HiLink cssBackgroundProp StorageClass
351*d09acef4SBram Moolenaar  HiLink cssBorderOutlineProp StorageClass
352071d4279SBram Moolenaar  HiLink cssBoxProp StorageClass
353*d09acef4SBram Moolenaar  HiLink cssColorProp StorageClass
354*d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaProp StorageClass
355*d09acef4SBram Moolenaar  HiLink cssDimensionProp StorageClass
356*d09acef4SBram Moolenaar  HiLink cssFlexibleBoxProp StorageClass
357*d09acef4SBram Moolenaar  HiLink cssFontProp StorageClass
358*d09acef4SBram Moolenaar  HiLink cssGeneratedContentProp StorageClass
359*d09acef4SBram Moolenaar  HiLink cssGridProp StorageClass
360*d09acef4SBram Moolenaar  HiLink cssHyerlinkProp StorageClass
361*d09acef4SBram Moolenaar  HiLink cssLineboxProp StorageClass
362*d09acef4SBram Moolenaar  HiLink cssListProp StorageClass
363*d09acef4SBram Moolenaar  HiLink cssMarginProp StorageClass
364*d09acef4SBram Moolenaar  HiLink cssMarqueeProp StorageClass
365*d09acef4SBram Moolenaar  HiLink cssMultiColumnProp StorageClass
366*d09acef4SBram Moolenaar  HiLink cssPaddingProp StorageClass
367*d09acef4SBram Moolenaar  HiLink cssPagedMediaProp StorageClass
368*d09acef4SBram Moolenaar  HiLink cssPositioningProp StorageClass
369*d09acef4SBram Moolenaar  HiLink cssPrintProp StorageClass
370*d09acef4SBram Moolenaar  HiLink cssRubyProp StorageClass
371*d09acef4SBram Moolenaar  HiLink cssSpeechProp StorageClass
372*d09acef4SBram Moolenaar  HiLink cssTableProp StorageClass
373*d09acef4SBram Moolenaar  HiLink cssTextProp StorageClass
374*d09acef4SBram Moolenaar  HiLink cssTransformProp StorageClass
375*d09acef4SBram Moolenaar  HiLink cssTransitionProp StorageClass
376*d09acef4SBram Moolenaar  HiLink cssUIProp StorageClass
377071d4279SBram Moolenaar  HiLink cssAuralProp StorageClass
378071d4279SBram Moolenaar  HiLink cssRenderProp StorageClass
379*d09acef4SBram Moolenaar
380*d09acef4SBram Moolenaar  HiLink cssAnimationAttr Type
381*d09acef4SBram Moolenaar  HiLink cssBackgroundAttr Type
382*d09acef4SBram Moolenaar  HiLink cssBorderOutlineAttr Type
383071d4279SBram Moolenaar  HiLink cssBoxAttr Type
384*d09acef4SBram Moolenaar  HiLink cssColorAttr Type
385*d09acef4SBram Moolenaar  HiLink cssContentForPagedMediaAttr Type
386*d09acef4SBram Moolenaar  HiLink cssDimensionAttr Type
387*d09acef4SBram Moolenaar  HiLink cssFlexibleBoxAttr Type
388*d09acef4SBram Moolenaar  HiLink cssFontAttr Type
389071d4279SBram Moolenaar  HiLink cssGeneratedContentAttr Type
390*d09acef4SBram Moolenaar  HiLink cssGridAttr Type
391*d09acef4SBram Moolenaar  HiLink cssHyerlinkAttr Type
392*d09acef4SBram Moolenaar  HiLink cssLineboxAttr Type
393*d09acef4SBram Moolenaar  HiLink cssListAttr Type
394*d09acef4SBram Moolenaar  HiLink cssMarginAttr Type
395*d09acef4SBram Moolenaar  HiLink cssMarqueeAttr Type
396*d09acef4SBram Moolenaar  HiLink cssMultiColumnAttr Type
397*d09acef4SBram Moolenaar  HiLink cssPaddingAttr Type
398*d09acef4SBram Moolenaar  HiLink cssPagedMediaAttr Type
399*d09acef4SBram Moolenaar  HiLink cssPositioningAttr Type
400*d09acef4SBram Moolenaar  HiLink cssPrintAttr Type
401*d09acef4SBram Moolenaar  HiLink cssRubyAttr Type
402*d09acef4SBram Moolenaar  HiLink cssSpeechAttr Type
403071d4279SBram Moolenaar  HiLink cssTableAttr Type
404*d09acef4SBram Moolenaar  HiLink cssTextAttr Type
405*d09acef4SBram Moolenaar  HiLink cssTransformAttr Type
406*d09acef4SBram Moolenaar  HiLink cssTransitionAttr Type
407071d4279SBram Moolenaar  HiLink cssUIAttr Type
408*d09acef4SBram Moolenaar  HiLink cssAuralAttr Type
409*d09acef4SBram Moolenaar  HiLink cssRenderAttr Type
410071d4279SBram Moolenaar  HiLink cssCommonAttr Type
411*d09acef4SBram Moolenaar
412071d4279SBram Moolenaar  HiLink cssPseudoClassId PreProc
413071d4279SBram Moolenaar  HiLink cssPseudoClassLang Constant
414071d4279SBram Moolenaar  HiLink cssValueLength Number
415071d4279SBram Moolenaar  HiLink cssValueInteger Number
416071d4279SBram Moolenaar  HiLink cssValueNumber Number
417071d4279SBram Moolenaar  HiLink cssValueAngle Number
418071d4279SBram Moolenaar  HiLink cssValueTime Number
419071d4279SBram Moolenaar  HiLink cssValueFrequency Number
420071d4279SBram Moolenaar  HiLink cssFunction Constant
421071d4279SBram Moolenaar  HiLink cssURL String
422071d4279SBram Moolenaar  HiLink cssFunctionName Function
423071d4279SBram Moolenaar  HiLink cssColor Constant
424071d4279SBram Moolenaar  HiLink cssIdentifier Function
425071d4279SBram Moolenaar  HiLink cssInclude Include
426071d4279SBram Moolenaar  HiLink cssImportant Special
427071d4279SBram Moolenaar  HiLink cssBraces Function
428071d4279SBram Moolenaar  HiLink cssBraceError Error
429071d4279SBram Moolenaar  HiLink cssError Error
430071d4279SBram Moolenaar  HiLink cssInclude Include
431071d4279SBram Moolenaar  HiLink cssUnicodeEscape Special
432071d4279SBram Moolenaar  HiLink cssStringQQ String
433071d4279SBram Moolenaar  HiLink cssStringQ String
434071d4279SBram Moolenaar  HiLink cssMedia Special
435071d4279SBram Moolenaar  HiLink cssMediaType Special
436071d4279SBram Moolenaar  HiLink cssMediaComma Normal
437071d4279SBram Moolenaar  HiLink cssFontDescriptor Special
438071d4279SBram Moolenaar  HiLink cssFontDescriptorFunction Constant
439071d4279SBram Moolenaar  HiLink cssFontDescriptorProp StorageClass
440071d4279SBram Moolenaar  HiLink cssFontDescriptorAttr Type
441071d4279SBram Moolenaar  HiLink cssUnicodeRange Constant
44229c34723SBram Moolenaar  HiLink cssClassName Function
443071d4279SBram Moolenaar  delcommand HiLink
444071d4279SBram Moolenaarendif
445071d4279SBram Moolenaar
446071d4279SBram Moolenaarlet b:current_syntax = "css"
447071d4279SBram Moolenaar
448071d4279SBram Moolenaarif main_syntax == 'css'
449071d4279SBram Moolenaar  unlet main_syntax
450071d4279SBram Moolenaarendif
451071d4279SBram Moolenaar
452a5792f58SBram Moolenaar
453071d4279SBram Moolenaar" vim: ts=8
454071d4279SBram Moolenaar
455