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]> 8*0c5fa7d7SBram Moolenaar" Last Change: 2012 Oct 05 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 21*0c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo 22*0c5fa7d7SBram Moolenaarset cpo&vim 23*0c5fa7d7SBram Moolenaar 24071d4279SBram Moolenaarsyn case ignore 25071d4279SBram Moolenaar 26d09acef4SBram Moolenaar" All HTML4 tags 27071d4279SBram Moolenaarsyn keyword cssTagName abbr acronym address applet area a b base 28071d4279SBram Moolenaarsyn keyword cssTagName basefont bdo big blockquote body br button 29071d4279SBram Moolenaarsyn keyword cssTagName caption center cite code col colgroup dd del 30071d4279SBram Moolenaarsyn keyword cssTagName dfn dir div dl dt em fieldset font form frame 31071d4279SBram Moolenaarsyn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i 32071d4279SBram Moolenaarsyn keyword cssTagName iframe img input ins isindex kbd label legend li 33071d4279SBram Moolenaarsyn keyword cssTagName link map menu meta noframes noscript ol optgroup 34071d4279SBram Moolenaarsyn keyword cssTagName option p param pre q s samp script select small 35d09acef4SBram Moolenaarsyn keyword cssTagName span strike strong style sub sup table tbody td 36071d4279SBram Moolenaarsyn keyword cssTagName textarea tfoot th thead title tr tt ul u var 37d09acef4SBram Moolenaarsyn keyword cssTagName object 38d09acef4SBram Moolenaar 39d09acef4SBram Moolenaar" HTML5 new tags 5*6=30 40d09acef4SBram Moolenaarsyn keyword cssTagName article aside audio bdi canvas command 41d09acef4SBram Moolenaarsyn keyword cssTagName datalist details embed figcaption figure footer 42d09acef4SBram Moolenaarsyn keyword cssTagName header hgroup keygen mark meter nav 43d09acef4SBram Moolenaarsyn keyword cssTagName output progress rt rp ruby section 44d09acef4SBram Moolenaarsyn keyword cssTagName source summary time track video wbr 45d09acef4SBram Moolenaar 46d09acef4SBram Moolenaar" Tags not supported in HTML5 47d09acef4SBram Moolenaarsyn keyword cssDeprecated acronym applet basefont big center dir 48d09acef4SBram Moolenaarsyn keyword cssDeprecated font frame frameset noframes strike tt 49d09acef4SBram Moolenaar 50d09acef4SBram Moolenaar"syn match cssTagName "\<table\>" 51071d4279SBram Moolenaarsyn match cssTagName "\*" 52071d4279SBram Moolenaar 53d09acef4SBram Moolenaar" selectors 54d09acef4SBram Moolenaarsyn match cssSelectorOp "[,>+]" 55d09acef4SBram Moolenaarsyn match cssSelectorOp2 "[~|^$*]\?=" contained 56d09acef4SBram Moolenaar" FIXME: add HTML5 attribute 57071d4279SBram Moolenaarsyn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ 58071d4279SBram Moolenaar 59d09acef4SBram Moolenaar" .class and #id 60d09acef4SBram Moolenaarsyn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" 61d09acef4SBram Moolenaar 62a5792f58SBram Moolenaartry 63293ee4d4SBram Moolenaarsyn match cssIdentifier "#[A-Za-z�-�_@][A-Za-z�-�0-9_@-]*" 64a5792f58SBram Moolenaarcatch /^.*/ 65a5792f58SBram Moolenaarsyn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" 66a5792f58SBram Moolenaarendtry 67a5792f58SBram Moolenaar 68d09acef4SBram Moolenaarsyn match cssTagName "@page\>" nextgroup=cssDefinition 69d09acef4SBram Moolenaar" FIXME: use cssVendor here 70d09acef4SBram Moolenaarsyn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition 71071d4279SBram Moolenaar 72071d4279SBram Moolenaarsyn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl 73071d4279SBram Moolenaarsyn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl 74d09acef4SBram Moolenaar"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl 75071d4279SBram Moolenaarsyn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier 76071d4279SBram Moolenaar 77071d4279SBram Moolenaarsyn match cssValueInteger contained "[-+]\=\d\+" 78071d4279SBram Moolenaarsyn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" 79d09acef4SBram Moolenaarsyn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)" 80071d4279SBram Moolenaarsyn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" 81071d4279SBram Moolenaarsyn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" 82071d4279SBram Moolenaarsyn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" 83071d4279SBram Moolenaar 84071d4279SBram Moolenaarsyn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl 85071d4279SBram Moolenaarsyn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr 86071d4279SBram Moolenaarsyn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>" 87071d4279SBram Moolenaarsyn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline 88071d4279SBram Moolenaarsyn keyword cssFontDescriptorAttr contained all 89071d4279SBram Moolenaarsyn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend 90071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+" 91071d4279SBram Moolenaarsyn match cssUnicodeRange contained "U+\x\+-\x\+" 92071d4279SBram Moolenaar 93071d4279SBram Moolenaarsyn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow 94071d4279SBram Moolenaar" FIXME: These are actually case-insentivie too, but (a) specs recommend using 95071d4279SBram Moolenaar" mixed-case (b) it's hard to highlight the word `Background' correctly in 96071d4279SBram Moolenaar" all situations 97071d4279SBram Moolenaarsyn case match 98071d4279SBram 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 99071d4279SBram Moolenaarsyn case ignore 100d09acef4SBram Moolenaar 101d09acef4SBram Moolenaarsyn match cssImportant contained "!\s*important\>" 102d09acef4SBram Moolenaar 103071d4279SBram Moolenaarsyn match cssColor contained "\<transparent\>" 104071d4279SBram Moolenaarsyn match cssColor contained "\<white\>" 105071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{3\}\>" 106071d4279SBram Moolenaarsyn match cssColor contained "#[0-9A-Fa-f]\{6\}\>" 107d09acef4SBram Moolenaar 108071d4279SBram Moolenaarsyn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend 109d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend 110d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend 111d09acef4SBram Moolenaarsyn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend 112d09acef4SBram 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 113071d4279SBram Moolenaar 114d09acef4SBram Moolenaar" Prop and Attr 115d09acef4SBram Moolenaar" Reference: http://www.w3schools.com/cssref/default.asp 116d09acef4SBram Moolenaarsyn keyword cssCommonAttr contained auto none inherit all 117071d4279SBram Moolenaarsyn keyword cssCommonAttr contained top bottom 118071d4279SBram Moolenaarsyn keyword cssCommonAttr contained medium normal 119071d4279SBram Moolenaar 120d09acef4SBram Moolenaar 121d09acef4SBram Moolenaarsyn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>" 122d09acef4SBram Moolenaar 123d09acef4SBram Moolenaar 124d09acef4SBram Moolenaarsyn keyword cssAnimationAttr contained infinite alternate paused running 125d09acef4SBram Moolenaar" bugfix: escape linear-gradient 126d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>" 127d09acef4SBram Moolenaarsyn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>" 128d09acef4SBram Moolenaar 129d09acef4SBram Moolenaarsyn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>" 130d09acef4SBram Moolenaarsyn keyword cssBackgroundAttr contained center fixed over contain 131d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<no-repeat\>" 132d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>" 133d09acef4SBram Moolenaarsyn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>" 134d09acef4SBram Moolenaar 135d09acef4SBram Moolenaar 136d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>" 137d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>" 138d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>" 139d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>" 140d09acef4SBram Moolenaarsyn match cssBorderOutlineProp contained "\<border-radius\>" 141d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained thin thick medium 142d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset 143d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained hidden visible scroll collapse 144d09acef4SBram Moolenaarsyn keyword cssBorderOutlineAttr contained stretch round 145d09acef4SBram Moolenaar 146d09acef4SBram Moolenaar 147d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>" 148d09acef4SBram Moolenaarsyn match cssBoxProp contained "\<rotation\(-point\)=\>" 149d09acef4SBram Moolenaarsyn keyword cssBoxAttr contained visible hidden scroll auto 150d09acef4SBram Moolenaarsyn match cssBoxAttr contained "\<no-\(display\|content\)\>" 151d09acef4SBram Moolenaar 152d09acef4SBram Moolenaarsyn keyword cssColorProp contained opacity 153d09acef4SBram Moolenaarsyn match cssColorProp contained "\<color-profile\>" 154d09acef4SBram Moolenaarsyn match cssColorProp contained "\<rendering-intent\>" 155d09acef4SBram Moolenaar 156d09acef4SBram Moolenaar 157d09acef4SBram Moolenaarsyn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" 158d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained height 159d09acef4SBram Moolenaarsyn keyword cssDimensionProp contained width 160d09acef4SBram Moolenaar 161d09acef4SBram Moolenaar" shadow and sizing are in other property groups 162d09acef4SBram Moolenaarsyn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>" 163d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained start end center baseline stretch 164d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained normal reverse 165d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained single mulitple 166d09acef4SBram Moolenaarsyn keyword cssFlexibleBoxAttr contained horizontal 167d09acef4SBram Moolenaar" bugfix: escape vertial-align 168d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>" 169d09acef4SBram Moolenaarsyn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>" 170d09acef4SBram Moolenaar 171d09acef4SBram Moolenaar 17259c0395eSBram Moolenaarsyn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>" 173071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(sans-\)\=\<serif\>" 17459c0395eSBram Moolenaarsyn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>" 175071d4279SBram Moolenaarsyn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>" 176071d4279SBram Moolenaarsyn match cssFontAttr contained "\<message-box\>" 177071d4279SBram Moolenaarsyn match cssFontAttr contained "\<status-bar\>" 178071d4279SBram Moolenaarsyn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>" 179071d4279SBram Moolenaarsyn keyword cssFontAttr contained cursive fantasy monospace italic oblique 180d09acef4SBram Moolenaarsyn keyword cssFontAttr contained bold bolder light lighter larger smaller 181d09acef4SBram Moolenaarsyn keyword cssFontAttr contained icon menu caption 182d09acef4SBram Moolenaarsyn keyword cssFontAttr contained large smaller larger narrower wider 183d09acef4SBram Moolenaarsyn keyword cssFontAttr contained Courier Arial Georgia Times 184071d4279SBram Moolenaar 185071d4279SBram Moolenaar 186d09acef4SBram Moolenaarsyn keyword cssGeneratedContentProp contained content quotes crop 187d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>" 188d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<move-to\>" 189d09acef4SBram Moolenaarsyn match cssGeneratedContentProp contained "\<page-policy\>" 190d09acef4SBram Moolenaarsyn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" 191d09acef4SBram Moolenaar 192d09acef4SBram Moolenaar 193d09acef4SBram Moolenaarsyn match cssGridProp contained "\<grid-\(columns\|rows\)\>" 194d09acef4SBram Moolenaar 195d09acef4SBram Moolenaarsyn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>" 196d09acef4SBram Moolenaar 197d09acef4SBram Moolenaarsyn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>" 198d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" 199d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" 200d09acef4SBram Moolenaarsyn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" 201d09acef4SBram Moolenaarsyn keyword cssListAttr contained disc circle square hebrew armenian georgian 202d09acef4SBram Moolenaarsyn keyword cssListAttr contained inside outside 203d09acef4SBram Moolenaar 204d09acef4SBram Moolenaar 205d09acef4SBram Moolenaarsyn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>" 206d09acef4SBram Moolenaar 207d09acef4SBram Moolenaarsyn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>" 208d09acef4SBram Moolenaar 209d09acef4SBram Moolenaar 210d09acef4SBram Moolenaarsyn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>" 211d09acef4SBram Moolenaar 212d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained bottom clear clip display float left 213d09acef4SBram Moolenaarsyn keyword cssPositioningProp contained position right top visibility 214d09acef4SBram Moolenaarsyn match cssPositioningProp contained "\<z-index\>" 215d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained block inline compact 216d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>" 217d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained left right both 218d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<list-item\>" 219d09acef4SBram Moolenaarsyn match cssPositioningAttr contained "\<inline-\(block\|table\)\>" 220d09acef4SBram Moolenaarsyn keyword cssPositioningAttr contained static relative absolute fixed 221d09acef4SBram Moolenaar 222d09acef4SBram Moolenaarsyn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>" 223d09acef4SBram Moolenaarsyn keyword cssPrintProp contained orphans widows 224d09acef4SBram Moolenaarsyn keyword cssPrintAttr contained landscape portrait crop cross always avoid 225d09acef4SBram Moolenaar 226d09acef4SBram Moolenaarsyn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" 227d09acef4SBram Moolenaarsyn keyword cssTableAttr contained fixed collapse separate show hide once always 228d09acef4SBram Moolenaar 229d09acef4SBram Moolenaar 230d09acef4SBram Moolenaarsyn keyword cssTextProp contained color direction 231071d4279SBram Moolenaarsyn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" 232d09acef4SBram Moolenaarsyn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>" 233d09acef4SBram Moolenaarsyn match cssTextProp contained "\<word-\(break\|\wrap\)\>" 234d09acef4SBram Moolenaarsyn match cssTextProp contained "\<white-space\>" 235d09acef4SBram Moolenaarsyn match cssTextProp contained "\<hanging-punctuation\>" 236d09acef4SBram Moolenaarsyn match cssTextProp contained "\<punctuation-trim\>" 237071d4279SBram Moolenaarsyn match cssTextAttr contained "\<line-through\>" 238071d4279SBram Moolenaarsyn match cssTextAttr contained "\<text-indent\>" 239071d4279SBram Moolenaarsyn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" 240d09acef4SBram Moolenaarsyn keyword cssTextAttr contained ltr rtl embed nowrap 241071d4279SBram Moolenaarsyn keyword cssTextAttr contained underline overline blink sub super middle 242d09acef4SBram Moolenaarsyn keyword cssTextAttr contained capitalize uppercase lowercase 243d09acef4SBram Moolenaarsyn keyword cssTextAttr contained center justify baseline sub super 244d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>" 245d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<\(allow\|force\)-end\>" 246d09acef4SBram Moolenaarsyn keyword cssTextAttr contained start end adjacent 247d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>" 248d09acef4SBram Moolenaarsyn keyword cssTextAttr contained distribute kashida first last 249d09acef4SBram Moolenaarsyn keyword cssTextAttr contained clip ellipsis unrestricted suppress 250d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-all\>" 251d09acef4SBram Moolenaarsyn match cssTextAttr contained "\<break-word\>" 252d09acef4SBram Moolenaarsyn keyword cssTextAttr contained hyphenate 253071d4279SBram Moolenaar 254071d4279SBram Moolenaar 255d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>" 256d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<perspective\(-origin\)\=\>" 257d09acef4SBram Moolenaarsyn match cssTransformProp contained "\<backface-visibility\>" 258071d4279SBram Moolenaar 259d09acef4SBram Moolenaarsyn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>" 260071d4279SBram Moolenaar 261d09acef4SBram Moolenaarsyn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>" 262d09acef4SBram Moolenaarsyn match cssUIProp contained "\<outline-offset\>" 263d09acef4SBram Moolenaarsyn match cssUIProp contained "\<box-sizing\>" 264d09acef4SBram Moolenaarsyn keyword cssUIProp contained appearance icon resize 265d09acef4SBram Moolenaarsyn keyword cssUIAttr contained window button menu field 266071d4279SBram Moolenaar 267071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" 268071d4279SBram Moolenaarsyn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>" 269071d4279SBram Moolenaarsyn keyword cssAuralProp contained volume during azimuth elevation stress richness 270071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" 271071d4279SBram Moolenaarsyn keyword cssAuralAttr contained silent 272071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<spell-out\>" 273071d4279SBram Moolenaarsyn keyword cssAuralAttr contained non mix 274071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(left\|right\)-side\>" 275071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" 276071d4279SBram Moolenaarsyn keyword cssAuralAttr contained leftwards rightwards behind 277071d4279SBram Moolenaarsyn keyword cssAuralAttr contained below level above higher 278071d4279SBram Moolenaarsyn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>" 279071d4279SBram Moolenaarsyn keyword cssAuralAttr contained faster slower 280071d4279SBram Moolenaarsyn keyword cssAuralAttr contained male female child code digits continuous 281d09acef4SBram Moolenaarsyn match cssAuralAttr contained "\<lower\>" 282071d4279SBram Moolenaar 283d09acef4SBram Moolenaar" cursor 284d09acef4SBram Moolenaarsyn keyword cssUIProp contained cursor 285d09acef4SBram Moolenaarsyn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>" 286d09acef4SBram Moolenaarsyn keyword cssUIAttr contained crosshair default help move pointer 287d09acef4SBram Moolenaarsyn keyword cssUIAttr contained progress wait 288d09acef4SBram Moolenaar 289d09acef4SBram Moolenaar" FIXME: I could not find them in reference 290d09acef4SBram Moolenaarsyn keyword cssUIAttr contained invert maker size zoom 291d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<run-in\>" 292d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<text-rendering\>" 293d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<font-smoothing\>" 294d09acef4SBram Moolenaarsyn match cssRenderProp contained "\<marker-offset\>" 295d09acef4SBram Moolenaarsyn match cssRenderAttr contained "\<bidi-override\>" 296d09acef4SBram Moolenaar 297071d4279SBram Moolenaar 298071d4279SBram Moolenaar" FIXME: This allows cssMediaBlock before the semicolon, which is wrong. 299071d4279SBram Moolenaarsyn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType 300071d4279SBram Moolenaarsyn match cssBraces contained "[{}]" 301071d4279SBram Moolenaarsyn match cssError contained "{@<>" 302d09acef4SBram 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 303071d4279SBram Moolenaarsyn match cssBraceError "}" 304071d4279SBram Moolenaar 305d09acef4SBram Moolenaar" Pseudo class 306f1568ecaSBram Moolenaarsyn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape 307d09acef4SBram Moolenaarsyn keyword cssPseudoClassId link visited active hover focus before after left right lang 308071d4279SBram Moolenaarsyn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>" 309d09acef4SBram Moolenaar" FIXME: handle functions. 310d09acef4SBram Moolenaar"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")" 311d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>" 312d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>" 313d09acef4SBram Moolenaarsyn keyword cssPseudoClassId root empty target enable disabled checked not invalid 314d09acef4SBram Moolenaarsyn match cssPseudoClassId contained "::\(-moz-\)\=selection" 315071d4279SBram Moolenaar 316d09acef4SBram Moolenaar" Comment 31729c34723SBram Moolenaarsyn region cssComment start="/\*" end="\*/" contains=@Spell 318d09acef4SBram Moolenaarsyn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell 319071d4279SBram Moolenaar 320071d4279SBram Moolenaarsyn match cssUnicodeEscape "\\\x\{1,6}\s\?" 321071d4279SBram Moolenaarsyn match cssSpecialCharQQ +\\"+ contained 322071d4279SBram Moolenaarsyn match cssSpecialCharQ +\\'+ contained 323071d4279SBram Moolenaarsyn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ 324071d4279SBram Moolenaarsyn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ 325d09acef4SBram Moolenaar 326d09acef4SBram Moolenaar" Vendor Prefix 327d09acef4SBram Moolenaarsyn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)" 328d09acef4SBram Moolenaar 329071d4279SBram Moolenaar 330071d4279SBram Moolenaarif main_syntax == "css" 331071d4279SBram Moolenaar syn sync minlines=10 332071d4279SBram Moolenaarendif 333071d4279SBram Moolenaar 334071d4279SBram Moolenaar" Define the default highlighting. 335071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already 336071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet 337071d4279SBram Moolenaarif version >= 508 || !exists("did_css_syn_inits") 338071d4279SBram Moolenaar if version < 508 339071d4279SBram Moolenaar let did_css_syn_inits = 1 340071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 341071d4279SBram Moolenaar else 342071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 343071d4279SBram Moolenaar endif 344071d4279SBram Moolenaar 345071d4279SBram Moolenaar HiLink cssComment Comment 346d09acef4SBram Moolenaar HiLink cssVendor Comment 347071d4279SBram Moolenaar HiLink cssTagName Statement 348d09acef4SBram Moolenaar HiLink cssDeprecated Error 349071d4279SBram Moolenaar HiLink cssSelectorOp Special 350071d4279SBram Moolenaar HiLink cssSelectorOp2 Special 351d09acef4SBram Moolenaar 352d09acef4SBram Moolenaar HiLink cssAnimationProp StorageClass 353d09acef4SBram Moolenaar HiLink cssBackgroundProp StorageClass 354d09acef4SBram Moolenaar HiLink cssBorderOutlineProp StorageClass 355071d4279SBram Moolenaar HiLink cssBoxProp StorageClass 356d09acef4SBram Moolenaar HiLink cssColorProp StorageClass 357d09acef4SBram Moolenaar HiLink cssContentForPagedMediaProp StorageClass 358d09acef4SBram Moolenaar HiLink cssDimensionProp StorageClass 359d09acef4SBram Moolenaar HiLink cssFlexibleBoxProp StorageClass 360d09acef4SBram Moolenaar HiLink cssFontProp StorageClass 361d09acef4SBram Moolenaar HiLink cssGeneratedContentProp StorageClass 362d09acef4SBram Moolenaar HiLink cssGridProp StorageClass 363d09acef4SBram Moolenaar HiLink cssHyerlinkProp StorageClass 364d09acef4SBram Moolenaar HiLink cssLineboxProp StorageClass 365d09acef4SBram Moolenaar HiLink cssListProp StorageClass 366d09acef4SBram Moolenaar HiLink cssMarginProp StorageClass 367d09acef4SBram Moolenaar HiLink cssMarqueeProp StorageClass 368d09acef4SBram Moolenaar HiLink cssMultiColumnProp StorageClass 369d09acef4SBram Moolenaar HiLink cssPaddingProp StorageClass 370d09acef4SBram Moolenaar HiLink cssPagedMediaProp StorageClass 371d09acef4SBram Moolenaar HiLink cssPositioningProp StorageClass 372d09acef4SBram Moolenaar HiLink cssPrintProp StorageClass 373d09acef4SBram Moolenaar HiLink cssRubyProp StorageClass 374d09acef4SBram Moolenaar HiLink cssSpeechProp StorageClass 375d09acef4SBram Moolenaar HiLink cssTableProp StorageClass 376d09acef4SBram Moolenaar HiLink cssTextProp StorageClass 377d09acef4SBram Moolenaar HiLink cssTransformProp StorageClass 378d09acef4SBram Moolenaar HiLink cssTransitionProp StorageClass 379d09acef4SBram Moolenaar HiLink cssUIProp StorageClass 380071d4279SBram Moolenaar HiLink cssAuralProp StorageClass 381071d4279SBram Moolenaar HiLink cssRenderProp StorageClass 382d09acef4SBram Moolenaar 383d09acef4SBram Moolenaar HiLink cssAnimationAttr Type 384d09acef4SBram Moolenaar HiLink cssBackgroundAttr Type 385d09acef4SBram Moolenaar HiLink cssBorderOutlineAttr Type 386071d4279SBram Moolenaar HiLink cssBoxAttr Type 387d09acef4SBram Moolenaar HiLink cssColorAttr Type 388d09acef4SBram Moolenaar HiLink cssContentForPagedMediaAttr Type 389d09acef4SBram Moolenaar HiLink cssDimensionAttr Type 390d09acef4SBram Moolenaar HiLink cssFlexibleBoxAttr Type 391d09acef4SBram Moolenaar HiLink cssFontAttr Type 392071d4279SBram Moolenaar HiLink cssGeneratedContentAttr Type 393d09acef4SBram Moolenaar HiLink cssGridAttr Type 394d09acef4SBram Moolenaar HiLink cssHyerlinkAttr Type 395d09acef4SBram Moolenaar HiLink cssLineboxAttr Type 396d09acef4SBram Moolenaar HiLink cssListAttr Type 397d09acef4SBram Moolenaar HiLink cssMarginAttr Type 398d09acef4SBram Moolenaar HiLink cssMarqueeAttr Type 399d09acef4SBram Moolenaar HiLink cssMultiColumnAttr Type 400d09acef4SBram Moolenaar HiLink cssPaddingAttr Type 401d09acef4SBram Moolenaar HiLink cssPagedMediaAttr Type 402d09acef4SBram Moolenaar HiLink cssPositioningAttr Type 403d09acef4SBram Moolenaar HiLink cssPrintAttr Type 404d09acef4SBram Moolenaar HiLink cssRubyAttr Type 405d09acef4SBram Moolenaar HiLink cssSpeechAttr Type 406071d4279SBram Moolenaar HiLink cssTableAttr Type 407d09acef4SBram Moolenaar HiLink cssTextAttr Type 408d09acef4SBram Moolenaar HiLink cssTransformAttr Type 409d09acef4SBram Moolenaar HiLink cssTransitionAttr Type 410071d4279SBram Moolenaar HiLink cssUIAttr Type 411d09acef4SBram Moolenaar HiLink cssAuralAttr Type 412d09acef4SBram Moolenaar HiLink cssRenderAttr Type 413071d4279SBram Moolenaar HiLink cssCommonAttr Type 414d09acef4SBram Moolenaar 415071d4279SBram Moolenaar HiLink cssPseudoClassId PreProc 416071d4279SBram Moolenaar HiLink cssPseudoClassLang Constant 417071d4279SBram Moolenaar HiLink cssValueLength Number 418071d4279SBram Moolenaar HiLink cssValueInteger Number 419071d4279SBram Moolenaar HiLink cssValueNumber Number 420071d4279SBram Moolenaar HiLink cssValueAngle Number 421071d4279SBram Moolenaar HiLink cssValueTime Number 422071d4279SBram Moolenaar HiLink cssValueFrequency Number 423071d4279SBram Moolenaar HiLink cssFunction Constant 424071d4279SBram Moolenaar HiLink cssURL String 425071d4279SBram Moolenaar HiLink cssFunctionName Function 426071d4279SBram Moolenaar HiLink cssColor Constant 427071d4279SBram Moolenaar HiLink cssIdentifier Function 428071d4279SBram Moolenaar HiLink cssInclude Include 429071d4279SBram Moolenaar HiLink cssImportant Special 430071d4279SBram Moolenaar HiLink cssBraces Function 431071d4279SBram Moolenaar HiLink cssBraceError Error 432071d4279SBram Moolenaar HiLink cssError Error 433071d4279SBram Moolenaar HiLink cssInclude Include 434071d4279SBram Moolenaar HiLink cssUnicodeEscape Special 435071d4279SBram Moolenaar HiLink cssStringQQ String 436071d4279SBram Moolenaar HiLink cssStringQ String 437071d4279SBram Moolenaar HiLink cssMedia Special 438071d4279SBram Moolenaar HiLink cssMediaType Special 439071d4279SBram Moolenaar HiLink cssMediaComma Normal 440071d4279SBram Moolenaar HiLink cssFontDescriptor Special 441071d4279SBram Moolenaar HiLink cssFontDescriptorFunction Constant 442071d4279SBram Moolenaar HiLink cssFontDescriptorProp StorageClass 443071d4279SBram Moolenaar HiLink cssFontDescriptorAttr Type 444071d4279SBram Moolenaar HiLink cssUnicodeRange Constant 44529c34723SBram Moolenaar HiLink cssClassName Function 446071d4279SBram Moolenaar delcommand HiLink 447071d4279SBram Moolenaarendif 448071d4279SBram Moolenaar 449071d4279SBram Moolenaarlet b:current_syntax = "css" 450071d4279SBram Moolenaar 451071d4279SBram Moolenaarif main_syntax == 'css' 452071d4279SBram Moolenaar unlet main_syntax 453071d4279SBram Moolenaarendif 454071d4279SBram Moolenaar 455*0c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save 456*0c5fa7d7SBram Moolenaarunlet s:cpo_save 457071d4279SBram Moolenaar" vim: ts=8 458071d4279SBram Moolenaar 459