<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
  <!-- http://www.w3.org/TR/CSS21/syndata.html#tokenization -->
  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
]>

<!--

Kate CSS syntax highlighting definition

Changelog:

- Version 2.13, by Guo Yunhe
- Add all W3C Work Draft properties

- Version 2.06, by Mte90:
- CSS3 tag

- Version 2.03, by Milian Wolff:
- Make it spelling aware

- Version 2.08, Joseph Wenninger:
- CSS3 media queries

-->

<language name="CSS" version="3" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">

    <highlighting>
        <list name="properties">
            <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties -->
            <item> azimuth </item>
            <item> align-content </item>
            <item> align-items </item>
            <item> align-self </item>
            <item> alignment-baseline </item>
            <item> all </item>
            <item> animation-name </item>
            <item> animation-duration </item>
            <item> animation-iteration-count </item>
            <item> animation-direction </item>
            <item> animation-delay </item>
            <item> animation-play-state </item>
            <item> animation-fill-mode </item>
            <item> animation-timing-function </item>
            <item> backface-visibility </item>
            <item> background </item>
            <item> background-attachment </item>
            <item> background-blend-mode </item>
            <item> background-break </item>
            <item> background-clip </item>
            <item> background-color </item>
            <item> background-image </item>
            <item> background-origin </item>
            <item> background-position </item>
            <item> background-repeat </item>
            <item> background-size </item>
            <item> baseline-shift </item>
            <item> bookmark-label </item>
            <item> bookmark-level </item>
            <item> bookmark-level </item>
            <item> border </item>
            <item> border-bottom </item>
            <item> border-bottom-color </item>
            <item> border-bottom-image </item>
            <item> border-bottom-style </item>
            <item> border-bottom-width </item>
            <item> border-bottom-left-image </item>
            <item> border-bottom-left-radius </item>
            <item> border-bottom-right-image </item>
            <item> border-bottom-right-radius </item>
            <item> border-boundary </item>
            <item> border-collapse </item>
            <item> border-color </item>
            <item> border-corner-image </item>
            <item> border-image </item>
            <item> border-image-outset </item>
            <item> border-image-repeat </item>
            <item> border-image-slice </item>
            <item> border-image-source </item>
            <item> border-image-width </item>
            <item> border-left </item>
            <item> border-left-color </item>
            <item> border-left-image </item>
            <item> border-left-style </item>
            <item> border-left-width </item>
            <item> border-radius </item>
            <item> border-right </item>
            <item> border-right-color </item>
            <item> border-right-image </item>
            <item> border-right-style </item>
            <item> border-right-width </item>
            <item> border-spacing </item>
            <item> border-style </item>
            <item> border-top </item>
            <item> border-top-color </item>
            <item> border-top-image </item>
            <item> border-top-style </item>
            <item> border-top-width </item>
            <item> border-top-left-image </item>
            <item> border-top-left-radius </item>
            <item> border-top-right-image </item>
            <item> border-top-right-radius </item>
            <item> border-width </item>
            <item> bottom </item>
            <item> box-align </item>
            <item> box-decoration-break </item>
            <item> box-direction </item>
            <item> box-flex </item>
            <item> box-shadow </item>
            <item> box-sizing </item>
            <item> box-snap </item>
            <item> box-suppress </item>
            <item> break-after </item>
            <item> break-before </item>
            <item> break-inside </item>
            <item> caret-color </item>
            <item> caption-side </item>
            <item> chains </item>
            <item> clear </item>
            <item> clip </item>
            <item> clip-path </item>
            <item> clip-rule </item>
            <item> color </item>
            <item> color-interpolation-filters </item>
            <item> column-count </item>
            <item> column-fill </item>
            <item> column-gap </item>
            <item> column-rule </item>
            <item> column-rule-color </item>
            <item> column-rule-style </item>
            <item> column-rule-width </item>
            <item> column-span </item>
            <item> column-width </item>
            <item> columns </item>
            <item> content </item>
            <item> counter-increment </item>
            <item> counter-reset </item>
            <item> counter-set </item>
            <item> cue </item>
            <item> cue-after </item>
            <item> cue-before </item>
            <item> cursor </item>
            <item> direction </item>
            <item> display </item>
            <item> dominant-baseline </item>
            <item> elevation </item>
            <item> empty-cells </item>
            <item> filter </item>
            <item> flex </item>
            <item> flex-basis </item>
            <item> flex-direction </item>
            <item> flex-flow </item>
            <item> flex-grow </item>
            <item> flex-shrink </item>
            <item> flex-wrap </item>
            <item> float </item>
            <item> flood-color </item>
            <item> flood-opacity </item>
            <item> flow </item>
            <item> flow-from </item>
            <item> flow-into </item>
            <item> font </item>
            <item> font-family </item>
            <item> font-size </item>
            <item> font-size-adjust </item>
            <item> font-stretch </item>
            <item> font-style </item>
            <item> font-variant </item>
            <item> font-weight </item>
            <item> font-stretch </item>
            <item> font-feature-settings </item>
            <item> font-kerning </item>
            <item> font-language-override </item>
            <item> font-synthesis </item>
            <item> font-variant-alternates </item>
            <item> font-variant-caps </item>
            <item> font-variant-east-asian </item>
            <item> font-variant-ligatures </item>
            <item> font-variant-numeric </item>
            <item> font-variant-position </item>
            <item> footnote-display </item>
            <item> footnote-policy </item>
            <item> glyph-orientation-vertical </item>
            <item> grid </item>
            <item> grid-area </item>
            <item> grid-auto-columns </item>
            <item> grid-auto-flow </item>
            <item> grid-auto-rows </item>
            <item> grid-column </item>
            <item> grid-column-end </item>
            <item> grid-column-gap </item>
            <item> grid-column-start </item>
            <item> grid-gap </item>
            <item> grid-row </item>
            <item> grid-row-end </item>
            <item> grid-row-gap </item>
            <item> grid-row-start </item>
            <item> grid-template </item>
            <item> grid-template-areas </item>
            <item> grid-template-columns </item>
            <item> grid-template-rows </item>
            <item> hanging-punctuation </item>
            <item> height </item>
            <item> hyphens </item>
            <item> image-orientation </item>
            <item> image-rendering </item>
            <item> image-resolution </item>
            <item> initial-letter </item>
            <item> initial-letter-align </item>
            <item> initial-letter-wrap </item>
            <item> isolation </item>
            <item> justify-content </item>
            <item> justify-items </item>
            <item> justify-self </item>
            <item> left </item>
            <item> letter-spacing </item>
            <item> lighting-color </item>
            <item> linear-gradient </item>
            <item> line-grid </item>
            <item> line-height </item>
            <item> line-snap </item>
            <item> list-style </item>
            <item> list-style-image </item>
            <item> list-style-keyword </item>
            <item> list-style-position </item>
            <item> list-style-type  </item>
            <item> margin </item>
            <item> margin-bottom </item>
            <item> margin-left </item>
            <item> margin-right </item>
            <item> margin-top </item>
            <item> marker-offset </item>
            <item> marker-side </item>
            <item> marquee-direction </item>
            <item> marquee-loop </item>
            <item> marquee-speed </item>
            <item> marquee-style </item>
            <item> mask </item>
            <item> mask-border </item>
            <item> mask-border-mode </item>
            <item> mask-border-outset </item>
            <item> mask-border-repeat </item>
            <item> mask-border-slice </item>
            <item> mask-border-source </item>
            <item> mask-border-width </item>
            <item> mask-clip </item>
            <item> mask-composite </item>
            <item> mask-image </item>
            <item> mask-mode </item>
            <item> mask-origin </item>
            <item> mask-position </item>
            <item> mask-repeat </item>
            <item> mask-size </item>
            <item> mask-type </item>
            <item> max-height </item>
            <item> max-lines </item>
            <item> max-width </item>
            <item> min-height </item>
            <item> min-width </item>
            <item> mix-blend-mode </item>
            <item> nav-down </item>
            <item> nav-left </item>
            <item> nav-right </item>
            <item> nav-up </item>
            <item> object-fit </item>
            <item> object-position </item>
            <item> offset-after </item>
            <item> offset-before </item>
            <item> offset-end </item>
            <item> offset-start </item>
            <item> opacity </item>
            <item> order </item>
            <item> orphans </item>
            <item> outline </item>
            <item> outline-color </item>
            <item> outline-offset </item>
            <item> outline-style </item>
            <item> outline-width </item>
            <item> overflow </item>
            <item> overflow-style </item>
            <item> overflow-wrap </item>
            <item> overflow-x </item>
            <item> overflow-y </item>
            <item> padding </item>
            <item> padding-bottom </item>
            <item> padding-left </item>
            <item> padding-right </item>
            <item> padding-top </item>
            <item> page </item>
            <item> page-break-after </item>
            <item> page-break-before </item>
            <item> page-break-inside </item>
            <item> pause </item>
            <item> pause-after </item>
            <item> pause-before </item>
            <item> perspective </item>
            <item> perspective-origin </item>
            <item> pitch </item>
            <item> pitch-range </item>
            <item> play-during </item>
            <item> pointer-events </item>
            <item> polar-anchor </item>
            <item> polar-angle </item>
            <item> polar-distance </item>
            <item> polar-origin </item>
            <item> position </item>
            <item> presentation-level </item>
            <item> quotes </item>
            <item> resize </item>
            <item> rest </item>
            <item> rest-after </item>
            <item> rest-before </item>
            <item> richness </item>
            <item> right </item>
            <item> rotation </item>
            <item> rotation-point </item>
            <item> ruby-align </item>
            <item> ruby-merge </item>
            <item> ruby-position </item>
            <item> running </item>
            <item> scroll-behavior </item>
            <item> scroll-snap-align </item>
            <item> scroll-snap-margin </item>
            <item> scroll-snap-margin-block </item>
            <item> scroll-snap-margin-block-end </item>
            <item> scroll-snap-margin-block-start </item>
            <item> scroll-snap-margin-bottom </item>
            <item> scroll-snap-margin-inline </item>
            <item> scroll-snap-margin-inline-end </item>
            <item> scroll-snap-margin-inline-start </item>
            <item> scroll-snap-margin-left </item>
            <item> scroll-snap-margin-right </item>
            <item> scroll-snap-margin-top </item>
            <item> scroll-snap-padding </item>
            <item> scroll-snap-padding-block </item>
            <item> scroll-snap-padding-block-end </item>
            <item> scroll-snap-padding-block-start </item>
            <item> scroll-snap-padding-bottom </item>
            <item> scroll-snap-padding-inline </item>
            <item> scroll-snap-padding-inline-end </item>
            <item> scroll-snap-padding-inline-start </item>
            <item> scroll-snap-padding-left </item>
            <item> scroll-snap-padding-right </item>
            <item> scroll-snap-padding-top </item>
            <item> scroll-snap-stop </item>
            <item> scroll-snap-type </item>
            <item> shape-image-threshold </item>
            <item> shape-inside </item>
            <item> shape-margin </item>
            <item> shape-outside </item>
            <item> size </item>
            <item> speak </item>
            <item> speak-as </item>
            <item> speak-header </item>
            <item> speak-numeral </item>
            <item> speak-punctuation </item>
            <item> speech-rate </item>
            <item> stress </item>
            <item> string-set </item>
            <item> tab-size </item>
            <item> table-layout </item>
            <item> text-align </item>
            <item> text-align-last </item>
            <item> text-combine-upright </item>
            <item> text-decoration </item>
            <item> text-decoration-color </item>
            <item> text-decoration-line </item>
            <item> text-decoration-skip </item>
            <item> text-decoration-style </item>
            <item> text-emphasis </item>
            <item> text-emphasis-color </item>
            <item> text-emphasis-position </item>
            <item> text-emphasis-style </item>
            <item> text-indent </item>
            <item> text-justify </item>
            <item> text-orientation </item>
            <item> text-overflow </item>
            <item> text-shadow </item>
            <item> text-transform </item>
            <item> text-underline-position </item>
            <item> text-wrap </item>
            <item> top </item>
            <item> transform </item>
            <item> transform-origin </item>
            <item> transform-style </item>
            <item> transition </item>
            <item> transition-delay </item>
            <item> transition-property </item>
            <item> transition-duration </item>
            <item> transition-timing-function </item>
            <item> unicode-bidi </item>
            <item> vertical-align </item>
            <item> visibility </item>
            <item> voice-balance </item>
            <item> voice-duration </item>
            <item> voice-family </item>
            <item> voice-pitch </item>
            <item> voice-range </item>
            <item> voice-rate </item>
            <item> voice-stress </item>
            <item> voice-volume </item>
            <item> volume </item>
            <item> white-space </item>
            <item> widows </item>
            <item> width </item>
            <item> will-change </item>
            <item> word-break </item>
            <item> word-spacing </item>
            <item> word-wrap </item>
            <item> wrap-flow </item>
            <item> wrap-through </item>
            <item> writing-mode </item>
            <item> z-index </item>

            <!-- Gecko rendering engine CSS property extensions -->
            <item> -moz-animation-name </item>
            <item> -moz-animation-duration </item>
            <item> -moz-animation-iteration </item>
            <item> -moz-animation-direction </item>
            <item> -moz-animation-delay </item>
            <item> -moz-animation-play-state </item>
            <item> -moz-animation-fill-mode </item>
            <item> -moz-background-size </item>
            <item> -moz-border-image </item>
            <item> -moz-border-bottom-colors </item>
            <item> -moz-border-left-colors </item>
            <item> -moz-border-radius </item>
            <item> -moz-border-radius-topleft </item>
            <item> -moz-border-radius-topright </item>
            <item> -moz-border-radius-bottomleft </item>
            <item> -moz-border-radius-bottomright </item>
            <item> -moz-border-right-colors </item>
            <item> -moz-border-top-colors </item>
            <item> -moz-box </item>
            <item> -moz-box-flex </item>
            <item> -moz-box-shadow </item>
            <item> -moz-box-sizing </item>
            <item> -moz-column-count </item>
            <item> -moz-column-gap </item>
            <item> -moz-hyphens </item>
            <item> -moz-linear-gradient </item>
            <item> -moz-opacity </item>
            <item> -moz-outline-style </item>
            <item> -moz-perspective </item>
            <item> -moz-radial-gradient </item>
            <item> -moz-resize </item>
            <item> -moz-transform </item>
            <item> -moz-transform-origin </item>
            <item> -moz-transform-style </item>
            <item> -moz-transition </item>
            <item> -moz-transition-property </item>
            <item> -moz-transition-duration </item>

            <!-- Opera rendering engine CSS property extensions -->
            <item> -o-background-size </item>
            <item> -o-linear-gradient </item>
            <item> -o-text-overflow </item>
            <item> -o-transition </item>
            <item> -o-transform-origin </item>

            <!-- konq specific -->
            <item> konq_bgpos_x </item>
            <item> konq_bgpos_y </item>
            <item> -khtml-background-size </item>
            <item> -khtml-border-top-left-radius </item>
            <item> -khtml-border-top-right-radius </item>
            <item> -khtml-border-bottom-left-radius </item>
            <item> -khtml-border-bottom-right-radius </item>
            <item> -khtml-border-radius </item>
            <item> -khtml-box-shadow </item>
            <item> -khtml-opacity </item>

            <!-- Webkit rendering engine CSS property extensions -->
            <item> -webkit-appearance </item>
            <item> -webkit-animation-name </item>
            <item> -webkit-animation-duration </item>
            <item> -webkit-animation-iteration </item>
            <item> -webkit-animation-direction </item>
            <item> -webkit-animation-delay </item>
            <item> -webkit-animation-play-state </item>
            <item> -webkit-animation-fill-mode </item>
            <item> -webkit-background-size </item>
            <item> -webkit-border-image </item>
            <item> -webkit-border-bottom-colors </item>
            <item> -webkit-border-left-colors </item>
            <item> -webkit-border-radius </item>
            <item> -webkit-border-right-colors </item>
            <item> -webkit-border-top-colors </item>
            <item> -webkit-border-top-left-radius </item>
            <item> -webkit-border-top-right-radius </item>
            <item> -webkit-border-bottom-left-radius </item>
            <item> -webkit-border-bottom-right-radius </item>
            <item> -webkit-border-radius-bottomleft </item>
            <item> -webkit-border-radius-bottomright </item>
            <item> -webkit-box-flex </item>
            <item> -webkit-box-reflect</item>
            <item> -webkit-box-shadow </item>
            <item> -webkit-box-sizing </item>
            <item> -webkit-column-count </item>
            <item> -webkit-column-gap </item>
            <item> -webkit-hyphens </item>
            <item> -webkit-linear-gradient </item>
            <item> -webkit-gradient </item>
            <item> -webkit-perspective </item>
            <item> -webkit-text-fill-color </item>
            <item> -webkit-text-stroke-color </item>
            <item> -webkit-text-stroke-width </item>
            <item> -webkit-text-size-adjust </item>
            <item> -webkit-transform </item>
            <item> -webkit-transform-origin </item>
            <item> -webkit-transform-style </item>
            <item> -webkit-transition </item>
            <item> -webkit-transition-property </item>
            <item> -webkit-transition-duration </item>

            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->
            <item> zoom </item>
            <item> -ms-animation-name </item>
            <item> -ms-animation-duration </item>
            <item> -ms-animation-iteration </item>
            <item> -ms-animation-direction </item>
            <item> -ms-animation-delay </item>
            <item> -ms-animation-play-state </item>
            <item> -ms-animation-fill-mode </item>
            <item> -ms-box-sizing </item>
            <item> -ms-filter </item>
            <item> -ms-interpolation-mode </item>
            <item> -ms-linear-gradient </item>
            <item> -ms-text-size-adjust </item>
            <item> -ms-transform </item>
            <item> -ms-transition </item>

            <!-- font properties in @font-face -->
            <item> font-family </item>
            <item> font-size </item>
            <item> font-stretch </item>
            <item> font-style </item>
            <item> font-variant </item>
            <item> font-weight </item>
            <item> unicode-range </item>
            <item> units-per-em </item>
            <item> src </item>
            <item> panose-1 </item>
            <item> stemv </item>
            <item> stemh </item>
            <item> slope </item>
            <item> cap-height </item>
            <item> x-height </item>
            <item> ascent </item>
            <item> descent </item>
            <item> widths </item>
            <item> bbox </item>
            <item> definition-src </item>
            <item> baseline </item>
            <item> centerline </item>
            <item> mathline </item>
            <item> topline </item>
        </list>

        <list name="types">
            <item> inherit </item>
            <item> none </item>
            <item> hidden </item>
            <item> dotted </item>
            <item> dashed </item>
            <item> solid </item>
            <item> double </item>
            <item> groove </item>
            <item> ridge </item>
            <item> inset </item>
            <item> outset </item>
            <item> xx-small </item>
            <item> x-small </item>
            <item> small </item>
            <item> medium </item>
            <item> large </item>
            <item> x-large </item>
            <item> xx-large </item>
            <item> smaller </item>
            <item> larger </item>
            <item> italic </item>
            <item> oblique </item>
            <item> small-caps </item>
            <item> normal </item>
            <item> bold </item>
            <item> bolder </item>
            <item> lighter </item>
            <item> light </item>
            <item> 100 </item>
            <item> 200 </item>
            <item> 300 </item>
            <item> 400 </item>
            <item> 500 </item>
            <item> 600 </item>
            <item> 700 </item>
            <item> 800 </item>
            <item> 900 </item>
            <item> transparent </item>
            <item> repeat </item>
            <item> repeat-x </item>
            <item> repeat-y </item>
            <item> no-repeat </item>
            <item> baseline </item>
            <item> sub </item>
            <item> super </item>
            <item> top </item>
            <item> text-top </item>
            <item> middle </item>
            <item> bottom </item>
            <item> text-bottom </item>
            <item> left </item>
            <item> right </item>
            <item> center </item>
            <item> justify </item>
            <item> konq-center </item>
            <item> disc </item>
            <item> circle </item>
            <item> square </item>
            <item> box </item>
            <item> decimal </item>
            <item> decimal-leading-zero </item>
            <item> lower-roman </item>
            <item> upper-roman </item>
            <item> lower-greek </item>
            <item> lower-alpha </item>
            <item> lower-latin </item>
            <item> upper-alpha </item>
            <item> upper-latin </item>
            <item> hebrew </item>
            <item> armenian </item>
            <item> georgian </item>
            <item> cjk-ideographic </item>
            <item> hiragana </item>
            <item> katakana </item>
            <item> hiragana-iroha </item>
            <item> katakana-iroha </item>
            <item> inline </item>
            <item> inline-block </item>
            <item> block </item>
            <item> list-item </item>
            <item> run-in </item>
            <item> compact </item>
            <item> marker </item>
            <item> table </item>
            <item> inline-table </item>
            <item> table-row-group </item>
            <item> table-header-group </item>
            <item> table-footer-group </item>
            <item> table-row </item>
            <item> table-column-group </item>
            <item> table-column </item>
            <item> table-cell </item>
            <item> table-caption </item>
            <item> auto </item>
            <item> crosshair </item>
            <item> default </item>
            <item> pointer </item>
            <item> move </item>
            <item> e-resize </item>
            <item> ne-resize </item>
            <item> nw-resize </item>
            <item> n-resize </item>
            <item> se-resize </item>
            <item> sw-resize </item>
            <item> s-resize </item>
            <item> w-resize </item>
            <item> text </item>
            <item> wait </item>
            <item> help </item>
            <item> above </item>
            <item> absolute </item>
            <item> always </item>
            <item> avoid </item>
            <item> below </item>
            <item> bidi-override </item>
            <item> blink </item>
            <item> both </item>
            <item> capitalize </item>
            <item> caption </item>
            <item> clip </item>
            <item> close-quote </item>
            <item> collapse </item>
            <item> condensed </item>
            <item> crop </item>
            <item> cross </item>
            <item> ellipsis </item>
            <item> ellipsis-word </item>
            <item> embed </item>
            <item> expanded </item>
            <item> extra-condensed </item>
            <item> extra-expanded </item>
            <item> fixed </item>
            <item> hand </item>
            <item> hide </item>
            <item> higher </item>
            <item> icon </item>
            <item> inside </item>
            <item> invert </item>
            <item> landscape </item>
            <item> level </item>
            <item> line-through </item>
            <item> loud </item>
            <item> lower </item>
            <item> lowercase </item>
            <item> ltr </item>
            <item> menu </item>
            <item> message-box </item>
            <item> mix </item>
            <item> narrower </item>
            <item> no-close-quote </item>
            <item> no-open-quote </item>
            <item> nowrap </item>
            <item> open-quote </item>
            <item> outside </item>
            <item> overline </item>
            <item> portrait </item>
            <item> pre </item>
            <item> pre-line </item>
            <item> pre-wrap </item>
            <item> relative </item>
            <item> rtl </item>
            <item> scroll </item>
            <item> semi-condensed </item>
            <item> semi-expanded </item>
            <item> separate </item>
            <item> show </item>
            <item> small-caption </item>
            <item> static </item>
            <item> static-position </item>
            <item> status-bar </item>
            <item> thick </item>
            <item> thin </item>
            <item> ultra-condensed </item>
            <item> ultra-expanded </item>
            <item> underline </item>
            <item> uppercase </item>
            <item> visible </item>
            <item> wider </item>
            <item> break </item>
            <item> serif </item>
            <item> sans-serif </item>
            <item> cursive </item>
            <item> fantasy </item>
            <item> monospace </item>
            <item> border-box </item>
            <item> content-box </item>
            <item> -epub-hyphens </item>
        </list>

        <list name="colors">
            <item> aqua </item>
            <item> black </item>
            <item> blue </item>
            <item> cyan </item>
            <item> fuchsia </item>
            <item> gray </item>
            <item> green </item>
            <item> lime </item>
            <item> maroon </item>
            <item> navy </item>
            <item> olive </item>
            <item> purple </item>
            <item> red </item>
            <item> silver </item>
            <item> teal </item>
            <item> white </item>
            <item> yellow </item>
            <item> ActiveBorder  </item>
            <item> ActiveCaption  </item>
            <item> AppWorkspace  </item>
            <item> Background  </item>
            <item> ButtonFace  </item>
            <item> ButtonHighlight  </item>
            <item> ButtonShadow  </item>
            <item> ButtonText  </item>
            <item> CaptionText  </item>
            <item> GrayText  </item>
            <item> Highlight  </item>
            <item> HighlightText  </item>
            <item> InactiveBorder  </item>
            <item> InactiveCaption  </item>
            <item> InactiveCaptionText  </item>
            <item> InfoBackground  </item>
            <item> InfoText  </item>
            <item> Menu  </item>
            <item> MenuText  </item>
            <item> Scrollbar  </item>
            <item> ThreeDDarkShadow  </item>
            <item> ThreeDFace  </item>
            <item> ThreeDHighlight  </item>
            <item> ThreeDLightShadow  </item>
            <item> ThreeDShadow  </item>
            <item> Window  </item>
            <item> WindowFrame  </item>
            <item> WindowText  </item>
        </list>

        <list name="paren">
            <item> url </item>
            <item> attr </item>
            <item> rect </item>
            <item> rgb </item>
            <item> rgba </item>
            <item> hsl </item>
            <item> hsla </item>
            <item> counter </item>
            <item> counters </item>

            <!-- in @font-face -->
            <item> local </item>
            <item> format </item>

            <!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->
            <item> expression </item>

        </list>

        <list name="mediatypes">
            <item> all </item>
            <item> aural </item>
            <item> braille </item>
            <item> embossed </item>
            <item> handheld </item>
            <item> print </item>
            <item> projection </item>
            <item> screen </item>
            <item> speech </item>
            <item> tty </item>
            <item> tv </item>
        </list>

        <list name="mediatypes_op">
            <item> not </item>
            <item> only </item>
        </list>

        <list name="media_features">
            <item> width </item>
            <item> min-width </item>
            <item> max-width</item>
            <item> height </item>
            <item> min-height </item>
            <item> max-height </item>
            <item> device-width </item>
            <item> min-device-width </item>
            <item> max-device-width </item>
            <item> device-height </item>
            <item> min-device-height </item>
            <item> max-device-height </item>
            <item> orientation </item>
            <item> aspect-ratio </item>
            <item> min-aspect-ratio </item>
            <item> max-aspect-ratio </item>
            <item> device-aspect-ratio </item>
            <item> min-device-aspect-ratio </item>
            <item> max-device-aspect-ratio </item>
            <item> color </item>
            <item> min-color </item>
            <item> max-color </item>
            <item> color-index </item>
            <item> min-color-index </item>
            <item> max-color-index </item>
            <item> monochrome </item>
            <item> min-monochrome </item>
            <item> max-monochrome </item>
            <item> resolution </item>
            <item> min-resolution </item>
            <item> max-resolution </item>
            <item> scan </item>
            <item> grid </item>
        </list>

        <list name="pseudoclasses">
            <item> hover </item>
            <item> link </item>
            <item> visited </item>
            <item> active </item>
            <item> focus </item>
            <item> first-child </item>
            <item> last-child </item>
            <item> only-child </item>
            <item> first-of-type </item>
            <item> last-of-type </item>
            <item> only-of-type </item>
            <item> first-letter </item>
            <item> first-line </item>
            <item> before </item>
            <item> after </item>
            <item> selection </item>
            <item> root </item>
            <item> empty </item>
            <item> target </item>
            <item> enabled </item>
            <item> disabled </item>
            <item> checked </item>
            <item> indeterminate </item>
            <item> nth-child </item>
            <item> nth-last-child </item>
            <item> nth-of-type </item>
            <item> nth-last-of-type </item>
            <item> not </item>
        </list>

        <contexts>
            <context attribute="Normal Text" lineEndContext="#stay" name="Base">
                <LineContinue/>
                <DetectSpaces/>
                <IncludeRules context="FindRuleSets" />
            </context>

            <!-- to be included -->
            <!-- finds rules and detects nesting -->
            <context attribute="Normal Text" lineEndContext="#stay" name="FindRuleSets">
                <RegExpr attribute="Media" context="Media" String="@media\b" />
                <RegExpr attribute="At Rule" context="Import" String="@import\b" />
                <RegExpr attribute="At Rule" context="#stay" String="@(font-face|charset)\b" />
                <DetectChar attribute="Property" context="RuleSet" char="{" beginRegion="ruleset" />
                <!--parse selectors-->
                <DetectChar attribute="Selector Attr" context="SelAttr" char="[" />
                <RegExpr attribute="Selector Id" context="#stay" String="#(-)?(&nmstart;)(&nmchar;)*" />
                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
                <RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" />
                <DetectChar attribute="Selector Pseudo" context="SelPseudo" char=":" />
                <IncludeRules context="FindStrings" />
                <IncludeRules context="FindComments" />
            </context>

            <!-- finds arguments to properties -->
            <context attribute="Normal Text" lineEndContext="#stay" name="FindValues">
                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b" />
                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" />
                <RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />
            </context>

            <!-- finds strings -->
            <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
                <DetectChar attribute="String" context="StringDQ" char="&quot;" />
                <DetectChar attribute="String" context="StringSQ" char="'" />
            </context>

            <!-- finds comments -->
            <context attribute="Normal Text" lineEndContext="#stay" name="FindComments">
                <RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" />
                <RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" />
                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />
            </context>

            <!-- other contexts -->
            <context attribute="Normal Text" lineEndContext="#stay" name="Media">
                <DetectChar attribute="Media" context="Media2" char="{" beginRegion="media" />
                <DetectChar attribute="Media" context="MediaQueryExpression" char="(" />
                <keyword attribute="Media" context="MediaQueries" String="mediatypes"/>
                <keyword attribute="Media" context="MediaTypes" String="mediatypes_op" />
                <DetectChar attribute="Media" context="#stay" char="," />
                <IncludeRules context="FindComments" />
                <RegExpr attribute="Error" context="#stay" String="\S+" />
            </context>

            <context attribute="Media" lineEndContext="#stay" name="MediaTypes">
                <keyword attribute="Media" context="MediaQueries" String="mediatypes"/>
                <DetectChar attribute="Media" context="#pop" char= "{" lookAhead="true"/>
                <DetectChar attribute="Media" context="#pop" char= "," lookAhead="true"/>
                <DetectSpaces/>
                <IncludeRules context="FindComments"/>
                <RegExpr attribute="Error" context="#stay" String="\S+"/>
            </context>

            <context attribute="Media" lineEndContext="#stay" name="MediaQueries">
                <RegExpr attribute="Media" context="MediaQueryExpression" String="\s+and\s+\("/>
                <DetectChar attribute="Media" context="#pop" char= "{" lookAhead="true"/>
                <DetectChar attribute="Media" context="#pop" char= "," lookAhead="true"/>
                <DetectSpaces/>
                <IncludeRules context="FindComments"/>
                <RegExpr attribute="Error" context="#stay" String="\S+"/>
            </context>

            <context attribute="Media" lineEndContext="#stay" name="MediaQueryExpression">
                <DetectSpaces/>
                <keyword attribute="Media" context="MQEE" String="media_features"/>
                <IncludeRules context="FindComments"/>
                <RegExpr attribute="Error" context="#stay" String="\S+"/>
            </context>

            <context attribute="Media" lineEndContext="#stay" name="MQEE" fallthrough="true" fallthroughContext="#pop">
                <DetectSpaces/>
                <IncludeRules context="FindComments"/>
                <DetectChar attribute="Media" context="MQEV" char=":"/>
                <RegExpr attribute="Media" context="#pop" String="\)\s+and\s+\("/>
                <DetectChar attribute="Media" context="#pop#pop" char=")"/>
            </context>

            <context attribute="Media" lineEndContext="#stay" name="MQEV">
                <!-- this should be seperate for different features, for now it is all the same -->
                <DetectSpaces/>
                <RegExpr attribute="Value" context="#pop" String="[1-9][0-9.]*\s*/\s*[1-9][0-9.]*" />
                <RegExpr attribute="Value" context="#pop" String="[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz|dpi|dpcm)\b" />
                <RegExpr attribute="Value" context="#pop" String="[0-9.]+[%]?" />
                <RegExpr attribute="Value" context="#pop" String="(portrait|landscape)" />
                <RegExpr attribute="Error" context="#stay" String=".*"/>
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="Media2">
                <DetectChar attribute="Media" context="#pop#pop" char="}" endRegion="media" />
                <IncludeRules context="FindRuleSets" />
            </context>

            <context attribute="Selector Attr" lineEndContext="#stay" name="SelAttr">
                <DetectChar attribute="Selector Attr" context="#pop" char="]" />
                <IncludeRules context="FindStrings" />
            </context>

            <context attribute="Selector Pseudo" lineEndContext="#pop" name="SelPseudo"
                     fallthrough="true" fallthroughContext="#pop">
                <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="Import">
                <DetectChar attribute="At Rule" context="#pop" char=";" />
                <keyword attribute="Media" context="#stay" String="mediatypes" />
                <IncludeRules context="FindValues" />
                <IncludeRules context="FindStrings" />
                <IncludeRules context="FindComments" />
            </context>

            <context attribute="Comment" lineEndContext="#stay" name="Comment">
                <DetectSpaces/>
                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" />
                <IncludeRules context="##Alerts" />
                <DetectIdentifier/>
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="RuleSet">
                <DetectChar attribute="Property" context="#pop" char="}" endRegion="ruleset" />
                <keyword attribute="Property" context="Rule" String="properties" />
                <RegExpr attribute="Unknown Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" />
                <IncludeRules context="FindComments" />
                <RegExpr attribute="Error" context="#stay" String="\S" />
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="Rule">
                <DetectChar attribute="Property" context="Rule2" char=":" />
                <RegExpr attribute="Error" context="#stay" String="\S" />
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="Rule2">
                <DetectChar attribute="Property" context="#pop#pop" char=";" />
                <DetectChar attribute="Property" context="#pop#pop#pop" char="}" endRegion="ruleset" />
                <!-- parse property values -->
                <keyword attribute="Value" context="#stay" String="types" />
                <keyword attribute="Value" context="#stay" String="colors" />
                <RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />
                <keyword attribute="Value" context="PropParen" String="paren" />
                <RegExpr attribute="Important" context="#stay" String="!important\b" />
                <IncludeRules context="FindValues" />
                <IncludeRules context="FindStrings" />
                <IncludeRules context="FindComments" />
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="PropParen">
                <DetectChar attribute="Value" context="PropParen2" char="(" />
                <IncludeRules context="FindComments" />
                <RegExpr attribute="Error" context="#stay" String="\S" />
            </context>

            <context attribute="Normal Text" lineEndContext="#stay" name="PropParen2">
                <DetectChar attribute="Value" context="#pop#pop" char=")" />
                <IncludeRules context="FindValues" />
                <IncludeRules context="FindStrings" />
                <IncludeRules context="FindComments" />
            </context>

            <!-- string contexts -->
            <context attribute="String" lineEndContext="#stay" name="StringDQ">
                <DetectChar attribute="String" context="#pop" char="&quot;" />
                <IncludeRules context="InsideString" />
            </context>

            <context attribute="String" lineEndContext="#stay" name="StringSQ">
                <DetectChar attribute="String" context="#pop" char="'" />
                <IncludeRules context="InsideString" />
            </context>

            <context attribute="String" lineEndContext="#stay" name="InsideString">
                <RegExpr attribute="String" context="#stay" String="\\[&quot;']" />
                <DetectIdentifier/>
            </context>

        </contexts>

        <itemDatas>
            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Property"  defStyleNum="dsKeyword" spellChecking="false"/>
            <itemData name="Unknown Property"  defStyleNum="dsKeyword" italic="1" spellChecking="false"/>
            <itemData name="Media"  defStyleNum="dsDecVal" bold="1" spellChecking="false"/>
            <itemData name="At Rule"  defStyleNum="dsDecVal" spellChecking="false"/>
            <itemData name="String"  defStyleNum="dsString"/>
            <itemData name="Value"  defStyleNum="dsDataType" spellChecking="false"/>
            <itemData name="Important" defStyleNum="dsKeyword" spellChecking="false"/>
            <itemData name="Selector Attr" defStyleNum="dsAttribute" spellChecking="false"/>
            <itemData name="Selector Id"  defStyleNum="dsFloat" bold="1" spellChecking="false"/>
            <itemData name="Selector Class"  defStyleNum="dsFloat" spellChecking="false"/>
            <itemData name="Selector Pseudo"  defStyleNum="dsDecVal" spellChecking="false"/>
            <itemData name="Comment" defStyleNum="dsComment" />
            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
        </itemDatas>
    </highlighting>

    <general>
        <keywords casesensitive="0" weakDeliminator="-%"/>
        <comments>
            <comment name="multiLine" start="/*" end="*/" />
        </comments>
    </general>

</language>
