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