blob: 19326d01e4f08e705110555d4976300eaa7674b0 [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:
Bram Moolenaare7b1ea02020-08-07 19:54:59 +02004" Jules Wang <w.jq0722@gmail.com>
Bram Moolenaard09acef2012-09-21 14:54:30 +02005" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
6" Yeti (Add full CSS2, HTML4 support)
7" Nikolai Weibull (Add CSS2 support)
Bram Moolenaare7b1ea02020-08-07 19:54:59 +02008" URL: https://github.com/jsit/css.vim
9" Maintainer: Jay Sitter <jay@jaysitter.com>
Bram Moolenaar06fe74a2019-08-31 16:20:32 +020010" Last Change: 2019 Jul. 29
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
Bram Moolenaar071d4272004-06-13 20:20:40 +000013if !exists("main_syntax")
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014 if exists("b:current_syntax")
Bram Moolenaare2db6952013-07-24 19:53:36 +020015 finish
16 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000017 let main_syntax = 'css'
Bram Moolenaare2db6952013-07-24 19:53:36 +020018elseif exists("b:current_syntax") && b:current_syntax == "css"
19 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000020endif
21
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020022let s:cpo_save = &cpo
23set cpo&vim
24
Bram Moolenaar071d4272004-06-13 20:20:40 +000025syn case ignore
26
Bram Moolenaarf2571c62015-06-09 19:44:55 +020027" HTML4 tags
28syn keyword cssTagName abbr address area a b base
29syn keyword cssTagName bdo blockquote body br button
30syn keyword cssTagName caption cite code col colgroup dd del
31syn keyword cssTagName dfn div dl dt em fieldset form
32syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
33syn keyword cssTagName iframe input ins isindex kbd label legend li
34syn keyword cssTagName link map menu meta noscript ol optgroup
35syn keyword cssTagName option p param pre q s samp script small
36syn keyword cssTagName span strong sub sup tbody td
37syn keyword cssTagName textarea tfoot th thead title tr ul u var
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020038syn keyword cssTagName object svg
Bram Moolenaarf2571c62015-06-09 19:44:55 +020039syn match cssTagName /\<select\>\|\<style\>\|\<table\>/
Bram Moolenaard09acef2012-09-21 14:54:30 +020040
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020041" 34 HTML5 tags
42syn keyword cssTagName article aside audio bdi canvas command data
43syn keyword cssTagName datalist details dialog embed figcaption figure footer
44syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
Bram Moolenaard09acef2012-09-21 14:54:30 +020045syn keyword cssTagName output progress rt rp ruby section
46syn keyword cssTagName source summary time track video wbr
47
48" Tags not supported in HTML5
Bram Moolenaarf2571c62015-06-09 19:44:55 +020049" acronym applet basefont big center dir
50" font frame frameset noframes strike tt
Bram Moolenaard09acef2012-09-21 14:54:30 +020051
Bram Moolenaar071d4272004-06-13 20:20:40 +000052syn match cssTagName "\*"
53
Bram Moolenaard09acef2012-09-21 14:54:30 +020054" selectors
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020055syn match cssSelectorOp "[,>+~]"
Bram Moolenaard09acef2012-09-21 14:54:30 +020056syn match cssSelectorOp2 "[~|^$*]\?=" contained
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020057syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
Bram Moolenaar071d4272004-06-13 20:20:40 +000058
Bram Moolenaard09acef2012-09-21 14:54:30 +020059" .class and #id
Bram Moolenaar369b6f52017-01-17 12:22:32 +010060syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
Bram Moolenaardfb18412013-12-11 18:53:29 +010061syn match cssClassNameDot contained '\.'
Bram Moolenaard09acef2012-09-21 14:54:30 +020062
Bram Moolenaara5792f52005-11-23 21:25:05 +000063try
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +020064syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
Bram Moolenaara5792f52005-11-23 21:25:05 +000065catch /^.*/
66syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
67endtry
68
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020069" digits
70syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
71syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
Bram Moolenaare7b1ea02020-08-07 19:54:59 +020072syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|fr\|vw\|vh\|vmin\|vmax\|ch\)\>" contains=cssUnitDecorators
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +010073syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
Bram Moolenaarf2571c62015-06-09 19:44:55 +020074syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
75syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
76syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020078" The 16 basic color names
Bram Moolenaar071d4272004-06-13 20:20:40 +000079syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020080
81" 130 more color names
82syn keyword cssColor contained aliceblue antiquewhite aquamarine azure
83syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
84syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
Bram Moolenaarf2571c62015-06-09 19:44:55 +020085syn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
86syn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
87syn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
88syn match cssColor contained /\<dark\(turquoise\|violet\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020089syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
90syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
91syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
92syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
93syn keyword cssColor contained lemonchiffon limegreen linen magenta
Bram Moolenaarf2571c62015-06-09 19:44:55 +020094syn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
95syn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
96syn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
97syn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
98syn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020099syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
100syn keyword cssColor contained oldlace olivedrab orange orangered orchid
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200101syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200102syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100103syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
104syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200105syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
106syn keyword cssColor contained thistle tomato turquoise violet wheat
107syn keyword cssColor contained whitesmoke yellowgreen
108
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200109" FIXME: These are actually case-insensitive too, but (a) specs recommend using
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110" mixed-case (b) it's hard to highlight the word `Background' correctly in
111" all situations
112syn case match
113syn 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
114syn case ignore
Bram Moolenaard09acef2012-09-21 14:54:30 +0200115
116syn match cssImportant contained "!\s*important\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200117syn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200118
Bram Moolenaar071d4272004-06-13 20:20:40 +0000119syn match cssColor contained "\<transparent\>"
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200120syn match cssColor contained "\<currentColor\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000121syn match cssColor contained "\<white\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100122syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
123syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
124syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
Bram Moolenaard09acef2012-09-21 14:54:30 +0200125
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100126syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200127syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200128syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
129syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
130syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
131syn 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 contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
Bram Moolenaare7b1ea02020-08-07 19:54:59 +0200132syn region cssFunction contained matchgroup=cssFunctionName start="\<\(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200133syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
134syn match cssFunctionComma contained ","
Bram Moolenaar071d4272004-06-13 20:20:40 +0000135
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200136" Common Prop and Attr
137syn keyword cssCommonAttr contained auto none inherit all default normal
138syn keyword cssCommonAttr contained top bottom center stretch hidden visible
Bram Moolenaare7b1ea02020-08-07 19:54:59 +0200139syn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200140"------------------------------------------------
141" CSS Animations
142" http://www.w3.org/TR/css3-animations/
Bram Moolenaardfb18412013-12-11 18:53:29 +0100143syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000144
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200145" animation-direction attributes
146syn keyword cssAnimationAttr contained alternate reverse
147syn match cssAnimationAttr contained "\<alternate-reverse\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200148
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200149" animation-fill-mode attributes
150syn keyword cssAnimationAttr contained forwards backwards both
Bram Moolenaard09acef2012-09-21 14:54:30 +0200151
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200152" animation-play-state attributes
153syn keyword cssAnimationAttr contained running paused
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200154
155" animation-iteration-count attributes
156syn keyword cssAnimationAttr contained infinite
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200157"------------------------------------------------
158" CSS Backgrounds and Borders Module Level 3
159" http://www.w3.org/TR/css3-background/
160syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
161" background-attachment attributes
162syn keyword cssBackgroundAttr contained scroll fixed local
Bram Moolenaard09acef2012-09-21 14:54:30 +0200163
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200164" background-position attributes
165syn keyword cssBackgroundAttr contained left center right top bottom
Bram Moolenaard09acef2012-09-21 14:54:30 +0200166
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200167" background-repeat attributes
Bram Moolenaard09acef2012-09-21 14:54:30 +0200168syn match cssBackgroundAttr contained "\<no-repeat\>"
169syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200170
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200171" background-size attributes
172syn keyword cssBackgroundAttr contained cover contain
Bram Moolenaard09acef2012-09-21 14:54:30 +0200173
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200174syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
175syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
176syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
177syn match cssBorderProp contained "\<box-decoration-break\>"
178syn match cssBorderProp contained "\<box-shadow\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200179
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200180" border-image attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100181syn keyword cssBorderAttr contained stretch round fill
Bram Moolenaard09acef2012-09-21 14:54:30 +0200182
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200183" border-style attributes
184syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
185
186" border-width attributes
187syn keyword cssBorderAttr contained thin thick medium
188
189" box-decoration-break attributes
190syn keyword cssBorderAttr contained clone slice
191"------------------------------------------------
192
193syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
194syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200195syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
Bram Moolenaardfb18412013-12-11 18:53:29 +0100196syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200197syn keyword cssBoxAttr contained visible hidden scroll auto
198syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
199
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200200syn keyword cssCascadeProp contained all
201syn keyword cssCascadeAttr contained initial unset revert
202
Bram Moolenaard09acef2012-09-21 14:54:30 +0200203syn keyword cssColorProp contained opacity
204syn match cssColorProp contained "\<color-profile\>"
205syn match cssColorProp contained "\<rendering-intent\>"
206
207
208syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
209syn keyword cssDimensionProp contained height
210syn keyword cssDimensionProp contained width
211
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100212" CSS Flexible Box Layout Module Level 1
213" http://www.w3.org/TR/css3-flexbox/
214" CSS Box Alignment Module Level 3
215" http://www.w3.org/TR/css-align-3/
216syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
217syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
218syn keyword cssFlexibleBoxProp contained order
219
220syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
221syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
222syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
223syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200224
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200225" CSS Fonts Module Level 3
226" http://www.w3.org/TR/css-fonts-3/
227syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>"
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200228
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200229" font attributes
230syn keyword cssFontAttr contained icon menu caption
Bram Moolenaar071d4272004-06-13 20:20:40 +0000231syn match cssFontAttr contained "\<message-box\>"
232syn match cssFontAttr contained "\<status-bar\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200233syn keyword cssFontAttr contained larger smaller
234syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100235syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200236" font-family attributes
237syn match cssFontAttr contained "\<\(sans-\)\=serif\>"
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200238syn keyword cssFontAttr contained Antiqua Arial Black Book Charcoal Comic Courier Dingbats Gadget Geneva Georgia Grande Helvetica Impact Linotype Lucida MS Monaco Neue New Palatino Roboto Roman Symbol Tahoma Times Trebuchet Verdana Webdings Wingdings York Zapf
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200239syn keyword cssFontAttr contained cursive fantasy monospace
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200240" font-feature-settings attributes
241syn keyword cssFontAttr contained on off
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200242" font-stretch attributes
243syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200244" font-style attributes
245syn keyword cssFontAttr contained italic oblique
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200246" font-synthesis attributes
247syn keyword cssFontAttr contained weight style
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200248" font-weight attributes
249syn keyword cssFontAttr contained bold bolder lighter
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200250" TODO: font-variant-* attributes
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200251"------------------------------------------------
252
253" Webkit specific property/attributes
254syn match cssFontProp contained "\<font-smooth\>"
255syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
256
Bram Moolenaardfb18412013-12-11 18:53:29 +0100257
258" CSS Multi-column Layout Module
259" http://www.w3.org/TR/css3-multicol/
260syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
261syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
262syn keyword cssMultiColumnProp contained columns
263syn keyword cssMultiColumnAttr contained balance medium
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100264syn keyword cssMultiColumnAttr contained always left right page column
265syn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>"
Bram Moolenaardfb18412013-12-11 18:53:29 +0100266
267" http://www.w3.org/TR/css3-break/#page-break
268syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
269
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100270" http://www.w3.org/TR/SVG11/interact.html
271syn match cssInteractProp contained "\<pointer-events\>"
272syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>"
273
Bram Moolenaardfb18412013-12-11 18:53:29 +0100274" TODO find following items in w3c docs.
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200275syn keyword cssGeneratedContentProp contained quotes crop
Bram Moolenaard09acef2012-09-21 14:54:30 +0200276syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
277syn match cssGeneratedContentProp contained "\<move-to\>"
278syn match cssGeneratedContentProp contained "\<page-policy\>"
279syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
280
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100281" https://www.w3.org/TR/css-grid-1/
282syn match cssGridProp contained "\<grid\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200283syn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100284syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>"
285syn match cssGridProp contained "\<grid-\(area\|gap\)\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200286syn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200287
288syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
289
290syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
291syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
292syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
293syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
294syn keyword cssListAttr contained disc circle square hebrew armenian georgian
295syn keyword cssListAttr contained inside outside
296
Bram Moolenaard09acef2012-09-21 14:54:30 +0200297syn keyword cssPositioningProp contained bottom clear clip display float left
298syn keyword cssPositioningProp contained position right top visibility
299syn match cssPositioningProp contained "\<z-index\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100300syn keyword cssPositioningAttr contained block compact grid
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200301syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200302syn keyword cssPositioningAttr contained left right both
303syn match cssPositioningAttr contained "\<list-item\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100304syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200305syn match cssPositioningAttr contained "\<flow\(-root\)\=\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100306syn keyword cssPositioningAttr contained static relative absolute fixed subgrid
Bram Moolenaard09acef2012-09-21 14:54:30 +0200307
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100308syn keyword cssPrintAttr contained landscape portrait crop cross always
Bram Moolenaard09acef2012-09-21 14:54:30 +0200309
310syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
311syn keyword cssTableAttr contained fixed collapse separate show hide once always
312
313
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200314syn keyword cssTextProp contained color direction hyphens
Bram Moolenaar071d4272004-06-13 20:20:40 +0000315syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200316syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200317syn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200318syn match cssTextProp contained "\<white-space\>"
319syn match cssTextProp contained "\<hanging-punctuation\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200320syn match cssTextProp contained "\<tab-size\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200321syn match cssTextProp contained "\<punctuation-trim\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000322syn match cssTextAttr contained "\<line-through\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000323syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200324syn keyword cssTextAttr contained ltr rtl embed nowrap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000325syn keyword cssTextAttr contained underline overline blink sub super middle
Bram Moolenaard09acef2012-09-21 14:54:30 +0200326syn keyword cssTextAttr contained capitalize uppercase lowercase
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200327syn keyword cssTextAttr contained justify baseline sub super
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200328syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision
Bram Moolenaard09acef2012-09-21 14:54:30 +0200329syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
330syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
331syn keyword cssTextAttr contained start end adjacent
332syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
333syn keyword cssTextAttr contained distribute kashida first last
334syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
335syn match cssTextAttr contained "\<break-all\>"
336syn match cssTextAttr contained "\<break-word\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200337syn keyword cssTextAttr contained manual
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200338syn match cssTextAttr contained "\<bidi-override\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000339
Bram Moolenaard09acef2012-09-21 14:54:30 +0200340syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
341syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
342syn match cssTransformProp contained "\<backface-visibility\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000343
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200344" CSS Transitions
345" http://www.w3.org/TR/css3-transitions/
Bram Moolenaard09acef2012-09-21 14:54:30 +0200346syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000347
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200348" transition-time-function attributes
349syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
350syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
351syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
352"------------------------------------------------
353" CSS Basic User Interface Module Level 3 (CSS3 UI)
354" http://www.w3.org/TR/css3-ui/
Bram Moolenaard09acef2012-09-21 14:54:30 +0200355syn match cssUIProp contained "\<box-sizing\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200356syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
357
358syn keyword cssUIProp contained cursor
359syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
360syn keyword cssUIAttr contained crosshair help move pointer alias copy
361syn keyword cssUIAttr contained progress wait text cell move
362syn match cssUIAttr contained "\<context-menu\>"
363syn match cssUIAttr contained "\<no-drop\>"
364syn match cssUIAttr contained "\<not-allowed\>"
365syn match cssUIAttr contained "\<all-scroll\>"
366syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
367syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
368
369syn match cssUIProp contained "\<ime-mode\>"
370syn keyword cssUIAttr contained active inactive disabled
371
372syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
373syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
374syn keyword cssUIAttr contained invert
375
376syn keyword cssUIProp contained icon resize
377syn keyword cssUIAttr contained both horizontal vertical
378
379syn match cssUIProp contained "\<text-overflow\>"
380syn keyword cssUIAttr contained clip ellipsis
381
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100382syn match cssUIProp contained "\<image-rendering\>"
383syn keyword cssUIAttr contained pixellated
384syn match cssUIAttr contained "\<crisp-edges\>"
385
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200386"------------------------------------------------
387" Webkit/iOS specific attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100388syn match cssUIAttr contained '\<preserve-3d\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200389" IE specific attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100390syn match cssIEUIAttr contained '\<bicubic\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200391
392" Webkit/iOS specific properties
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100393syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200394" IE specific properties
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100395syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200396
397" Webkit/Firebox specific properties/attributes
398syn keyword cssUIProp contained appearance
399syn keyword cssUIAttr contained window button field icon document menu
400
Bram Moolenaar071d4272004-06-13 20:20:40 +0000401
402syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200403syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000404syn keyword cssAuralProp contained volume during azimuth elevation stress richness
405syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
406syn keyword cssAuralAttr contained silent
407syn match cssAuralAttr contained "\<spell-out\>"
408syn keyword cssAuralAttr contained non mix
409syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
410syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
411syn keyword cssAuralAttr contained leftwards rightwards behind
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200412syn keyword cssAuralAttr contained below level above lower higher
413syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000414syn keyword cssAuralAttr contained faster slower
415syn keyword cssAuralAttr contained male female child code digits continuous
416
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200417" mobile text
418syn match cssMobileTextProp contained "\<text-size-adjust\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200419
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200420syn keyword cssMediaProp contained width height orientation scan
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100421syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
422syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
423syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
424syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
425syn keyword cssMediaAttr contained portrait landscape progressive interlace
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200426syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100427syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
428syn keyword cssPageProp contained content size
429syn keyword cssPageProp contained orphans widows
430syn keyword cssFontDescriptorProp contained src
431syn match cssFontDescriptorProp contained "\<unicode-range\>"
432" unicode-range attributes
433syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
434syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200435
Bram Moolenaar071d4272004-06-13 20:20:40 +0000436syn match cssBraces contained "[{}]"
437syn match cssError contained "{@<>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200438syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssCustomProp,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold
Bram Moolenaar071d4272004-06-13 20:20:40 +0000439syn match cssBraceError "}"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200440syn match cssAttrComma ","
Bram Moolenaar071d4272004-06-13 20:20:40 +0000441
Bram Moolenaard09acef2012-09-21 14:54:30 +0200442" Pseudo class
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200443" http://www.w3.org/TR/css3-selectors/
444syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
445syn keyword cssPseudoClassId contained link visited active hover before after left right
446syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
447syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
448syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200449syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200450" ------------------------------------
451" Vendor specific properties
452syn match cssPseudoClassId contained "\<selection\>"
453syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
454syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
455
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200456" Misc highlight groups
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100457syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200458syntax match cssNoise contained /\(:\|;\|\/\)/
Bram Moolenaar071d4272004-06-13 20:20:40 +0000459
Bram Moolenaard09acef2012-09-21 14:54:30 +0200460" Comment
Bram Moolenaar18441ae2013-09-24 23:30:38 +0200461syn region cssComment start="/\*" end="\*/" contains=@Spell fold
Bram Moolenaar071d4272004-06-13 20:20:40 +0000462
463syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
Bram Moolenaardfb18412013-12-11 18:53:29 +0100464syn match cssSpecialCharQQ +\\\\\|\\"+ contained
465syn match cssSpecialCharQ +\\\\\|\\'+ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +0000466syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
467syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
Bram Moolenaard09acef2012-09-21 14:54:30 +0200468
469" Vendor Prefix
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100470syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200471
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200472" Various CSS Hack characters
473" In earlier versions of IE (6 and 7), one can prefix property names
474" with a _ or * to isolate those definitions to particular versions of IE
475" This is purely decorative and therefore we assign to the same highlight
476" group to cssVendor, for more information:
477" http://www.paulirish.com/2009/browser-specific-css-hacks/
478syn match cssHacks contained /\(_\|*\)/
479
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200480" Attr Enhance
481" Some keywords are both Prop and Attr, so we have to handle them
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200482" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69
483syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200484
485" Hack for transition
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200486" 'transition' has Props after ':'.
487syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200488
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200489syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100490
491syn keyword cssAtRuleLogical only not and contained
492
493" @media
494" Reference: http://www.w3.org/TR/css3-mediaqueries/
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200495syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment,cssCustomProp,cssFunctionName nextgroup=cssDefinition
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100496syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
497
498" @page
499" http://www.w3.org/TR/css3-page/
500syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
501syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
502" @keyframe
503" http://www.w3.org/TR/css3-animations/#keyframes
504syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
505
506syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
507syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
508syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
509
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100510" @supports
511" https://www.w3.org/TR/css3-conditional/#at-supports
512syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
513
Bram Moolenaar071d4272004-06-13 20:20:40 +0000514
515if main_syntax == "css"
516 syn sync minlines=10
517endif
518
519" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200520" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000521
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200522hi def link cssComment Comment
523hi def link cssVendor Comment
524hi def link cssHacks Comment
525hi def link cssTagName Statement
526hi def link cssDeprecated Error
527hi def link cssSelectorOp Special
528hi def link cssSelectorOp2 Special
529hi def link cssAttrComma Special
Bram Moolenaard09acef2012-09-21 14:54:30 +0200530
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200531hi def link cssAnimationProp cssProp
532hi def link cssBackgroundProp cssProp
533hi def link cssBorderProp cssProp
534hi def link cssBoxProp cssProp
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200535hi def link cssCascadeProp cssProp
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200536hi def link cssColorProp cssProp
537hi def link cssContentForPagedMediaProp cssProp
538hi def link cssDimensionProp cssProp
539hi def link cssFlexibleBoxProp cssProp
540hi def link cssFontProp cssProp
541hi def link cssGeneratedContentProp cssProp
542hi def link cssGridProp cssProp
543hi def link cssHyerlinkProp cssProp
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100544hi def link cssInteractProp cssProp
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200545hi def link cssLineboxProp cssProp
546hi def link cssListProp cssProp
547hi def link cssMarqueeProp cssProp
548hi def link cssMultiColumnProp cssProp
549hi def link cssPagedMediaProp cssProp
550hi def link cssPositioningProp cssProp
551hi def link cssPrintProp cssProp
552hi def link cssRubyProp cssProp
553hi def link cssSpeechProp cssProp
554hi def link cssTableProp cssProp
555hi def link cssTextProp cssProp
556hi def link cssTransformProp cssProp
557hi def link cssTransitionProp cssProp
558hi def link cssUIProp cssProp
559hi def link cssIEUIProp cssProp
560hi def link cssAuralProp cssProp
561hi def link cssRenderProp cssProp
562hi def link cssMobileTextProp cssProp
Bram Moolenaard09acef2012-09-21 14:54:30 +0200563
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200564hi def link cssAnimationAttr cssAttr
565hi def link cssBackgroundAttr cssAttr
566hi def link cssBorderAttr cssAttr
567hi def link cssBoxAttr cssAttr
568hi def link cssContentForPagedMediaAttr cssAttr
569hi def link cssDimensionAttr cssAttr
570hi def link cssFlexibleBoxAttr cssAttr
571hi def link cssFontAttr cssAttr
572hi def link cssGeneratedContentAttr cssAttr
573hi def link cssGridAttr cssAttr
574hi def link cssHyerlinkAttr cssAttr
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100575hi def link cssInteractAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200576hi def link cssLineboxAttr cssAttr
577hi def link cssListAttr cssAttr
578hi def link cssMarginAttr cssAttr
579hi def link cssMarqueeAttr cssAttr
580hi def link cssMultiColumnAttr cssAttr
581hi def link cssPaddingAttr cssAttr
582hi def link cssPagedMediaAttr cssAttr
583hi def link cssPositioningAttr cssAttr
584hi def link cssGradientAttr cssAttr
585hi def link cssPrintAttr cssAttr
586hi def link cssRubyAttr cssAttr
587hi def link cssSpeechAttr cssAttr
588hi def link cssTableAttr cssAttr
589hi def link cssTextAttr cssAttr
590hi def link cssTransformAttr cssAttr
591hi def link cssTransitionAttr cssAttr
592hi def link cssUIAttr cssAttr
593hi def link cssIEUIAttr cssAttr
594hi def link cssAuralAttr cssAttr
595hi def link cssRenderAttr cssAttr
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200596hi def link cssCascadeAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200597hi def link cssCommonAttr cssAttr
Bram Moolenaard09acef2012-09-21 14:54:30 +0200598
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200599hi def link cssPseudoClassId PreProc
600hi def link cssPseudoClassLang Constant
601hi def link cssValueLength Number
602hi def link cssValueInteger Number
603hi def link cssValueNumber Number
604hi def link cssValueAngle Number
605hi def link cssValueTime Number
606hi def link cssValueFrequency Number
607hi def link cssFunction Constant
608hi def link cssURL String
609hi def link cssFunctionName Function
610hi def link cssFunctionComma Function
611hi def link cssColor Constant
612hi def link cssIdentifier Function
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100613hi def link cssAtRule Include
614hi def link cssAtKeyword PreProc
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200615hi def link cssImportant Special
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200616hi def link cssCustomProp Special
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200617hi def link cssBraces Function
618hi def link cssBraceError Error
619hi def link cssError Error
620hi def link cssUnicodeEscape Special
621hi def link cssStringQQ String
622hi def link cssStringQ String
623hi def link cssAttributeSelector String
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200624hi def link cssMediaType Special
625hi def link cssMediaComma Normal
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100626hi def link cssAtRuleLogical Statement
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200627hi def link cssMediaProp cssProp
628hi def link cssMediaAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200629hi def link cssPagePseudo PreProc
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100630hi def link cssPageMarginProp cssAtKeyword
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200631hi def link cssPageProp cssProp
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100632hi def link cssKeyFrameProp Constant
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200633hi def link cssFontDescriptor Special
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200634hi def link cssFontDescriptorProp cssProp
635hi def link cssFontDescriptorAttr cssAttr
636hi def link cssUnicodeRange Constant
637hi def link cssClassName Function
638hi def link cssClassNameDot Function
639hi def link cssProp StorageClass
640hi def link cssAttr Constant
641hi def link cssUnitDecorators Number
642hi def link cssNoise Noise
Bram Moolenaar071d4272004-06-13 20:20:40 +0000643
644let b:current_syntax = "css"
645
646if main_syntax == 'css'
647 unlet main_syntax
648endif
649
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200650let &cpo = s:cpo_save
651unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000652
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +0200653" vim: ts=8