1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Cascading Style Sheets 3d09acef4SBram Moolenaar" Previous Contributor List: 4d09acef4SBram Moolenaar" Claudio Fleiner <[email protected]> (Maintainer) 5d09acef4SBram Moolenaar" Yeti (Add full CSS2, HTML4 support) 6d09acef4SBram Moolenaar" Nikolai Weibull (Add CSS2 support) 7d09acef4SBram Moolenaar" Maintainer: Jules Wang <[email protected]> 83a0d8090SBram Moolenaar" URL: https://github.com/JulesWang/css.vim 9*e2db695dSBram Moolenaar" Last Change: 2013 Jul 23 10071d4279SBram Moolenaar 11071d4279SBram Moolenaar" For version 5.x: Clear all syntax items 12071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded 13071d4279SBram Moolenaarif !exists("main_syntax") 14071d4279SBram Moolenaar if version < 600 15071d4279SBram Moolenaar syntax clear 16071d4279SBram Moolenaar elseif exists("b:current_syntax") 17071d4279SBram Moolenaar finish 18071d4279SBram Moolenaar endif 19071d4279SBram Moolenaar let main_syntax = 'css' 20*e2db695dSBram Moolenaarelseif exists("b:current_syntax") && b:current_syntax == "css" 21*e2db695dSBram Moolenaar finish 22071d4279SBram Moolenaarendif 23071d4279SBram Moolenaar 240c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo 250c5fa7d7SBram Moolenaarset cpo&vim 260c5fa7d7SBram Moolenaar 27071d4279SBram Moolenaarsyn case ignore 28071d4279SBram Moolenaar 29d09acef4SBram Moolenaar" All HTML4 tags 30071d4279SBram Moolenaarsyn keyword cssTagName abbr acronym address applet area a b base 31071d4279SBram Moolenaarsyn keyword cssTagName basefont bdo big blockquote body br button 32071d4279SBram Moolenaarsyn keyword cssTagName caption center cite code col colgroup dd del 33071d4279SBram Moolenaarsyn keyword cssTagName dfn dir div dl dt em fieldset font form frame 34071d4279SBram Moolenaarsyn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i 35071d4279SBram Moolenaarsyn keyword cssTagName iframe img input ins isindex kbd label legend li 36071d4279SBram Moolenaarsyn keyword cssTagName link map menu meta noframes noscript ol optgroup 37071d4279SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script select small 38d09acef4SBram Moolenaarsyn keyword cssTagName span strike strong style sub sup table tbody td 39071d4279SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr tt ul u var 40d09acef4SBram Moolenaarsyn keyword cssTagName object 41d09acef4SBram Moolenaar 42d09acef4SBram Moolenaar" HTML5 new tags 5*6=30 43d09acef4SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command 44d09acef4SBram Moolenaarsyn keyword cssTagName datalist details embed figcaption figure footer 45d09acef4SBram Moolenaarsyn keyword cssTagName header hgroup keygen mark meter nav 46d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section 47d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr 48d09acef4SBram Moolenaar 49d09acef4SBram Moolenaar" Tags not supported in HTML5 50d09acef4SBram Moolenaarsyn keyword cssDeprecated acronym applet basefont big center dir 51d09acef4SBram Moolenaarsyn keyword cssDeprecated font frame frameset noframes strike tt 52d09acef4SBram Moolenaar 53d09acef4SBram Moolenaar"syn match cssTagName "\<table\>" 54071d4279SBram Moolenaarsyn match cssTagName "\*" 55071d4279SBram Moolenaar 56d09acef4SBram Moolenaar" selectors 57d09acef4SBram Moolenaarsyn match cssSelectorOp "[,>+]" 58d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained 59d09acef4SBram Moolenaar" FIXME: add HTML5 attribute 60071d4279SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ 61071d4279SBram Moolenaar 62d09acef4SBram Moolenaar" .class and #id 63d09acef4SBram Moolenaarsyn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" 64d09acef4SBram Moolenaar 65a5792f58SBram Moolenaartry 66293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*" 67a5792f58SBram Moolenaarcatch /^.*/ 68a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" 69a5792f58SBram Moolenaarendtry 70a5792f58SBram Moolenaar 71d09acef4SBram Moolenaarsyn match cssTagName "@page\>" nextgroup=cssDefinition 72d09acef4SBram Moolenaar" FIXME: use cssVendor here 73d09acef4SBram Moolenaarsyn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition 74071d4279SBram Moolenaar 75071d4279SBram Moolenaarsyn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl 76071d4279SBram Moolenaarsyn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl 77d09acef4SBram Moolenaar"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl 78071d4279SBram Moolenaarsyn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier 79071d4279SBram Moolenaar 80071d4279SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+" 81071d4279SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" 82d09acef4SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)" 83071d4279SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" 84071d4279SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" 85071d4279SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" 86071d4279SBram Moolenaar 87071d4279SBram Moolenaarsyn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl 88071d4279SBram Moolenaarsyn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr 89071d4279SBram Moolenaarsyn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>" 90071d4279SBram Moolenaarsyn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline 91071d4279SBram Moolenaarsyn keyword cssFontDescriptorAttr contained all 92071d4279SBram Moolenaarsyn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend 93071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+" 94071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+\x\+-\x\+" 95071d4279SBram Moolenaar 963a0d8090SBram Moolenaar" The 16 basic color names 97071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow 983a0d8090SBram Moolenaar 993a0d8090SBram Moolenaar" 130 more color names 1003a0d8090SBram Moolenaarsyn keyword cssColor contained aliceblue antiquewhite aquamarine azure 1013a0d8090SBram Moolenaarsyn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood 1023a0d8090SBram Moolenaarsyn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan 1033a0d8090SBram Moolenaarsyn match cssColor contained /dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)/ 1043a0d8090SBram Moolenaarsyn match cssColor contained /dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)/ 1053a0d8090SBram Moolenaarsyn match cssColor contained /darkslate\(blue\|gray\|grey\)/ 1063a0d8090SBram Moolenaarsyn match cssColor contained /dark\(turquoise\|violet\)/ 1073a0d8090SBram Moolenaarsyn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick 1083a0d8090SBram Moolenaarsyn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold 1093a0d8090SBram Moolenaarsyn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink 1103a0d8090SBram Moolenaarsyn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen 1113a0d8090SBram Moolenaarsyn keyword cssColor contained lemonchiffon limegreen linen magenta 1123a0d8090SBram Moolenaarsyn match cssColor contained /light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)/ 1133a0d8090SBram Moolenaarsyn match cssColor contained /light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)/ 1143a0d8090SBram Moolenaarsyn match cssColor contained /light\(slategray\|slategrey\|steelblue\)/ 1153a0d8090SBram Moolenaarsyn match cssColor contained /medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)/ 1163a0d8090SBram Moolenaarsyn match cssColor contained /medium\(slateblue\|springgreen\|turquoise\|violetred\)/ 1173a0d8090SBram Moolenaarsyn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite 1183a0d8090SBram Moolenaarsyn keyword cssColor contained oldlace olivedrab orange orangered orchid 1193a0d8090SBram Moolenaarsyn match cssColor contained /pale\(goldenrod\|green\|turquoise\|violetred\)/ 1203a0d8090SBram Moolenaarsyn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue 1213a0d8090SBram Moolenaarsyn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown 1223a0d8090SBram Moolenaarsyn keyword cssColor contained seagreen seashell sienna skyblue slateblue 1233a0d8090SBram Moolenaarsyn keyword cssColor contained slategray slategrey snow springgreen steelblue tan 1243a0d8090SBram Moolenaarsyn keyword cssColor contained thistle tomato turquoise violet wheat 1253a0d8090SBram Moolenaarsyn keyword cssColor contained whitesmoke yellowgreen 1263a0d8090SBram Moolenaar 127071d4279SBram Moolenaar" FIXME: These are actually case-insentivie too, but (a) specs recommend using 128071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in 129071d4279SBram Moolenaar" all situations 130071d4279SBram Moolenaarsyn case match 131071d4279SBram 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 132071d4279SBram Moolenaarsyn case ignore 133d09acef4SBram Moolenaar 134d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>" 135d09acef4SBram Moolenaar 136071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>" 137071d4279SBram Moolenaarsyn match cssColor contained "\<white\>" 138071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" 139071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" 140d09acef4SBram Moolenaar 141071d4279SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend 142d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend 143d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend 144d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend 145d09acef4SBram 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 146071d4279SBram Moolenaar 147d09acef4SBram Moolenaar" Prop and Attr 148d09acef4SBram Moolenaar" Reference: http://www.w3schools.com/cssref/default.asp 149d09acef4SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all 150071d4279SBram Moolenaarsyn keyword cssCommonAttr contained top bottom 151071d4279SBram Moolenaarsyn keyword cssCommonAttr contained medium normal 152071d4279SBram Moolenaar 153d09acef4SBram Moolenaar 154d09acef4SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>" 155d09acef4SBram Moolenaar 156d09acef4SBram Moolenaar 157d09acef4SBram Moolenaarsyn keyword cssAnimationAttr contained infinite alternate paused running 158d09acef4SBram Moolenaar" bugfix: escape linear-gradient 159d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>" 160d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>" 161d09acef4SBram Moolenaar 162d09acef4SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>" 163d09acef4SBram Moolenaarsyn keyword cssBackgroundAttr contained center fixed over contain 164d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>" 165d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" 166d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>" 167d09acef4SBram Moolenaar 168d09acef4SBram Moolenaar 169d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>" 170d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>" 171d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>" 172d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>" 173d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-radius\>" 174d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained thin thick medium 175d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset 176d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained hidden visible scroll collapse 177d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained stretch round 178d09acef4SBram Moolenaar 179d09acef4SBram Moolenaar 180d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>" 181d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)=\>" 182d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto 183d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>" 184d09acef4SBram Moolenaar 185d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity 186d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>" 187d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>" 188d09acef4SBram Moolenaar 189d09acef4SBram Moolenaar 190d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" 191d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height 192d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width 193d09acef4SBram Moolenaar 194d09acef4SBram Moolenaar" shadow and sizing are in other property groups 195d09acef4SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>" 196d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained start end center baseline stretch 197d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained normal reverse 198d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained single mulitple 199d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained horizontal 200d09acef4SBram Moolenaar" bugfix: escape vertial-align 201d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" 202d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>" 203d09acef4SBram Moolenaar 204d09acef4SBram Moolenaar 20559c0395eSBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>" 206071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=\<serif\>" 20759c0395eSBram Moolenaarsyn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>" 208071d4279SBram Moolenaarsyn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>" 209071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>" 210071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>" 211071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>" 212071d4279SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace italic oblique 213d09acef4SBram Moolenaarsyn keyword cssFontAttr contained bold bolder light lighter larger smaller 214d09acef4SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption 215d09acef4SBram Moolenaarsyn keyword cssFontAttr contained large smaller larger narrower wider 216d09acef4SBram Moolenaarsyn keyword cssFontAttr contained Courier Arial Georgia Times 217071d4279SBram Moolenaar 218071d4279SBram Moolenaar 219d09acef4SBram Moolenaarsyn keyword cssGeneratedContentProp contained content quotes crop 220d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" 221d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>" 222d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>" 223d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" 224d09acef4SBram Moolenaar 225d09acef4SBram Moolenaar 226d09acef4SBram Moolenaarsyn match cssGridProp contained "\<grid-\(columns\|rows\)\>" 227d09acef4SBram Moolenaar 228d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>" 229d09acef4SBram Moolenaar 230d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>" 231d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" 232d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" 233d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" 234d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian 235d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside 236d09acef4SBram Moolenaar 237d09acef4SBram Moolenaar 238d09acef4SBram Moolenaarsyn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>" 239d09acef4SBram Moolenaar 240d09acef4SBram Moolenaarsyn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>" 241d09acef4SBram Moolenaar 242d09acef4SBram Moolenaar 243d09acef4SBram Moolenaarsyn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>" 244d09acef4SBram Moolenaar 245d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left 246d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility 247d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>" 248d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained block inline compact 249d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" 250d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both 251d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>" 252d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<inline-\(block\|table\)\>" 253d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed 254d09acef4SBram Moolenaar 255d09acef4SBram Moolenaarsyn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" 256d09acef4SBram Moolenaarsyn keyword cssPrintProp contained orphans widows 257d09acef4SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always avoid 258d09acef4SBram Moolenaar 259d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" 260d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always 261d09acef4SBram Moolenaar 262d09acef4SBram Moolenaar 263d09acef4SBram Moolenaarsyn keyword cssTextProp contained color direction 264071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" 265d09acef4SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>" 266d09acef4SBram Moolenaarsyn match cssTextProp contained "\<word-\(break\|\wrap\)\>" 267d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>" 268d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>" 269d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>" 270071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>" 271071d4279SBram Moolenaarsyn match cssTextAttr contained "\<text-indent\>" 272071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" 273d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap 274071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle 275d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase 276d09acef4SBram Moolenaarsyn keyword cssTextAttr contained center justify baseline sub super 277d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>" 278d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>" 279d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent 280d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>" 281d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last 282d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress 283d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>" 284d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>" 285d09acef4SBram Moolenaarsyn keyword cssTextAttr contained hyphenate 286071d4279SBram Moolenaar 287071d4279SBram Moolenaar 288d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>" 289d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>" 290d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>" 291071d4279SBram Moolenaar 292d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>" 293071d4279SBram Moolenaar 294d09acef4SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>" 295d09acef4SBram Moolenaarsyn match cssUIProp contained "\<outline-offset\>" 296d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>" 297d09acef4SBram Moolenaarsyn keyword cssUIProp contained appearance icon resize 298d09acef4SBram Moolenaarsyn keyword cssUIAttr contained window button menu field 299071d4279SBram Moolenaar 300071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" 301071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>" 302071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness 303071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" 304071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent 305071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>" 306071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix 307071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>" 308071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" 309071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind 310071d4279SBram Moolenaarsyn keyword cssAuralAttr contained below level above higher 311071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>" 312071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower 313071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous 314d09acef4SBram Moolenaarsyn match cssAuralAttr contained "\<lower\>" 315071d4279SBram Moolenaar 316d09acef4SBram Moolenaar" cursor 317d09acef4SBram Moolenaarsyn keyword cssUIProp contained cursor 318d09acef4SBram Moolenaarsyn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>" 319d09acef4SBram Moolenaarsyn keyword cssUIAttr contained crosshair default help move pointer 320d09acef4SBram Moolenaarsyn keyword cssUIAttr contained progress wait 321d09acef4SBram Moolenaar 322d09acef4SBram Moolenaar" FIXME: I could not find them in reference 323d09acef4SBram Moolenaarsyn keyword cssUIAttr contained invert maker size zoom 324d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<run-in\>" 325d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<text-rendering\>" 326d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<font-smoothing\>" 327d09acef4SBram Moolenaarsyn match cssRenderProp contained "\<marker-offset\>" 328d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<bidi-override\>" 329d09acef4SBram Moolenaar 330071d4279SBram Moolenaar 331071d4279SBram Moolenaar" FIXME: This allows cssMediaBlock before the semicolon, which is wrong. 332071d4279SBram Moolenaarsyn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType 333071d4279SBram Moolenaarsyn match cssBraces contained "[{}]" 334071d4279SBram Moolenaarsyn match cssError contained "{@<>" 335d09acef4SBram 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 336071d4279SBram Moolenaarsyn match cssBraceError "}" 337071d4279SBram Moolenaar 338d09acef4SBram Moolenaar" Pseudo class 339f1568ecaSBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape 340d09acef4SBram Moolenaarsyn keyword cssPseudoClassId link visited active hover focus before after left right lang 341071d4279SBram Moolenaarsyn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>" 342d09acef4SBram Moolenaar" FIXME: handle functions. 343d09acef4SBram Moolenaar"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")" 344d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>" 345d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>" 346d09acef4SBram Moolenaarsyn keyword cssPseudoClassId root empty target enable disabled checked not invalid 347d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "::\(-moz-\)\=selection" 348071d4279SBram Moolenaar 349d09acef4SBram Moolenaar" Comment 35029c34723SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell 351d09acef4SBram Moolenaarsyn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell 352071d4279SBram Moolenaar 353071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?" 354071d4279SBram Moolenaarsyn match cssSpecialCharQQ +\\"+ contained 355071d4279SBram Moolenaarsyn match cssSpecialCharQ +\\'+ contained 356071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ 357071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ 358d09acef4SBram Moolenaar 359d09acef4SBram Moolenaar" Vendor Prefix 360d09acef4SBram Moolenaarsyn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)" 361d09acef4SBram Moolenaar 362071d4279SBram Moolenaar 363071d4279SBram Moolenaarif main_syntax == "css" 364071d4279SBram Moolenaar syn sync minlines=10 365071d4279SBram Moolenaarendif 366071d4279SBram Moolenaar 367071d4279SBram Moolenaar" Define the default highlighting. 368071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already 369071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet 370071d4279SBram Moolenaarif version >= 508 || !exists("did_css_syn_inits") 371071d4279SBram Moolenaar if version < 508 372071d4279SBram Moolenaar let did_css_syn_inits = 1 373071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 374071d4279SBram Moolenaar else 375071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 376071d4279SBram Moolenaar endif 377071d4279SBram Moolenaar 378071d4279SBram Moolenaar HiLink cssComment Comment 379d09acef4SBram Moolenaar HiLink cssVendor Comment 380071d4279SBram Moolenaar HiLink cssTagName Statement 381d09acef4SBram Moolenaar HiLink cssDeprecated Error 382071d4279SBram Moolenaar HiLink cssSelectorOp Special 383071d4279SBram Moolenaar HiLink cssSelectorOp2 Special 384d09acef4SBram Moolenaar 385d09acef4SBram Moolenaar HiLink cssAnimationProp StorageClass 386d09acef4SBram Moolenaar HiLink cssBackgroundProp StorageClass 387d09acef4SBram Moolenaar HiLink cssBorderOutlineProp StorageClass 388071d4279SBram Moolenaar HiLink cssBoxProp StorageClass 389d09acef4SBram Moolenaar HiLink cssColorProp StorageClass 390d09acef4SBram Moolenaar HiLink cssContentForPagedMediaProp StorageClass 391d09acef4SBram Moolenaar HiLink cssDimensionProp StorageClass 392d09acef4SBram Moolenaar HiLink cssFlexibleBoxProp StorageClass 393d09acef4SBram Moolenaar HiLink cssFontProp StorageClass 394d09acef4SBram Moolenaar HiLink cssGeneratedContentProp StorageClass 395d09acef4SBram Moolenaar HiLink cssGridProp StorageClass 396d09acef4SBram Moolenaar HiLink cssHyerlinkProp StorageClass 397d09acef4SBram Moolenaar HiLink cssLineboxProp StorageClass 398d09acef4SBram Moolenaar HiLink cssListProp StorageClass 399d09acef4SBram Moolenaar HiLink cssMarginProp StorageClass 400d09acef4SBram Moolenaar HiLink cssMarqueeProp StorageClass 401d09acef4SBram Moolenaar HiLink cssMultiColumnProp StorageClass 402d09acef4SBram Moolenaar HiLink cssPaddingProp StorageClass 403d09acef4SBram Moolenaar HiLink cssPagedMediaProp StorageClass 404d09acef4SBram Moolenaar HiLink cssPositioningProp StorageClass 405d09acef4SBram Moolenaar HiLink cssPrintProp StorageClass 406d09acef4SBram Moolenaar HiLink cssRubyProp StorageClass 407d09acef4SBram Moolenaar HiLink cssSpeechProp StorageClass 408d09acef4SBram Moolenaar HiLink cssTableProp StorageClass 409d09acef4SBram Moolenaar HiLink cssTextProp StorageClass 410d09acef4SBram Moolenaar HiLink cssTransformProp StorageClass 411d09acef4SBram Moolenaar HiLink cssTransitionProp StorageClass 412d09acef4SBram Moolenaar HiLink cssUIProp StorageClass 413071d4279SBram Moolenaar HiLink cssAuralProp StorageClass 414071d4279SBram Moolenaar HiLink cssRenderProp StorageClass 415d09acef4SBram Moolenaar 416d09acef4SBram Moolenaar HiLink cssAnimationAttr Type 417d09acef4SBram Moolenaar HiLink cssBackgroundAttr Type 418d09acef4SBram Moolenaar HiLink cssBorderOutlineAttr Type 419071d4279SBram Moolenaar HiLink cssBoxAttr Type 420d09acef4SBram Moolenaar HiLink cssColorAttr Type 421d09acef4SBram Moolenaar HiLink cssContentForPagedMediaAttr Type 422d09acef4SBram Moolenaar HiLink cssDimensionAttr Type 423d09acef4SBram Moolenaar HiLink cssFlexibleBoxAttr Type 424d09acef4SBram Moolenaar HiLink cssFontAttr Type 425071d4279SBram Moolenaar HiLink cssGeneratedContentAttr Type 426d09acef4SBram Moolenaar HiLink cssGridAttr Type 427d09acef4SBram Moolenaar HiLink cssHyerlinkAttr Type 428d09acef4SBram Moolenaar HiLink cssLineboxAttr Type 429d09acef4SBram Moolenaar HiLink cssListAttr Type 430d09acef4SBram Moolenaar HiLink cssMarginAttr Type 431d09acef4SBram Moolenaar HiLink cssMarqueeAttr Type 432d09acef4SBram Moolenaar HiLink cssMultiColumnAttr Type 433d09acef4SBram Moolenaar HiLink cssPaddingAttr Type 434d09acef4SBram Moolenaar HiLink cssPagedMediaAttr Type 435d09acef4SBram Moolenaar HiLink cssPositioningAttr Type 436d09acef4SBram Moolenaar HiLink cssPrintAttr Type 437d09acef4SBram Moolenaar HiLink cssRubyAttr Type 438d09acef4SBram Moolenaar HiLink cssSpeechAttr Type 439071d4279SBram Moolenaar HiLink cssTableAttr Type 440d09acef4SBram Moolenaar HiLink cssTextAttr Type 441d09acef4SBram Moolenaar HiLink cssTransformAttr Type 442d09acef4SBram Moolenaar HiLink cssTransitionAttr Type 443071d4279SBram Moolenaar HiLink cssUIAttr Type 444d09acef4SBram Moolenaar HiLink cssAuralAttr Type 445d09acef4SBram Moolenaar HiLink cssRenderAttr Type 446071d4279SBram Moolenaar HiLink cssCommonAttr Type 447d09acef4SBram Moolenaar 448071d4279SBram Moolenaar HiLink cssPseudoClassId PreProc 449071d4279SBram Moolenaar HiLink cssPseudoClassLang Constant 450071d4279SBram Moolenaar HiLink cssValueLength Number 451071d4279SBram Moolenaar HiLink cssValueInteger Number 452071d4279SBram Moolenaar HiLink cssValueNumber Number 453071d4279SBram Moolenaar HiLink cssValueAngle Number 454071d4279SBram Moolenaar HiLink cssValueTime Number 455071d4279SBram Moolenaar HiLink cssValueFrequency Number 456071d4279SBram Moolenaar HiLink cssFunction Constant 457071d4279SBram Moolenaar HiLink cssURL String 458071d4279SBram Moolenaar HiLink cssFunctionName Function 459071d4279SBram Moolenaar HiLink cssColor Constant 460071d4279SBram Moolenaar HiLink cssIdentifier Function 461071d4279SBram Moolenaar HiLink cssInclude Include 462071d4279SBram Moolenaar HiLink cssImportant Special 463071d4279SBram Moolenaar HiLink cssBraces Function 464071d4279SBram Moolenaar HiLink cssBraceError Error 465071d4279SBram Moolenaar HiLink cssError Error 466071d4279SBram Moolenaar HiLink cssInclude Include 467071d4279SBram Moolenaar HiLink cssUnicodeEscape Special 468071d4279SBram Moolenaar HiLink cssStringQQ String 469071d4279SBram Moolenaar HiLink cssStringQ String 470071d4279SBram Moolenaar HiLink cssMedia Special 471071d4279SBram Moolenaar HiLink cssMediaType Special 472071d4279SBram Moolenaar HiLink cssMediaComma Normal 473071d4279SBram Moolenaar HiLink cssFontDescriptor Special 474071d4279SBram Moolenaar HiLink cssFontDescriptorFunction Constant 475071d4279SBram Moolenaar HiLink cssFontDescriptorProp StorageClass 476071d4279SBram Moolenaar HiLink cssFontDescriptorAttr Type 477071d4279SBram Moolenaar HiLink cssUnicodeRange Constant 47829c34723SBram Moolenaar HiLink cssClassName Function 479071d4279SBram Moolenaar delcommand HiLink 480071d4279SBram Moolenaarendif 481071d4279SBram Moolenaar 482071d4279SBram Moolenaarlet b:current_syntax = "css" 483071d4279SBram Moolenaar 484071d4279SBram Moolenaarif main_syntax == 'css' 485071d4279SBram Moolenaar unlet main_syntax 486071d4279SBram Moolenaarendif 487071d4279SBram Moolenaar 4880c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save 4890c5fa7d7SBram Moolenaarunlet s:cpo_save 490071d4279SBram Moolenaar" vim: ts=8 491071d4279SBram Moolenaar 492