1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Cascading Style Sheets 3d09acef4SBram Moolenaar" Previous Contributor List: 4*e7b1ea02SBram Moolenaar" Jules Wang <[email protected]> 5d09acef4SBram Moolenaar" Claudio Fleiner <[email protected]> (Maintainer) 6d09acef4SBram Moolenaar" Yeti (Add full CSS2, HTML4 support) 7d09acef4SBram Moolenaar" Nikolai Weibull (Add CSS2 support) 8*e7b1ea02SBram Moolenaar" URL: https://github.com/jsit/css.vim 9*e7b1ea02SBram Moolenaar" Maintainer: Jay Sitter <[email protected]> 1006fe74aeSBram Moolenaar" Last Change: 2019 Jul. 29 11071d4279SBram Moolenaar 1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded 13071d4279SBram Moolenaarif !exists("main_syntax") 1489bcfda6SBram Moolenaar if exists("b:current_syntax") 15071d4279SBram Moolenaar finish 16071d4279SBram Moolenaar endif 17071d4279SBram Moolenaar let main_syntax = 'css' 18e2db695dSBram Moolenaarelseif exists("b:current_syntax") && b:current_syntax == "css" 19e2db695dSBram Moolenaar finish 20071d4279SBram Moolenaarendif 21071d4279SBram Moolenaar 220c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo 230c5fa7d7SBram Moolenaarset cpo&vim 240c5fa7d7SBram Moolenaar 25071d4279SBram Moolenaarsyn case ignore 26071d4279SBram Moolenaar 27f2571c61SBram Moolenaar" HTML4 tags 28f2571c61SBram Moolenaarsyn keyword cssTagName abbr address area a b base 29f2571c61SBram Moolenaarsyn keyword cssTagName bdo blockquote body br button 30f2571c61SBram Moolenaarsyn keyword cssTagName caption cite code col colgroup dd del 31f2571c61SBram Moolenaarsyn keyword cssTagName dfn div dl dt em fieldset form 32f2571c61SBram Moolenaarsyn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i 33f2571c61SBram Moolenaarsyn keyword cssTagName iframe input ins isindex kbd label legend li 34f2571c61SBram Moolenaarsyn keyword cssTagName link map menu meta noscript ol optgroup 35f2571c61SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script small 36f2571c61SBram Moolenaarsyn keyword cssTagName span strong sub sup tbody td 37f2571c61SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr ul u var 38baca7f70SBram Moolenaarsyn keyword cssTagName object svg 39f2571c61SBram Moolenaarsyn match cssTagName /\<select\>\|\<style\>\|\<table\>/ 40d09acef4SBram Moolenaar 41baca7f70SBram Moolenaar" 34 HTML5 tags 42baca7f70SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command data 43baca7f70SBram Moolenaarsyn keyword cssTagName datalist details dialog embed figcaption figure footer 44baca7f70SBram Moolenaarsyn keyword cssTagName header hgroup keygen main mark menuitem meter nav 45d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section 46d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr 47d09acef4SBram Moolenaar 48d09acef4SBram Moolenaar" Tags not supported in HTML5 49f2571c61SBram Moolenaar" acronym applet basefont big center dir 50f2571c61SBram Moolenaar" font frame frameset noframes strike tt 51d09acef4SBram Moolenaar 52071d4279SBram Moolenaarsyn match cssTagName "\*" 53071d4279SBram Moolenaar 54d09acef4SBram Moolenaar" selectors 55baca7f70SBram Moolenaarsyn match cssSelectorOp "[,>+~]" 56d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained 57baca7f70SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ 58071d4279SBram Moolenaar 59d09acef4SBram Moolenaar" .class and #id 60369b6f57SBram Moolenaarsyn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot 61dfb18411SBram Moolenaarsyn match cssClassNameDot contained '\.' 62d09acef4SBram Moolenaar 63a5792f58SBram Moolenaartry 64293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*" 65a5792f58SBram Moolenaarcatch /^.*/ 66a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" 67a5792f58SBram Moolenaarendtry 68a5792f58SBram Moolenaar 69baca7f70SBram Moolenaar" digits 70baca7f70SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators 71baca7f70SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators 72*e7b1ea02SBram Moolenaarsyn 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 7322f1d0e3SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators 74f2571c61SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators 75f2571c61SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators 76f2571c61SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators 77071d4279SBram Moolenaar 783a0d8090SBram Moolenaar" The 16 basic color names 79071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow 803a0d8090SBram Moolenaar 813a0d8090SBram Moolenaar" 130 more color names 823a0d8090SBram Moolenaarsyn keyword cssColor contained aliceblue antiquewhite aquamarine azure 833a0d8090SBram Moolenaarsyn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood 843a0d8090SBram Moolenaarsyn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan 85f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)\>/ 86f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)\>/ 87f2571c61SBram Moolenaarsyn match cssColor contained /\<darkslate\(blue\|gray\|grey\)\>/ 88f2571c61SBram Moolenaarsyn match cssColor contained /\<dark\(turquoise\|violet\)\>/ 893a0d8090SBram Moolenaarsyn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick 903a0d8090SBram Moolenaarsyn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold 913a0d8090SBram Moolenaarsyn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink 923a0d8090SBram Moolenaarsyn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen 933a0d8090SBram Moolenaarsyn keyword cssColor contained lemonchiffon limegreen linen magenta 94f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)\>/ 95f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)\>/ 96f2571c61SBram Moolenaarsyn match cssColor contained /\<light\(slategray\|slategrey\|steelblue\)\>/ 97f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)\>/ 98f2571c61SBram Moolenaarsyn match cssColor contained /\<medium\(slateblue\|springgreen\|turquoise\|violetred\)\>/ 993a0d8090SBram Moolenaarsyn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite 1003a0d8090SBram Moolenaarsyn keyword cssColor contained oldlace olivedrab orange orangered orchid 101f2571c61SBram Moolenaarsyn match cssColor contained /\<pale\(goldenrod\|green\|turquoise\|violetred\)\>/ 1023a0d8090SBram Moolenaarsyn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue 10322f1d0e3SBram Moolenaarsyn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon 10422f1d0e3SBram Moolenaarsyn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue 1053a0d8090SBram Moolenaarsyn keyword cssColor contained slategray slategrey snow springgreen steelblue tan 1063a0d8090SBram Moolenaarsyn keyword cssColor contained thistle tomato turquoise violet wheat 1073a0d8090SBram Moolenaarsyn keyword cssColor contained whitesmoke yellowgreen 1083a0d8090SBram Moolenaar 109baca7f70SBram Moolenaar" FIXME: These are actually case-insensitive too, but (a) specs recommend using 110071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in 111071d4279SBram Moolenaar" all situations 112071d4279SBram Moolenaarsyn case match 113071d4279SBram Moolenaarsyn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background 114071d4279SBram Moolenaarsyn case ignore 115d09acef4SBram Moolenaar 116d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>" 11706fe74aeSBram Moolenaarsyn match cssCustomProp contained "--[a-zA-Z0-9-_]*" 118d09acef4SBram Moolenaar 119071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>" 120f2571c61SBram Moolenaarsyn match cssColor contained "\<currentColor\>" 121071d4279SBram Moolenaarsyn match cssColor contained "\<white\>" 12222f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators 12322f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators 12422f1d0e3SBram Moolenaarsyn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators 125d09acef4SBram Moolenaar 12622f1d0e3SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline 12706fe74aeSBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline 128baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma 129baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction 130baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma 131baca7f70SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma 132*e7b1ea02SBram Moolenaarsyn 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 133baca7f70SBram Moolenaarsyn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at 134baca7f70SBram Moolenaarsyn match cssFunctionComma contained "," 135071d4279SBram Moolenaar 136baca7f70SBram Moolenaar" Common Prop and Attr 137baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all default normal 138baca7f70SBram Moolenaarsyn keyword cssCommonAttr contained top bottom center stretch hidden visible 139*e7b1ea02SBram Moolenaarsyn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>" 140baca7f70SBram Moolenaar"------------------------------------------------ 141baca7f70SBram Moolenaar" CSS Animations 142baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-animations/ 143dfb18411SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>" 144071d4279SBram Moolenaar 145baca7f70SBram Moolenaar" animation-direction attributes 146baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained alternate reverse 147baca7f70SBram Moolenaarsyn match cssAnimationAttr contained "\<alternate-reverse\>" 148d09acef4SBram Moolenaar 149baca7f70SBram Moolenaar" animation-fill-mode attributes 150baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained forwards backwards both 151d09acef4SBram Moolenaar 152baca7f70SBram Moolenaar" animation-play-state attributes 153baca7f70SBram Moolenaarsyn keyword cssAnimationAttr contained running paused 154f2571c61SBram Moolenaar 155f2571c61SBram Moolenaar" animation-iteration-count attributes 156f2571c61SBram Moolenaarsyn keyword cssAnimationAttr contained infinite 157baca7f70SBram Moolenaar"------------------------------------------------ 158baca7f70SBram Moolenaar" CSS Backgrounds and Borders Module Level 3 159baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-background/ 160baca7f70SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(attachment\|clip\|color\|image\|origin\|position\|repeat\|size\)\)\=\>" 161baca7f70SBram Moolenaar" background-attachment attributes 162baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained scroll fixed local 163d09acef4SBram Moolenaar 164baca7f70SBram Moolenaar" background-position attributes 165baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained left center right top bottom 166d09acef4SBram Moolenaar 167baca7f70SBram Moolenaar" background-repeat attributes 168d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>" 169d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" 170d09acef4SBram Moolenaar 171baca7f70SBram Moolenaar" background-size attributes 172baca7f70SBram Moolenaarsyn keyword cssBackgroundAttr contained cover contain 173d09acef4SBram Moolenaar 174baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>" 175baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>" 176baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>" 177baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-decoration-break\>" 178baca7f70SBram Moolenaarsyn match cssBorderProp contained "\<box-shadow\>" 179d09acef4SBram Moolenaar 180baca7f70SBram Moolenaar" border-image attributes 18122f1d0e3SBram Moolenaarsyn keyword cssBorderAttr contained stretch round fill 182d09acef4SBram Moolenaar 183baca7f70SBram Moolenaar" border-style attributes 184baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset 185baca7f70SBram Moolenaar 186baca7f70SBram Moolenaar" border-width attributes 187baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained thin thick medium 188baca7f70SBram Moolenaar 189baca7f70SBram Moolenaar" box-decoration-break attributes 190baca7f70SBram Moolenaarsyn keyword cssBorderAttr contained clone slice 191baca7f70SBram Moolenaar"------------------------------------------------ 192baca7f70SBram Moolenaar 193baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>" 194baca7f70SBram Moolenaarsyn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>" 195d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>" 196dfb18411SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)\=\>" 197d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto 198d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>" 199d09acef4SBram Moolenaar 20006fe74aeSBram Moolenaarsyn keyword cssCascadeProp contained all 20106fe74aeSBram Moolenaarsyn keyword cssCascadeAttr contained initial unset revert 20206fe74aeSBram Moolenaar 203d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity 204d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>" 205d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>" 206d09acef4SBram Moolenaar 207d09acef4SBram Moolenaar 208d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" 209d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height 210d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width 211d09acef4SBram Moolenaar 21222f1d0e3SBram Moolenaar" CSS Flexible Box Layout Module Level 1 21322f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-flexbox/ 21422f1d0e3SBram Moolenaar" CSS Box Alignment Module Level 3 21522f1d0e3SBram Moolenaar" http://www.w3.org/TR/css-align-3/ 21622f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<flex\(-\(direction\|wrap\|flow\|grow\|shrink\|basis\)\)\=\>" 21722f1d0e3SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>" 21822f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxProp contained order 21922f1d0e3SBram Moolenaar 22022f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>" 22122f1d0e3SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center 22222f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<flex\(-\(start\|end\)\)\=\>" 22322f1d0e3SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\)\)\=\>" 224d09acef4SBram Moolenaar 225baca7f70SBram Moolenaar" CSS Fonts Module Level 3 226baca7f70SBram Moolenaar" http://www.w3.org/TR/css-fonts-3/ 227baca7f70SBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>" 228f2571c61SBram Moolenaar 229baca7f70SBram Moolenaar" font attributes 230baca7f70SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption 231071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>" 232071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>" 233baca7f70SBram Moolenaarsyn keyword cssFontAttr contained larger smaller 234baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>" 23522f1d0e3SBram Moolenaarsyn match cssFontAttr contained "\<small-\(caps\|caption\)\>" 236baca7f70SBram Moolenaar" font-family attributes 237baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=serif\>" 238f2571c61SBram Moolenaarsyn 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 239baca7f70SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace 240baca7f70SBram Moolenaar" font-feature-settings attributes 241baca7f70SBram Moolenaarsyn keyword cssFontAttr contained on off 242baca7f70SBram Moolenaar" font-stretch attributes 243baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>" 244baca7f70SBram Moolenaar" font-style attributes 245baca7f70SBram Moolenaarsyn keyword cssFontAttr contained italic oblique 246f2571c61SBram Moolenaar" font-synthesis attributes 247f2571c61SBram Moolenaarsyn keyword cssFontAttr contained weight style 248baca7f70SBram Moolenaar" font-weight attributes 249baca7f70SBram Moolenaarsyn keyword cssFontAttr contained bold bolder lighter 250f2571c61SBram Moolenaar" TODO: font-variant-* attributes 251baca7f70SBram Moolenaar"------------------------------------------------ 252baca7f70SBram Moolenaar 253baca7f70SBram Moolenaar" Webkit specific property/attributes 254baca7f70SBram Moolenaarsyn match cssFontProp contained "\<font-smooth\>" 255baca7f70SBram Moolenaarsyn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>" 256baca7f70SBram Moolenaar 257dfb18411SBram Moolenaar 258dfb18411SBram Moolenaar" CSS Multi-column Layout Module 259dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-multicol/ 260dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>" 261dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>" 262dfb18411SBram Moolenaarsyn keyword cssMultiColumnProp contained columns 263dfb18411SBram Moolenaarsyn keyword cssMultiColumnAttr contained balance medium 26422f1d0e3SBram Moolenaarsyn keyword cssMultiColumnAttr contained always left right page column 26522f1d0e3SBram Moolenaarsyn match cssMultiColumnAttr contained "\<avoid\(-\(page\|column\)\)\=\>" 266dfb18411SBram Moolenaar 267dfb18411SBram Moolenaar" http://www.w3.org/TR/css3-break/#page-break 268dfb18411SBram Moolenaarsyn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" 269dfb18411SBram Moolenaar 27022f1d0e3SBram Moolenaar" http://www.w3.org/TR/SVG11/interact.html 27122f1d0e3SBram Moolenaarsyn match cssInteractProp contained "\<pointer-events\>" 27222f1d0e3SBram Moolenaarsyn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>" 27322f1d0e3SBram Moolenaar 274dfb18411SBram Moolenaar" TODO find following items in w3c docs. 275baca7f70SBram Moolenaarsyn keyword cssGeneratedContentProp contained quotes crop 276d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" 277d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>" 278d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>" 279d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" 280d09acef4SBram Moolenaar 28122f1d0e3SBram Moolenaar" https://www.w3.org/TR/css-grid-1/ 28222f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid\>" 28306fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>" 28422f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>" 28522f1d0e3SBram Moolenaarsyn match cssGridProp contained "\<grid-\(area\|gap\)\>" 28606fe74aeSBram Moolenaarsyn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>" 287d09acef4SBram Moolenaar 288d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>" 289d09acef4SBram Moolenaar 290d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>" 291d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" 292d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" 293d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" 294d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian 295d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside 296d09acef4SBram Moolenaar 297d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left 298d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility 299d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>" 30022f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained block compact grid 301baca7f70SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-group\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" 302d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both 303d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>" 30422f1d0e3SBram Moolenaarsyn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\|grid\|flex\)\)\=\>" 30506fe74aeSBram Moolenaarsyn match cssPositioningAttr contained "\<flow\(-root\)\=\>" 30622f1d0e3SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed subgrid 307d09acef4SBram Moolenaar 30822f1d0e3SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always 309d09acef4SBram Moolenaar 310d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" 311d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always 312d09acef4SBram Moolenaar 313d09acef4SBram Moolenaar 31406fe74aeSBram Moolenaarsyn keyword cssTextProp contained color direction hyphens 315071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" 316baca7f70SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|outline\|warp\|align-last\|size-adjust\|rendering\|stroke\|indent\)\>" 31706fe74aeSBram Moolenaarsyn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>" 318d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>" 319d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>" 32006fe74aeSBram Moolenaarsyn match cssTextProp contained "\<tab-size\>" 321d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>" 322071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>" 323071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" 324d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap 325071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle 326d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase 327baca7f70SBram Moolenaarsyn keyword cssTextAttr contained justify baseline sub super 32806fe74aeSBram Moolenaarsyn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision 329d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>" 330d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>" 331d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent 332d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>" 333d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last 334d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress 335d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>" 336d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>" 33706fe74aeSBram Moolenaarsyn keyword cssTextAttr contained manual 338baca7f70SBram Moolenaarsyn match cssTextAttr contained "\<bidi-override\>" 339071d4279SBram Moolenaar 340d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>" 341d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>" 342d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>" 343071d4279SBram Moolenaar 344baca7f70SBram Moolenaar" CSS Transitions 345baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-transitions/ 346d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>" 347071d4279SBram Moolenaar 348baca7f70SBram Moolenaar" transition-time-function attributes 349baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<linear\(-gradient\)\@!\>" 350baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>" 351baca7f70SBram Moolenaarsyn match cssTransitionAttr contained "\<step\(-start\|-end\)\=\>" 352baca7f70SBram Moolenaar"------------------------------------------------ 353baca7f70SBram Moolenaar" CSS Basic User Interface Module Level 3 (CSS3 UI) 354baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-ui/ 355d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>" 356baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>" 357baca7f70SBram Moolenaar 358baca7f70SBram Moolenaarsyn keyword cssUIProp contained cursor 359baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>" 360baca7f70SBram Moolenaarsyn keyword cssUIAttr contained crosshair help move pointer alias copy 361baca7f70SBram Moolenaarsyn keyword cssUIAttr contained progress wait text cell move 362baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<context-menu\>" 363baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<no-drop\>" 364baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<not-allowed\>" 365baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<all-scroll\>" 366baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<\(vertical-\)\=text\>" 367baca7f70SBram Moolenaarsyn match cssUIAttr contained "\<zoom\(-in\|-out\)\=\>" 368baca7f70SBram Moolenaar 369baca7f70SBram Moolenaarsyn match cssUIProp contained "\<ime-mode\>" 370baca7f70SBram Moolenaarsyn keyword cssUIAttr contained active inactive disabled 371baca7f70SBram Moolenaar 372baca7f70SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>" 373baca7f70SBram Moolenaarsyn match cssUIProp contained "\<outline\(-\(width\|style\|color\|offset\)\)\=\>" 374baca7f70SBram Moolenaarsyn keyword cssUIAttr contained invert 375baca7f70SBram Moolenaar 376baca7f70SBram Moolenaarsyn keyword cssUIProp contained icon resize 377baca7f70SBram Moolenaarsyn keyword cssUIAttr contained both horizontal vertical 378baca7f70SBram Moolenaar 379baca7f70SBram Moolenaarsyn match cssUIProp contained "\<text-overflow\>" 380baca7f70SBram Moolenaarsyn keyword cssUIAttr contained clip ellipsis 381baca7f70SBram Moolenaar 38222f1d0e3SBram Moolenaarsyn match cssUIProp contained "\<image-rendering\>" 38322f1d0e3SBram Moolenaarsyn keyword cssUIAttr contained pixellated 38422f1d0e3SBram Moolenaarsyn match cssUIAttr contained "\<crisp-edges\>" 38522f1d0e3SBram Moolenaar 386baca7f70SBram Moolenaar"------------------------------------------------ 387baca7f70SBram Moolenaar" Webkit/iOS specific attributes 38822f1d0e3SBram Moolenaarsyn match cssUIAttr contained '\<preserve-3d\>' 389baca7f70SBram Moolenaar" IE specific attributes 39022f1d0e3SBram Moolenaarsyn match cssIEUIAttr contained '\<bicubic\>' 391baca7f70SBram Moolenaar 392baca7f70SBram Moolenaar" Webkit/iOS specific properties 39322f1d0e3SBram Moolenaarsyn match cssUIProp contained '\<tap-highlight-color\|user-select\|touch-callout\>' 394baca7f70SBram Moolenaar" IE specific properties 39522f1d0e3SBram Moolenaarsyn match cssIEUIProp contained '\<interpolation-mode\|zoom\|filter\>' 396baca7f70SBram Moolenaar 397baca7f70SBram Moolenaar" Webkit/Firebox specific properties/attributes 398baca7f70SBram Moolenaarsyn keyword cssUIProp contained appearance 399baca7f70SBram Moolenaarsyn keyword cssUIAttr contained window button field icon document menu 400baca7f70SBram Moolenaar 401071d4279SBram Moolenaar 402071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" 403baca7f70SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>" 404071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness 405071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" 406071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent 407071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>" 408071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix 409071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>" 410071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" 411071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind 412baca7f70SBram Moolenaarsyn keyword cssAuralAttr contained below level above lower higher 413baca7f70SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>" 414071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower 415071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous 416071d4279SBram Moolenaar 417baca7f70SBram Moolenaar" mobile text 418baca7f70SBram Moolenaarsyn match cssMobileTextProp contained "\<text-size-adjust\>" 419d09acef4SBram Moolenaar 42006fe74aeSBram Moolenaarsyn keyword cssMediaProp contained width height orientation scan 42122f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio/ 42222f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-pixel-ratio/ 42322f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=device-\(height\|width\)/ 42422f1d0e3SBram Moolenaarsyn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)/ 42522f1d0e3SBram Moolenaarsyn keyword cssMediaAttr contained portrait landscape progressive interlace 42606fe74aeSBram Moolenaarsyn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\<from\|to\>\)\)/ nextgroup=cssDefinition 42722f1d0e3SBram Moolenaarsyn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition 42822f1d0e3SBram Moolenaarsyn keyword cssPageProp contained content size 42922f1d0e3SBram Moolenaarsyn keyword cssPageProp contained orphans widows 43022f1d0e3SBram Moolenaarsyn keyword cssFontDescriptorProp contained src 43122f1d0e3SBram Moolenaarsyn match cssFontDescriptorProp contained "\<unicode-range\>" 43222f1d0e3SBram Moolenaar" unicode-range attributes 43322f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+" 43422f1d0e3SBram Moolenaarsyn match cssFontDescriptorAttr contained "U+\x\+-\x\+" 435baca7f70SBram Moolenaar 436071d4279SBram Moolenaarsyn match cssBraces contained "[{}]" 437071d4279SBram Moolenaarsyn match cssError contained "{@<>" 43806fe74aeSBram Moolenaarsyn 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 439071d4279SBram Moolenaarsyn match cssBraceError "}" 440baca7f70SBram Moolenaarsyn match cssAttrComma "," 441071d4279SBram Moolenaar 442d09acef4SBram Moolenaar" Pseudo class 443baca7f70SBram Moolenaar" http://www.w3.org/TR/css3-selectors/ 444baca7f70SBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn 445baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained link visited active hover before after left right 446baca7f70SBram Moolenaarsyn keyword cssPseudoClassId contained root empty target enable disabled checked invalid 447baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<first-\(line\|letter\)\>" 448baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>" 44906fe74aeSBram Moolenaarsyn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ 450baca7f70SBram Moolenaar" ------------------------------------ 451baca7f70SBram Moolenaar" Vendor specific properties 452baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<selection\>" 453baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<focus\(-inner\)\=\>" 454baca7f70SBram Moolenaarsyn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>" 455baca7f70SBram Moolenaar 456f2571c61SBram Moolenaar" Misc highlight groups 45722f1d0e3SBram Moolenaarsyntax 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 458f2571c61SBram Moolenaarsyntax match cssNoise contained /\(:\|;\|\/\)/ 459071d4279SBram Moolenaar 460d09acef4SBram Moolenaar" Comment 46118441ae2SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell fold 462071d4279SBram Moolenaar 463071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?" 464dfb18411SBram Moolenaarsyn match cssSpecialCharQQ +\\\\\|\\"+ contained 465dfb18411SBram Moolenaarsyn match cssSpecialCharQ +\\\\\|\\'+ contained 466071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ 467071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ 468d09acef4SBram Moolenaar 469d09acef4SBram Moolenaar" Vendor Prefix 47022f1d0e3SBram Moolenaarsyn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-" 471d09acef4SBram Moolenaar 472baca7f70SBram Moolenaar" Various CSS Hack characters 473baca7f70SBram Moolenaar" In earlier versions of IE (6 and 7), one can prefix property names 474baca7f70SBram Moolenaar" with a _ or * to isolate those definitions to particular versions of IE 475baca7f70SBram Moolenaar" This is purely decorative and therefore we assign to the same highlight 476baca7f70SBram Moolenaar" group to cssVendor, for more information: 477baca7f70SBram Moolenaar" http://www.paulirish.com/2009/browser-specific-css-hacks/ 478baca7f70SBram Moolenaarsyn match cssHacks contained /\(_\|*\)/ 479baca7f70SBram Moolenaar 480baca7f70SBram Moolenaar" Attr Enhance 481baca7f70SBram Moolenaar" Some keywords are both Prop and Attr, so we have to handle them 48206fe74aeSBram Moolenaar" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69 48306fe74aeSBram Moolenaarsyn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise 484baca7f70SBram Moolenaar 485baca7f70SBram Moolenaar" Hack for transition 486f2571c61SBram Moolenaar" 'transition' has Props after ':'. 487f2571c61SBram Moolenaarsyn 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 488baca7f70SBram Moolenaar 48906fe74aeSBram Moolenaarsyn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ 49022f1d0e3SBram Moolenaar 49122f1d0e3SBram Moolenaarsyn keyword cssAtRuleLogical only not and contained 49222f1d0e3SBram Moolenaar 49322f1d0e3SBram Moolenaar" @media 49422f1d0e3SBram Moolenaar" Reference: http://www.w3.org/TR/css3-mediaqueries/ 49506fe74aeSBram Moolenaarsyn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment,cssCustomProp,cssFunctionName nextgroup=cssDefinition 49622f1d0e3SBram Moolenaarsyn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained 49722f1d0e3SBram Moolenaar 49822f1d0e3SBram Moolenaar" @page 49922f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-page/ 50022f1d0e3SBram Moolenaarsyn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition 50122f1d0e3SBram Moolenaarsyn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl 50222f1d0e3SBram Moolenaar" @keyframe 50322f1d0e3SBram Moolenaar" http://www.w3.org/TR/css3-animations/#keyframes 50422f1d0e3SBram Moolenaarsyn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition 50522f1d0e3SBram Moolenaar 50622f1d0e3SBram Moolenaarsyn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType 50722f1d0e3SBram Moolenaarsyn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword 50822f1d0e3SBram Moolenaarsyn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword 50922f1d0e3SBram Moolenaar 51022f1d0e3SBram Moolenaar" @supports 51122f1d0e3SBram Moolenaar" https://www.w3.org/TR/css3-conditional/#at-supports 51222f1d0e3SBram Moolenaarsyn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition 51322f1d0e3SBram Moolenaar 514071d4279SBram Moolenaar 515071d4279SBram Moolenaarif main_syntax == "css" 516071d4279SBram Moolenaar syn sync minlines=10 517071d4279SBram Moolenaarendif 518071d4279SBram Moolenaar 519071d4279SBram Moolenaar" Define the default highlighting. 52089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 521071d4279SBram Moolenaar 522f37506f6SBram Moolenaarhi def link cssComment Comment 523f37506f6SBram Moolenaarhi def link cssVendor Comment 524f37506f6SBram Moolenaarhi def link cssHacks Comment 525f37506f6SBram Moolenaarhi def link cssTagName Statement 526f37506f6SBram Moolenaarhi def link cssDeprecated Error 527f37506f6SBram Moolenaarhi def link cssSelectorOp Special 528f37506f6SBram Moolenaarhi def link cssSelectorOp2 Special 529f37506f6SBram Moolenaarhi def link cssAttrComma Special 530d09acef4SBram Moolenaar 531f37506f6SBram Moolenaarhi def link cssAnimationProp cssProp 532f37506f6SBram Moolenaarhi def link cssBackgroundProp cssProp 533f37506f6SBram Moolenaarhi def link cssBorderProp cssProp 534f37506f6SBram Moolenaarhi def link cssBoxProp cssProp 53506fe74aeSBram Moolenaarhi def link cssCascadeProp cssProp 536f37506f6SBram Moolenaarhi def link cssColorProp cssProp 537f37506f6SBram Moolenaarhi def link cssContentForPagedMediaProp cssProp 538f37506f6SBram Moolenaarhi def link cssDimensionProp cssProp 539f37506f6SBram Moolenaarhi def link cssFlexibleBoxProp cssProp 540f37506f6SBram Moolenaarhi def link cssFontProp cssProp 541f37506f6SBram Moolenaarhi def link cssGeneratedContentProp cssProp 542f37506f6SBram Moolenaarhi def link cssGridProp cssProp 543f37506f6SBram Moolenaarhi def link cssHyerlinkProp cssProp 54422f1d0e3SBram Moolenaarhi def link cssInteractProp cssProp 545f37506f6SBram Moolenaarhi def link cssLineboxProp cssProp 546f37506f6SBram Moolenaarhi def link cssListProp cssProp 547f37506f6SBram Moolenaarhi def link cssMarqueeProp cssProp 548f37506f6SBram Moolenaarhi def link cssMultiColumnProp cssProp 549f37506f6SBram Moolenaarhi def link cssPagedMediaProp cssProp 550f37506f6SBram Moolenaarhi def link cssPositioningProp cssProp 551f37506f6SBram Moolenaarhi def link cssPrintProp cssProp 552f37506f6SBram Moolenaarhi def link cssRubyProp cssProp 553f37506f6SBram Moolenaarhi def link cssSpeechProp cssProp 554f37506f6SBram Moolenaarhi def link cssTableProp cssProp 555f37506f6SBram Moolenaarhi def link cssTextProp cssProp 556f37506f6SBram Moolenaarhi def link cssTransformProp cssProp 557f37506f6SBram Moolenaarhi def link cssTransitionProp cssProp 558f37506f6SBram Moolenaarhi def link cssUIProp cssProp 559f37506f6SBram Moolenaarhi def link cssIEUIProp cssProp 560f37506f6SBram Moolenaarhi def link cssAuralProp cssProp 561f37506f6SBram Moolenaarhi def link cssRenderProp cssProp 562f37506f6SBram Moolenaarhi def link cssMobileTextProp cssProp 563d09acef4SBram Moolenaar 564f37506f6SBram Moolenaarhi def link cssAnimationAttr cssAttr 565f37506f6SBram Moolenaarhi def link cssBackgroundAttr cssAttr 566f37506f6SBram Moolenaarhi def link cssBorderAttr cssAttr 567f37506f6SBram Moolenaarhi def link cssBoxAttr cssAttr 568f37506f6SBram Moolenaarhi def link cssContentForPagedMediaAttr cssAttr 569f37506f6SBram Moolenaarhi def link cssDimensionAttr cssAttr 570f37506f6SBram Moolenaarhi def link cssFlexibleBoxAttr cssAttr 571f37506f6SBram Moolenaarhi def link cssFontAttr cssAttr 572f37506f6SBram Moolenaarhi def link cssGeneratedContentAttr cssAttr 573f37506f6SBram Moolenaarhi def link cssGridAttr cssAttr 574f37506f6SBram Moolenaarhi def link cssHyerlinkAttr cssAttr 57522f1d0e3SBram Moolenaarhi def link cssInteractAttr cssAttr 576f37506f6SBram Moolenaarhi def link cssLineboxAttr cssAttr 577f37506f6SBram Moolenaarhi def link cssListAttr cssAttr 578f37506f6SBram Moolenaarhi def link cssMarginAttr cssAttr 579f37506f6SBram Moolenaarhi def link cssMarqueeAttr cssAttr 580f37506f6SBram Moolenaarhi def link cssMultiColumnAttr cssAttr 581f37506f6SBram Moolenaarhi def link cssPaddingAttr cssAttr 582f37506f6SBram Moolenaarhi def link cssPagedMediaAttr cssAttr 583f37506f6SBram Moolenaarhi def link cssPositioningAttr cssAttr 584f37506f6SBram Moolenaarhi def link cssGradientAttr cssAttr 585f37506f6SBram Moolenaarhi def link cssPrintAttr cssAttr 586f37506f6SBram Moolenaarhi def link cssRubyAttr cssAttr 587f37506f6SBram Moolenaarhi def link cssSpeechAttr cssAttr 588f37506f6SBram Moolenaarhi def link cssTableAttr cssAttr 589f37506f6SBram Moolenaarhi def link cssTextAttr cssAttr 590f37506f6SBram Moolenaarhi def link cssTransformAttr cssAttr 591f37506f6SBram Moolenaarhi def link cssTransitionAttr cssAttr 592f37506f6SBram Moolenaarhi def link cssUIAttr cssAttr 593f37506f6SBram Moolenaarhi def link cssIEUIAttr cssAttr 594f37506f6SBram Moolenaarhi def link cssAuralAttr cssAttr 595f37506f6SBram Moolenaarhi def link cssRenderAttr cssAttr 59606fe74aeSBram Moolenaarhi def link cssCascadeAttr cssAttr 597f37506f6SBram Moolenaarhi def link cssCommonAttr cssAttr 598d09acef4SBram Moolenaar 599f37506f6SBram Moolenaarhi def link cssPseudoClassId PreProc 600f37506f6SBram Moolenaarhi def link cssPseudoClassLang Constant 601f37506f6SBram Moolenaarhi def link cssValueLength Number 602f37506f6SBram Moolenaarhi def link cssValueInteger Number 603f37506f6SBram Moolenaarhi def link cssValueNumber Number 604f37506f6SBram Moolenaarhi def link cssValueAngle Number 605f37506f6SBram Moolenaarhi def link cssValueTime Number 606f37506f6SBram Moolenaarhi def link cssValueFrequency Number 607f37506f6SBram Moolenaarhi def link cssFunction Constant 608f37506f6SBram Moolenaarhi def link cssURL String 609f37506f6SBram Moolenaarhi def link cssFunctionName Function 610f37506f6SBram Moolenaarhi def link cssFunctionComma Function 611f37506f6SBram Moolenaarhi def link cssColor Constant 612f37506f6SBram Moolenaarhi def link cssIdentifier Function 61322f1d0e3SBram Moolenaarhi def link cssAtRule Include 61422f1d0e3SBram Moolenaarhi def link cssAtKeyword PreProc 615f37506f6SBram Moolenaarhi def link cssImportant Special 61606fe74aeSBram Moolenaarhi def link cssCustomProp Special 617f37506f6SBram Moolenaarhi def link cssBraces Function 618f37506f6SBram Moolenaarhi def link cssBraceError Error 619f37506f6SBram Moolenaarhi def link cssError Error 620f37506f6SBram Moolenaarhi def link cssUnicodeEscape Special 621f37506f6SBram Moolenaarhi def link cssStringQQ String 622f37506f6SBram Moolenaarhi def link cssStringQ String 623f37506f6SBram Moolenaarhi def link cssAttributeSelector String 624f37506f6SBram Moolenaarhi def link cssMediaType Special 625f37506f6SBram Moolenaarhi def link cssMediaComma Normal 62622f1d0e3SBram Moolenaarhi def link cssAtRuleLogical Statement 627f37506f6SBram Moolenaarhi def link cssMediaProp cssProp 628f37506f6SBram Moolenaarhi def link cssMediaAttr cssAttr 629f37506f6SBram Moolenaarhi def link cssPagePseudo PreProc 63022f1d0e3SBram Moolenaarhi def link cssPageMarginProp cssAtKeyword 631f37506f6SBram Moolenaarhi def link cssPageProp cssProp 63222f1d0e3SBram Moolenaarhi def link cssKeyFrameProp Constant 633f37506f6SBram Moolenaarhi def link cssFontDescriptor Special 634f37506f6SBram Moolenaarhi def link cssFontDescriptorProp cssProp 635f37506f6SBram Moolenaarhi def link cssFontDescriptorAttr cssAttr 636f37506f6SBram Moolenaarhi def link cssUnicodeRange Constant 637f37506f6SBram Moolenaarhi def link cssClassName Function 638f37506f6SBram Moolenaarhi def link cssClassNameDot Function 639f37506f6SBram Moolenaarhi def link cssProp StorageClass 640f37506f6SBram Moolenaarhi def link cssAttr Constant 641f37506f6SBram Moolenaarhi def link cssUnitDecorators Number 642f37506f6SBram Moolenaarhi def link cssNoise Noise 643071d4279SBram Moolenaar 644071d4279SBram Moolenaarlet b:current_syntax = "css" 645071d4279SBram Moolenaar 646071d4279SBram Moolenaarif main_syntax == 'css' 647071d4279SBram Moolenaar unlet main_syntax 648071d4279SBram Moolenaarendif 649071d4279SBram Moolenaar 6500c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save 6510c5fa7d7SBram Moolenaarunlet s:cpo_save 652071d4279SBram Moolenaar" vim: ts=8 653071d4279SBram Moolenaar 654