blob: 67ad1ea33521ce32301b52219ec705afd13f85cd [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 Moolenaar22863042021-10-16 15:23:36 +01005" Claudio Fleiner <claudio@fleiner.com>
Bram Moolenaard09acef2012-09-21 14:54:30 +02006" Yeti (Add full CSS2, HTML4 support)
7" Nikolai Weibull (Add CSS2 support)
Bram Moolenaar22863042021-10-16 15:23:36 +01008" URL: https://github.com/vim-language-dept/css-syntax.vim
Bram Moolenaare7b1ea02020-08-07 19:54:59 +02009" Maintainer: Jay Sitter <jay@jaysitter.com>
Bram Moolenaar22863042021-10-16 15:23:36 +010010" Last Change: 2021 Oct 15
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
Bram Moolenaar22863042021-10-16 15:23:36 +010026" Add dash to allowed keyword characters.
27syn iskeyword @,48-57,_,192-255,-
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
Bram Moolenaarf2571c62015-06-09 19:44:55 +020029" HTML4 tags
30syn keyword cssTagName abbr address area a b base
31syn keyword cssTagName bdo blockquote body br button
32syn keyword cssTagName caption cite code col colgroup dd del
33syn keyword cssTagName dfn div dl dt em fieldset form
34syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i
35syn keyword cssTagName iframe input ins isindex kbd label legend li
36syn keyword cssTagName link map menu meta noscript ol optgroup
Bram Moolenaar22863042021-10-16 15:23:36 +010037syn keyword cssTagName option p param picture pre q s samp script small
Bram Moolenaarf2571c62015-06-09 19:44:55 +020038syn keyword cssTagName span strong sub sup tbody td
39syn keyword cssTagName textarea tfoot th thead title tr ul u var
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020040syn keyword cssTagName object svg
Bram Moolenaarf2571c62015-06-09 19:44:55 +020041syn match cssTagName /\<select\>\|\<style\>\|\<table\>/
Bram Moolenaard09acef2012-09-21 14:54:30 +020042
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020043" 34 HTML5 tags
44syn keyword cssTagName article aside audio bdi canvas command data
45syn keyword cssTagName datalist details dialog embed figcaption figure footer
46syn keyword cssTagName header hgroup keygen main mark menuitem meter nav
Bram Moolenaard09acef2012-09-21 14:54:30 +020047syn keyword cssTagName output progress rt rp ruby section
48syn keyword cssTagName source summary time track video wbr
49
50" Tags not supported in HTML5
Bram Moolenaarf2571c62015-06-09 19:44:55 +020051" acronym applet basefont big center dir
52" font frame frameset noframes strike tt
Bram Moolenaard09acef2012-09-21 14:54:30 +020053
Bram Moolenaar071d4272004-06-13 20:20:40 +000054syn match cssTagName "\*"
55
Bram Moolenaard09acef2012-09-21 14:54:30 +020056" selectors
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020057syn match cssSelectorOp "[,>+~]"
Bram Moolenaard09acef2012-09-21 14:54:30 +020058syn match cssSelectorOp2 "[~|^$*]\?=" contained
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020059syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaard09acef2012-09-21 14:54:30 +020061" .class and #id
Bram Moolenaar369b6f52017-01-17 12:22:32 +010062syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot
Bram Moolenaardfb18412013-12-11 18:53:29 +010063syn match cssClassNameDot contained '\.'
Bram Moolenaard09acef2012-09-21 14:54:30 +020064
Bram Moolenaara5792f52005-11-23 21:25:05 +000065try
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +020066syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
Bram Moolenaara5792f52005-11-23 21:25:05 +000067catch /^.*/
68syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
69endtry
70
Bram Moolenaarbaca7f72013-09-22 14:42:24 +020071" digits
72syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators
73syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators
Bram Moolenaare7b1ea02020-08-07 19:54:59 +020074syn 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 +010075syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators
Bram Moolenaarf2571c62015-06-09 19:44:55 +020076syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators
77syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators
78syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020080" The 16 basic color names
Bram Moolenaar071d4272004-06-13 20:20:40 +000081syn 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 +020082
83" 130 more color names
84syn keyword cssColor contained aliceblue antiquewhite aquamarine azure
85syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
86syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
Bram Moolenaarf2571c62015-06-09 19:44:55 +020087syn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/
88syn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/
89syn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/
90syn match cssColor contained /\<dark\(turquoise\|violet\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020091syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
92syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
93syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
94syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
95syn keyword cssColor contained lemonchiffon limegreen linen magenta
Bram Moolenaarf2571c62015-06-09 19:44:55 +020096syn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/
97syn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/
98syn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/
99syn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/
100syn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200101syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
102syn keyword cssColor contained oldlace olivedrab orange orangered orchid
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200103syn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200104syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100105syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon
106syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200107syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
108syn keyword cssColor contained thistle tomato turquoise violet wheat
109syn keyword cssColor contained whitesmoke yellowgreen
110
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200111" FIXME: These are actually case-insensitive too, but (a) specs recommend using
Bram Moolenaar071d4272004-06-13 20:20:40 +0000112" mixed-case (b) it's hard to highlight the word `Background' correctly in
113" all situations
114syn case match
115syn 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
116syn case ignore
Bram Moolenaard09acef2012-09-21 14:54:30 +0200117
118syn match cssImportant contained "!\s*important\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200119syn match cssCustomProp contained "--[a-zA-Z0-9-_]*"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200120
Bram Moolenaar071d4272004-06-13 20:20:40 +0000121syn match cssColor contained "\<transparent\>"
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200122syn match cssColor contained "\<currentColor\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000123syn match cssColor contained "\<white\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100124syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators
125syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators
126syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators
Bram Moolenaard09acef2012-09-21 14:54:30 +0200127
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100128syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200129syn 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 +0200130syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma
131syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction
Bram Moolenaar22863042021-10-16 15:23:36 +0100132syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200133syn 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 +0200134syn 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 +0200135syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at
136syn match cssFunctionComma contained ","
Bram Moolenaar071d4272004-06-13 20:20:40 +0000137
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200138" Common Prop and Attr
139syn keyword cssCommonAttr contained auto none inherit all default normal
140syn keyword cssCommonAttr contained top bottom center stretch hidden visible
Bram Moolenaare7b1ea02020-08-07 19:54:59 +0200141syn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200142"------------------------------------------------
143" CSS Animations
144" http://www.w3.org/TR/css3-animations/
Bram Moolenaardfb18412013-12-11 18:53:29 +0100145syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200147" animation-direction attributes
148syn keyword cssAnimationAttr contained alternate reverse
149syn match cssAnimationAttr contained "\<alternate-reverse\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200150
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200151" animation-fill-mode attributes
152syn keyword cssAnimationAttr contained forwards backwards both
Bram Moolenaard09acef2012-09-21 14:54:30 +0200153
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200154" animation-play-state attributes
155syn keyword cssAnimationAttr contained running paused
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200156
157" animation-iteration-count attributes
158syn keyword cssAnimationAttr contained infinite
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200159"------------------------------------------------
160" CSS Backgrounds and Borders Module Level 3
161" http://www.w3.org/TR/css3-background/
162syn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>"
163" background-attachment attributes
164syn keyword cssBackgroundAttr contained scroll fixed local
Bram Moolenaard09acef2012-09-21 14:54:30 +0200165
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200166" background-position attributes
167syn keyword cssBackgroundAttr contained left center right top bottom
Bram Moolenaard09acef2012-09-21 14:54:30 +0200168
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200169" background-repeat attributes
Bram Moolenaard09acef2012-09-21 14:54:30 +0200170syn match cssBackgroundAttr contained "\<no-repeat\>"
171syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200172
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200173" background-size attributes
174syn keyword cssBackgroundAttr contained cover contain
Bram Moolenaard09acef2012-09-21 14:54:30 +0200175
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200176syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
177syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>"
178syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
179syn match cssBorderProp contained "\<box-decoration-break\>"
180syn match cssBorderProp contained "\<box-shadow\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200181
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200182" border-image attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100183syn keyword cssBorderAttr contained stretch round fill
Bram Moolenaard09acef2012-09-21 14:54:30 +0200184
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200185" border-style attributes
186syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
187
188" border-width attributes
189syn keyword cssBorderAttr contained thin thick medium
190
191" box-decoration-break attributes
192syn keyword cssBorderAttr contained clone slice
193"------------------------------------------------
194
195syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
196syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200197syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
Bram Moolenaardfb18412013-12-11 18:53:29 +0100198syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200199syn keyword cssBoxAttr contained visible hidden scroll auto
200syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
201
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200202syn keyword cssCascadeProp contained all
203syn keyword cssCascadeAttr contained initial unset revert
204
Bram Moolenaard09acef2012-09-21 14:54:30 +0200205syn keyword cssColorProp contained opacity
206syn match cssColorProp contained "\<color-profile\>"
207syn match cssColorProp contained "\<rendering-intent\>"
208
209
210syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
211syn keyword cssDimensionProp contained height
212syn keyword cssDimensionProp contained width
213
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100214" CSS Flexible Box Layout Module Level 1
215" http://www.w3.org/TR/css3-flexbox/
216" CSS Box Alignment Module Level 3
217" http://www.w3.org/TR/css-align-3/
218syn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>"
219syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>"
220syn keyword cssFlexibleBoxProp contained order
221
222syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>"
223syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center
224syn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>"
Bram Moolenaar22863042021-10-16 15:23:36 +0100225syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\|evenly\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200226
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200227" CSS Fonts Module Level 3
228" http://www.w3.org/TR/css-fonts-3/
229syn 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 +0200230
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200231" font attributes
232syn keyword cssFontAttr contained icon menu caption
Bram Moolenaar071d4272004-06-13 20:20:40 +0000233syn match cssFontAttr contained "\<message-box\>"
234syn match cssFontAttr contained "\<status-bar\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200235syn keyword cssFontAttr contained larger smaller
236syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100237syn match cssFontAttr contained "\<small-\(caps\|caption\)\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200238" font-family attributes
Bram Moolenaar22863042021-10-16 15:23:36 +0100239syn keyword cssFontAttr contained sans-serif serif 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 Moolenaar22863042021-10-16 15:23:36 +0100286syn match cssGridProp contained "\<gap\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200287syn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200288
289syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
290
291syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
292syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
293syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
294syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
295syn keyword cssListAttr contained disc circle square hebrew armenian georgian
296syn keyword cssListAttr contained inside outside
297
Bram Moolenaar22863042021-10-16 15:23:36 +0100298" object-fit https://www.w3.org/TR/css-images-3/#the-object-fit
299syn match cssObjectProp contained "\<object-\(fit\|position\)\>"
300syn keyword cssObjectAttr contained fill contain cover scale-down
301
Bram Moolenaard09acef2012-09-21 14:54:30 +0200302syn keyword cssPositioningProp contained bottom clear clip display float left
303syn keyword cssPositioningProp contained position right top visibility
304syn match cssPositioningProp contained "\<z-index\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100305syn keyword cssPositioningAttr contained block compact grid
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200306syn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200307syn keyword cssPositioningAttr contained left right both
308syn match cssPositioningAttr contained "\<list-item\>"
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100309syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200310syn match cssPositioningAttr contained "\<flow\(-root\)\=\>"
Bram Moolenaar22863042021-10-16 15:23:36 +0100311syn keyword cssPositioningAttr contained static relative absolute fixed subgrid sticky
Bram Moolenaard09acef2012-09-21 14:54:30 +0200312
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100313syn keyword cssPrintAttr contained landscape portrait crop cross always
Bram Moolenaard09acef2012-09-21 14:54:30 +0200314
315syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
316syn keyword cssTableAttr contained fixed collapse separate show hide once always
317
318
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200319syn keyword cssTextProp contained color direction hyphens
Bram Moolenaar071d4272004-06-13 20:20:40 +0000320syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200321syn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200322syn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200323syn match cssTextProp contained "\<white-space\>"
324syn match cssTextProp contained "\<hanging-punctuation\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200325syn match cssTextProp contained "\<tab-size\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200326syn match cssTextProp contained "\<punctuation-trim\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000327syn match cssTextAttr contained "\<line-through\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000328syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200329syn keyword cssTextAttr contained ltr rtl embed nowrap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000330syn keyword cssTextAttr contained underline overline blink sub super middle
Bram Moolenaard09acef2012-09-21 14:54:30 +0200331syn keyword cssTextAttr contained capitalize uppercase lowercase
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200332syn keyword cssTextAttr contained justify baseline sub super
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200333syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision
Bram Moolenaard09acef2012-09-21 14:54:30 +0200334syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
335syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
336syn keyword cssTextAttr contained start end adjacent
337syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
338syn keyword cssTextAttr contained distribute kashida first last
339syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
340syn match cssTextAttr contained "\<break-all\>"
341syn match cssTextAttr contained "\<break-word\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200342syn keyword cssTextAttr contained manual
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200343syn match cssTextAttr contained "\<bidi-override\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000344
Bram Moolenaard09acef2012-09-21 14:54:30 +0200345syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
346syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
347syn match cssTransformProp contained "\<backface-visibility\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000348
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200349" CSS Transitions
350" http://www.w3.org/TR/css3-transitions/
Bram Moolenaard09acef2012-09-21 14:54:30 +0200351syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000352
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200353" transition-time-function attributes
354syn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>"
355syn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
356syn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>"
357"------------------------------------------------
358" CSS Basic User Interface Module Level 3 (CSS3 UI)
359" http://www.w3.org/TR/css3-ui/
Bram Moolenaard09acef2012-09-21 14:54:30 +0200360syn match cssUIProp contained "\<box-sizing\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200361syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>"
362
363syn keyword cssUIProp contained cursor
364syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>"
365syn keyword cssUIAttr contained crosshair help move pointer alias copy
366syn keyword cssUIAttr contained progress wait text cell move
367syn match cssUIAttr contained "\<context-menu\>"
368syn match cssUIAttr contained "\<no-drop\>"
369syn match cssUIAttr contained "\<not-allowed\>"
370syn match cssUIAttr contained "\<all-scroll\>"
371syn match cssUIAttr contained "\<\(vertical-\)\=text\>"
372syn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>"
373
374syn match cssUIProp contained "\<ime-mode\>"
375syn keyword cssUIAttr contained active inactive disabled
376
377syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
378syn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>"
379syn keyword cssUIAttr contained invert
380
381syn keyword cssUIProp contained icon resize
382syn keyword cssUIAttr contained both horizontal vertical
383
384syn match cssUIProp contained "\<text-overflow\>"
385syn keyword cssUIAttr contained clip ellipsis
386
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100387syn match cssUIProp contained "\<image-rendering\>"
388syn keyword cssUIAttr contained pixellated
389syn match cssUIAttr contained "\<crisp-edges\>"
390
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200391"------------------------------------------------
392" Webkit/iOS specific attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100393syn match cssUIAttr contained '\<preserve-3d\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200394" IE specific attributes
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100395syn match cssIEUIAttr contained '\<bicubic\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200396
397" Webkit/iOS specific properties
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100398syn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200399" IE specific properties
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100400syn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>'
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200401
402" Webkit/Firebox specific properties/attributes
403syn keyword cssUIProp contained appearance
404syn keyword cssUIAttr contained window button field icon document menu
405
Bram Moolenaar071d4272004-06-13 20:20:40 +0000406
407syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200408syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000409syn keyword cssAuralProp contained volume during azimuth elevation stress richness
410syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
411syn keyword cssAuralAttr contained silent
412syn match cssAuralAttr contained "\<spell-out\>"
413syn keyword cssAuralAttr contained non mix
414syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
415syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
416syn keyword cssAuralAttr contained leftwards rightwards behind
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200417syn keyword cssAuralAttr contained below level above lower higher
418syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000419syn keyword cssAuralAttr contained faster slower
420syn keyword cssAuralAttr contained male female child code digits continuous
421
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200422" mobile text
423syn match cssMobileTextProp contained "\<text-size-adjust\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200424
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200425syn keyword cssMediaProp contained width height orientation scan
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100426syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/
427syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/
428syn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/
429syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/
430syn keyword cssMediaAttr contained portrait landscape progressive interlace
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200431syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100432syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition
433syn keyword cssPageProp contained content size
434syn keyword cssPageProp contained orphans widows
435syn keyword cssFontDescriptorProp contained src
436syn match cssFontDescriptorProp contained "\<unicode-range\>"
437" unicode-range attributes
438syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+"
439syn match cssFontDescriptorAttr contained "U+\x\+-\x\+"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200440
Bram Moolenaar071d4272004-06-13 20:20:40 +0000441syn match cssBraces contained "[{}]"
442syn match cssError contained "{@<>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200443syn 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 +0000444syn match cssBraceError "}"
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200445syn match cssAttrComma ","
Bram Moolenaar071d4272004-06-13 20:20:40 +0000446
Bram Moolenaard09acef2012-09-21 14:54:30 +0200447" Pseudo class
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200448" http://www.w3.org/TR/css3-selectors/
449syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn
450syn keyword cssPseudoClassId contained link visited active hover before after left right
451syn keyword cssPseudoClassId contained root empty target enable disabled checked invalid
452syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>"
453syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>"
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200454syn 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 +0200455" ------------------------------------
456" Vendor specific properties
457syn match cssPseudoClassId contained "\<selection\>"
458syn match cssPseudoClassId contained "\<focus\(-inner\)\=\>"
459syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
460
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200461" Misc highlight groups
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100462syntax 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 +0200463syntax match cssNoise contained /\(:\|;\|\/\)/
Bram Moolenaar071d4272004-06-13 20:20:40 +0000464
Bram Moolenaard09acef2012-09-21 14:54:30 +0200465" Comment
Bram Moolenaar18441ae2013-09-24 23:30:38 +0200466syn region cssComment start="/\*" end="\*/" contains=@Spell fold
Bram Moolenaar071d4272004-06-13 20:20:40 +0000467
468syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
Bram Moolenaardfb18412013-12-11 18:53:29 +0100469syn match cssSpecialCharQQ +\\\\\|\\"+ contained
470syn match cssSpecialCharQ +\\\\\|\\'+ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +0000471syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
472syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
Bram Moolenaard09acef2012-09-21 14:54:30 +0200473
474" Vendor Prefix
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100475syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200476
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200477" Various CSS Hack characters
478" In earlier versions of IE (6 and 7), one can prefix property names
479" with a _ or * to isolate those definitions to particular versions of IE
480" This is purely decorative and therefore we assign to the same highlight
481" group to cssVendor, for more information:
482" http://www.paulirish.com/2009/browser-specific-css-hacks/
483syn match cssHacks contained /\(_\|*\)/
484
Bram Moolenaarbaca7f72013-09-22 14:42:24 +0200485" Attr Enhance
486" Some keywords are both Prop and Attr, so we have to handle them
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200487" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69
488syn 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 +0200489
490" Hack for transition
Bram Moolenaarf2571c62015-06-09 19:44:55 +0200491" 'transition' has Props after ':'.
492syn 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 +0200493
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200494syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100495
496syn keyword cssAtRuleLogical only not and contained
497
498" @media
499" Reference: http://www.w3.org/TR/css3-mediaqueries/
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200500syn 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 +0100501syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained
502
503" @page
504" http://www.w3.org/TR/css3-page/
505syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition
506syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
507" @keyframe
508" http://www.w3.org/TR/css3-animations/#keyframes
509syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition
510
511syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType
512syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
513syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword
514
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100515" @supports
516" https://www.w3.org/TR/css3-conditional/#at-supports
517syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition
518
Bram Moolenaar071d4272004-06-13 20:20:40 +0000519
520if main_syntax == "css"
521 syn sync minlines=10
522endif
523
524" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200525" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000526
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200527hi def link cssComment Comment
528hi def link cssVendor Comment
529hi def link cssHacks Comment
530hi def link cssTagName Statement
531hi def link cssDeprecated Error
532hi def link cssSelectorOp Special
533hi def link cssSelectorOp2 Special
534hi def link cssAttrComma Special
Bram Moolenaard09acef2012-09-21 14:54:30 +0200535
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200536hi def link cssAnimationProp cssProp
537hi def link cssBackgroundProp cssProp
538hi def link cssBorderProp cssProp
539hi def link cssBoxProp cssProp
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200540hi def link cssCascadeProp cssProp
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200541hi def link cssColorProp cssProp
542hi def link cssContentForPagedMediaProp cssProp
543hi def link cssDimensionProp cssProp
544hi def link cssFlexibleBoxProp cssProp
545hi def link cssFontProp cssProp
546hi def link cssGeneratedContentProp cssProp
547hi def link cssGridProp cssProp
548hi def link cssHyerlinkProp cssProp
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100549hi def link cssInteractProp cssProp
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200550hi def link cssLineboxProp cssProp
551hi def link cssListProp cssProp
552hi def link cssMarqueeProp cssProp
553hi def link cssMultiColumnProp cssProp
554hi def link cssPagedMediaProp cssProp
555hi def link cssPositioningProp cssProp
Bram Moolenaar22863042021-10-16 15:23:36 +0100556hi def link cssObjectProp cssProp
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200557hi def link cssPrintProp cssProp
558hi def link cssRubyProp cssProp
559hi def link cssSpeechProp cssProp
560hi def link cssTableProp cssProp
561hi def link cssTextProp cssProp
562hi def link cssTransformProp cssProp
563hi def link cssTransitionProp cssProp
564hi def link cssUIProp cssProp
565hi def link cssIEUIProp cssProp
566hi def link cssAuralProp cssProp
567hi def link cssRenderProp cssProp
568hi def link cssMobileTextProp cssProp
Bram Moolenaard09acef2012-09-21 14:54:30 +0200569
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200570hi def link cssAnimationAttr cssAttr
571hi def link cssBackgroundAttr cssAttr
572hi def link cssBorderAttr cssAttr
573hi def link cssBoxAttr cssAttr
574hi def link cssContentForPagedMediaAttr cssAttr
575hi def link cssDimensionAttr cssAttr
576hi def link cssFlexibleBoxAttr cssAttr
577hi def link cssFontAttr cssAttr
578hi def link cssGeneratedContentAttr cssAttr
579hi def link cssGridAttr cssAttr
580hi def link cssHyerlinkAttr cssAttr
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100581hi def link cssInteractAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200582hi def link cssLineboxAttr cssAttr
583hi def link cssListAttr cssAttr
584hi def link cssMarginAttr cssAttr
585hi def link cssMarqueeAttr cssAttr
586hi def link cssMultiColumnAttr cssAttr
587hi def link cssPaddingAttr cssAttr
588hi def link cssPagedMediaAttr cssAttr
589hi def link cssPositioningAttr cssAttr
Bram Moolenaar22863042021-10-16 15:23:36 +0100590hi def link cssObjectAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200591hi def link cssGradientAttr cssAttr
592hi def link cssPrintAttr cssAttr
593hi def link cssRubyAttr cssAttr
594hi def link cssSpeechAttr cssAttr
595hi def link cssTableAttr cssAttr
596hi def link cssTextAttr cssAttr
597hi def link cssTransformAttr cssAttr
598hi def link cssTransitionAttr cssAttr
599hi def link cssUIAttr cssAttr
600hi def link cssIEUIAttr cssAttr
601hi def link cssAuralAttr cssAttr
602hi def link cssRenderAttr cssAttr
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200603hi def link cssCascadeAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200604hi def link cssCommonAttr cssAttr
Bram Moolenaard09acef2012-09-21 14:54:30 +0200605
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200606hi def link cssPseudoClassId PreProc
607hi def link cssPseudoClassLang Constant
608hi def link cssValueLength Number
609hi def link cssValueInteger Number
610hi def link cssValueNumber Number
611hi def link cssValueAngle Number
612hi def link cssValueTime Number
613hi def link cssValueFrequency Number
614hi def link cssFunction Constant
615hi def link cssURL String
616hi def link cssFunctionName Function
617hi def link cssFunctionComma Function
618hi def link cssColor Constant
619hi def link cssIdentifier Function
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100620hi def link cssAtRule Include
621hi def link cssAtKeyword PreProc
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200622hi def link cssImportant Special
Bram Moolenaar06fe74a2019-08-31 16:20:32 +0200623hi def link cssCustomProp Special
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200624hi def link cssBraces Function
625hi def link cssBraceError Error
626hi def link cssError Error
627hi def link cssUnicodeEscape Special
628hi def link cssStringQQ String
629hi def link cssStringQ String
630hi def link cssAttributeSelector String
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200631hi def link cssMediaType Special
632hi def link cssMediaComma Normal
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100633hi def link cssAtRuleLogical Statement
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200634hi def link cssMediaProp cssProp
635hi def link cssMediaAttr cssAttr
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200636hi def link cssPagePseudo PreProc
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100637hi def link cssPageMarginProp cssAtKeyword
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200638hi def link cssPageProp cssProp
Bram Moolenaar22f1d0e2018-02-27 14:53:30 +0100639hi def link cssKeyFrameProp Constant
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200640hi def link cssFontDescriptor Special
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200641hi def link cssFontDescriptorProp cssProp
642hi def link cssFontDescriptorAttr cssAttr
643hi def link cssUnicodeRange Constant
644hi def link cssClassName Function
645hi def link cssClassNameDot Function
646hi def link cssProp StorageClass
647hi def link cssAttr Constant
648hi def link cssUnitDecorators Number
649hi def link cssNoise Noise
Bram Moolenaar071d4272004-06-13 20:20:40 +0000650
651let b:current_syntax = "css"
652
653if main_syntax == 'css'
654 unlet main_syntax
655endif
656
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200657let &cpo = s:cpo_save
658unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000659
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +0200660" vim: ts=8