<?xml version="1.0" encoding="UTF-8"?>
<!--

 This file is part of GtkSourceView

 Author: Scott Martin <scott@coffeeblack.org>
 Copyright (C) 2004 Scott Martin <scott@coffeeblack.org>
 Copyright (C) 2010 Patryk Zawadzki <patrys@pld-linux.org>
 Copyright (C) 2016 Tobias Schönberg <tobias47n9e@gmail.com>

 GtkSourceView is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.

 GtkSourceView is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

-->
<!--
	Proposed language specification for CSS (Cascading Style Sheet) files.

	Reference used:
 		http://www.w3.org/TR/CSS2/

 	Tested with:
 		http://www.simplebits.com/css/simple.css

	Submitted by

        Converted to new format with convert.py
-->
<language id="css" _name="CSS" version="2.0" _section="Other">
  <metadata>
    <property name="mimetypes">text/css</property>
    <property name="globs">*.css;*.CSSL</property>
    <property name="block-comment-start">/*</property>
    <property name="block-comment-end">*/</property>
  </metadata>

  <styles>
    <style id="error"                 _name="Error"                 map-to="def:error"/>
    <style id="others-2"              _name="Others 2"/>
    <style id="string"                _name="String"                map-to="def:string"/>
    <style id="color"                 _name="Color"                 map-to="def:base-n-integer"/>
    <style id="others-3"              _name="Others 3"/>
    <style id="function"              _name="Function"              map-to="def:function"/>
    <!-- Translator: it is a type of number -->
    <style id="decimal"               _name="Decimal"               map-to="def:decimal"/>
    <style id="dimension"             _name="Dimension"             map-to="def:floating-point"/>
    <style id="property-values"       _name="Property Value"        map-to="def:constant"/>
    <style id="at-rules"              _name="at-rules"              map-to="def:preprocessor"/>
    <style id="keyword"               _name="Keyword"               map-to="def:keyword"/>
    <style id="selector-id"           _name="ID Selector"           map-to="def:statement"/>
    <style id="selector-class"        _name="Class Selector"        map-to="def:identifier"/>
    <style id="selector-tagname"      _name="Tag Name Selector"     map-to="def:type"/>
  </styles>

  <definitions>

    <context id="unicode-character-reference" style-ref="others-2">
      <match>\\([a-fA-F0-9]{1,5}[ \t]|[a-fA-F0-9]{6})</match>
    </context>

    <context id="selector-pseudo-elements" style-ref="function">
      <prefix>:</prefix>
      <keyword>first-line</keyword>
      <keyword>first-letter</keyword>
      <keyword>before</keyword>
      <keyword>after</keyword>
    </context>

    <context id="selector-pseudo-classes" style-ref="function">
      <prefix>:</prefix>
      <keyword>enabled</keyword>
      <keyword>disabled</keyword>
      <keyword>checked</keyword>
      <keyword>indeterminate</keyword>
      <keyword>root</keyword>
      <keyword>nth-child</keyword>
      <keyword>nth-last-child</keyword>
      <keyword>nth-of-type</keyword>
      <keyword>nth-last-of-type</keyword>
      <keyword>first-child</keyword>
      <keyword>last-child</keyword>
      <keyword>first-of-type</keyword>
      <keyword>last-of-type</keyword>
      <keyword>only-child</keyword>
      <keyword>only-of-type</keyword>
      <keyword>empty</keyword>
      <keyword>not</keyword>
      <keyword>link</keyword>
      <keyword>visited</keyword>
      <keyword>hover</keyword>
      <keyword>active</keyword>
      <keyword>focus</keyword>
      <keyword>target</keyword>
      <keyword>lang</keyword>
    </context>

    <context id="css3-at-rules" style-ref="at-rules">
      <prefix>^[ \t]*@</prefix>
      <keyword>annotation</keyword>
      <keyword>character-variant</keyword>
      <keyword>font-face</keyword>
      <keyword>font-feature-values</keyword>
      <keyword>keyframes</keyword>
      <keyword>ornaments</keyword>
      <keyword>styleset</keyword>
      <keyword>stylistic</keyword>
      <keyword>swash</keyword>
    </context>

    <context id="at-rules" style-ref="at-rules">
      <prefix>^[ \t]*@</prefix>
      <keyword>charset</keyword>
      <keyword>import</keyword>
      <keyword>media</keyword>
      <keyword>page</keyword>
    </context>

    <context id="selector-id" style-ref="selector-id">
      <match>#[a-zA-Z][a-zA-Z0-9_-]*\b</match>
    </context>

    <context id="selector-class" style-ref="selector-class">
      <match>\.[a-zA-Z][a-zA-Z0-9_-]*\b</match>
    </context>

    <context id="selector-tagname" style-ref="selector-tagname">
      <match>\b[a-zA-Z][a-zA-Z0-9_-]*\b</match>
    </context>

    <context id="hexadecimal-color" style-ref="color">
      <match>#([a-fA-F0-9]{8}|[a-fA-F0-9]{6}|[a-fA-F0-9]{4}|[a-fA-F0-9]{3})\b</match>
    </context>

    <context id="named-color" style-ref="color">
      <prefix>\s</prefix>
      <suffix>($|(?=[;\s]))</suffix>
      <keyword>aqua</keyword>
      <keyword>black</keyword>
      <keyword>blue</keyword>
      <keyword>fuchsia</keyword>
      <keyword>gray</keyword>
      <keyword>green</keyword>
      <keyword>lime</keyword>
      <keyword>maroon</keyword>
      <keyword>navy</keyword>
      <keyword>olive</keyword>
      <keyword>orange</keyword>
      <keyword>purple</keyword>
      <keyword>red</keyword>
      <keyword>silver</keyword>
      <keyword>teal</keyword>
      <keyword>white</keyword>
      <keyword>yellow</keyword>
    </context>

    <context id="function">
      <start>[a-zA-Z][a-z0-9-]+\(</start>
      <end>\)</end>
      <include>
        <context sub-pattern="0" where="start" style-ref="function"/>
        <context sub-pattern="0" where="end" style-ref="function"/>
        <context ref="def:escape"/>
        <context ref="def:line-continue"/>
      </include>
    </context>

    <context id="dimension" style-ref="dimension">
      <match>[\+-]?([0-9]+|[0-9]*\.[0-9]+)(%|e(m|x)|(v(h|w|min|max))|ch|fr|rem|p(x|t|c)|in|ft|(m|c)m|k?Hz|deg|g?rad|m?s)</match>
    </context>

    <context id="resolution" style-ref="dimension">
      <match>[\+-]?([0-9]+|[0-9]*\.[0-9]+)(dpi|dpcm|dppx)</match>
    </context>

    <context id="number" style-ref="decimal">
      <match>\b(0|[\+-]?[1-9][0-9]*)</match>
    </context>

    <define-regex id="float" extended="true">
      ( (\d+)?\.\d+ | \d+\. ) |
      ( (\d+|(\d+)?\.\d+|\d+\.)[eE][+-]?\d+ )
    </define-regex>

    <context id="float-number" style-ref="dimension">
      <match>(?&lt;![\w\.])\%{float}(?![\w\.])</match>
    </context>

    <context id="unicode-range" style-ref="others-2">
      <match>[uU]\+[a-fA-F0-9]{1,6}(-[a-fA-F0-9]{1,6})?</match>
    </context>

    <context id="importance-modifier" style-ref="keyword">
      <match>\![ \t]*important</match>
    </context>

    <context id="css3-media-features" style-ref="keyword">
      <keyword>aspect-ratio</keyword>
      <keyword>color-index</keyword>
      <keyword>color</keyword>
      <keyword>device-aspect-ratio</keyword>
      <keyword>device-height</keyword>
      <keyword>device-width</keyword>
      <keyword>grid</keyword>
      <keyword>height</keyword>
      <keyword>max-aspect-ratio</keyword>
      <keyword>max-color-index</keyword>
      <keyword>max-color</keyword>
      <keyword>max-device-aspect-ratio</keyword>
      <keyword>max-device-height</keyword>
      <keyword>max-device-width</keyword>
      <keyword>max-height</keyword>
      <keyword>max-monochrome</keyword>
      <keyword>max-resolution</keyword>
      <keyword>max-width</keyword>
      <keyword>min-aspect-ratio</keyword>
      <keyword>min-color-index</keyword>
      <keyword>min-color</keyword>
      <keyword>min-device-aspect-ratio</keyword>
      <keyword>min-device-width</keyword>
      <keyword>min-device-height</keyword>
      <keyword>min-height</keyword>
      <keyword>min-monochrome</keyword>
      <keyword>min-resolution</keyword>
      <keyword>min-width</keyword>
      <keyword>monochrome</keyword>
      <keyword>orientation</keyword>
      <keyword>overflow-block</keyword>
      <keyword>overflow-inline</keyword>
      <keyword>resolution</keyword>
      <keyword>scan</keyword>
      <keyword>update-frequency</keyword>
      <keyword>width</keyword>
    </context>

    <context id="css3-media-feature-values" style-ref="property-values">
      <keyword>interlace</keyword>
      <keyword>landscape</keyword>
      <keyword>portrait</keyword>
      <keyword>progressive</keyword>
    </context>

    <context id="svg-property-names" style-ref="keyword">
      <suffix>(?=\s*:)</suffix>
      <keyword>clip-path</keyword>
      <keyword>clip-rule</keyword>
      <keyword>color-interpolatation-filters</keyword>
      <keyword>color-interpolatation</keyword>
      <keyword>dominant-baseline</keyword>
      <keyword>fill-rule</keyword>
      <keyword>fill-opacity</keyword>
      <keyword>fill</keyword>
      <keyword>flood-color</keyword>
      <keyword>flood-opacity</keyword>
      <keyword>lighting-color</keyword>
      <keyword>marker-end</keyword>
      <keyword>marker-mid</keyword>
      <keyword>marker-start</keyword>
      <keyword>shape-rendering</keyword>
      <keyword>stop-color</keyword>
      <keyword>stop-opacity</keyword>
      <keyword>stroke-dasharray</keyword>
      <keyword>stroke-dashoffset</keyword>
      <keyword>stroke-linecap</keyword>
      <keyword>stroke-linejoin</keyword>
      <keyword>stroke-miterlimit</keyword>
      <keyword>stroke-opacity</keyword>
      <keyword>stroke-width</keyword>
      <keyword>stroke</keyword>
      <keyword>text-anchor</keyword>
      <keyword>text-rendering</keyword>
    </context>

    <context id="css3-property-names" style-ref="keyword">
      <suffix>(?=\s*:)</suffix>
      <keyword>align-content</keyword>
      <keyword>align-items</keyword>
      <keyword>align-self</keyword>
      <keyword>animation-delay</keyword>
      <keyword>animation-direction</keyword>
      <keyword>animation-duration</keyword>
      <keyword>animation-fill-mode</keyword>
      <keyword>animation-iteration-count</keyword>
      <keyword>animation-name</keyword>
      <keyword>animation-play-state</keyword>
      <keyword>animation-timing-function</keyword>
      <keyword>animation</keyword>
      <keyword>appearance</keyword>
      <keyword>backface-visibility</keyword>
      <keyword>background-blend-mode</keyword>
      <keyword>background-clip</keyword>
      <keyword>background-origin</keyword>
      <keyword>background-size</keyword>
      <keyword>border-image-outset</keyword>
      <keyword>border-image-repeat</keyword>
      <keyword>border-image-slice</keyword>
      <keyword>border-image-source</keyword>
      <keyword>border-image-width</keyword>
      <keyword>border-image</keyword>
      <keyword>box-decoration-break</keyword>
      <keyword>box-sizing</keyword>
      <keyword>break-after</keyword>
      <keyword>break-before</keyword>
      <keyword>break-inside</keyword>
      <keyword>column-count</keyword>
      <keyword>column-fill</keyword>
      <keyword>column-gap</keyword>
      <keyword>column-rule-color</keyword>
      <keyword>column-rule-style</keyword>
      <keyword>column-rule-width</keyword>
      <keyword>column-rule</keyword>
      <keyword>column-span</keyword>
      <keyword>column-width</keyword>
      <keyword>columns</keyword>
      <keyword>filter</keyword>
      <keyword>flex-basis</keyword>
      <keyword>flex-direction</keyword>
      <keyword>flex-flow</keyword>
      <keyword>flex-grow</keyword>
      <keyword>flex-shrink</keyword>
      <keyword>flex-wrap</keyword>
      <keyword>flex</keyword>
      <keyword>font-feature-settings</keyword>
      <keyword>font-kerning</keyword>
      <keyword>font-language-override</keyword>
      <keyword>font-stretch</keyword>
      <keyword>font-synthesis</keyword>
      <keyword>font-variant-alternates</keyword>
      <keyword>font-variant-caps</keyword>
      <keyword>font-variant-east-asian</keyword>
      <keyword>font-variant-ligatures</keyword>
      <keyword>font-variant-numeric</keyword>
      <keyword>font-variant-position</keyword>
      <keyword>grid-area</keyword>
      <keyword>grid-gap</keyword>
      <keyword>grid-auto-columns</keyword>
      <keyword>grid-auto-flow</keyword>
      <keyword>grid-auto-rows</keyword>
      <keyword>grid-column-end</keyword>
      <keyword>grid-column-gap</keyword>
      <keyword>grid-column-start</keyword>
      <keyword>grid-column</keyword>
      <keyword>grid-row-end</keyword>
      <keyword>grid-row-gap</keyword>
      <keyword>grid-row-start</keyword>
      <keyword>grid-row</keyword>
      <keyword>grid-template-areas</keyword>
      <keyword>grid-template-columns</keyword>
      <keyword>grid-template-rows</keyword>
      <keyword>grid-template</keyword>
      <keyword>grid</keyword>
      <keyword>hanging-punctuation</keyword>
      <keyword>hyphens</keyword>
      <keyword>image-orientation</keyword>
      <keyword>image-rendering</keyword>
      <keyword>image-resolution</keyword>
      <keyword>ime-mode</keyword>
      <keyword>justify-content</keyword>
      <keyword>justify-self</keyword>
      <keyword>line-break</keyword>
      <keyword>mask-type</keyword>
      <keyword>mask</keyword>
      <keyword>nav-down</keyword>
      <keyword>nav-index</keyword>
      <keyword>nav-left</keyword>
      <keyword>nav-right</keyword>
      <keyword>nav-up</keyword>
      <keyword>object-fit</keyword>
      <keyword>object-position</keyword>
      <keyword>opacity</keyword>
      <keyword>order</keyword>
      <keyword>outline-offset</keyword>
      <keyword>overflow-wrap</keyword>
      <keyword>overflow-x</keyword>
      <keyword>overflow-y</keyword>
      <keyword>perspective-origin</keyword>
      <keyword>perspective</keyword>
      <keyword>pointer-events</keyword>
      <keyword>resize</keyword>
      <keyword>tab-size</keyword>
      <keyword>text-align-last</keyword>
      <keyword>text-combine-upright</keyword>
      <keyword>text-decoration-color</keyword>
      <keyword>text-decoration-line</keyword>
      <keyword>text-decoration-style</keyword>
      <keyword>text-justify</keyword>
      <keyword>text-orientation</keyword>
      <keyword>text-overflow</keyword>
      <keyword>text-underline-position</keyword>
      <keyword>transform-origin</keyword>
      <keyword>transform-style</keyword>
      <keyword>transform</keyword>
      <keyword>transition-delay</keyword>
      <keyword>transition-duration</keyword>
      <keyword>transition-property</keyword>
      <keyword>transition-timing-function</keyword>
      <keyword>transition</keyword>
      <keyword>word-break</keyword>
      <keyword>word-wrap</keyword>
      <keyword>writing-mode</keyword>
    </context>

    <context id="property-names" style-ref="keyword">
      <suffix>(?=\s*:)</suffix>
      <keyword>azimuth</keyword>
      <keyword>background-attachment</keyword>
      <keyword>background-color</keyword>
      <keyword>background-image</keyword>
      <keyword>background-position</keyword>
      <keyword>background-repeat</keyword>
      <keyword>background</keyword>
      <keyword>border-bottom-color</keyword>
      <keyword>border-bottom-left-radius</keyword>
      <keyword>border-bottom-right-radius</keyword>
      <keyword>border-bottom-style</keyword>
      <keyword>border-bottom-width</keyword>
      <keyword>border-bottom</keyword>
      <keyword>border-collapse</keyword>
      <keyword>border-color</keyword>
      <keyword>border-left-color</keyword>
      <keyword>border-left-style</keyword>
      <keyword>border-left-width</keyword>
      <keyword>border-left</keyword>
      <keyword>border-radius</keyword>
      <keyword>border-right-color</keyword>
      <keyword>border-right-style</keyword>
      <keyword>border-right-width</keyword>
      <keyword>border-right</keyword>
      <keyword>border-spacing</keyword>
      <keyword>border-style</keyword>
      <keyword>border-top-color</keyword>
      <keyword>border-top-left-radius</keyword>
      <keyword>border-top-right-radius</keyword>
      <keyword>border-top-style</keyword>
      <keyword>border-top-width</keyword>
      <keyword>border-top</keyword>
      <keyword>border-width</keyword>
      <keyword>border</keyword>
      <keyword>bottom</keyword>
      <keyword>box-shadow</keyword>
      <keyword>caption-side</keyword>
      <keyword>clear</keyword>
      <keyword>clip</keyword>
      <keyword>color</keyword>
      <keyword>content</keyword>
      <keyword>counter-increment</keyword>
      <keyword>counter-reset</keyword>
      <keyword>cue-after</keyword>
      <keyword>cue-before</keyword>
      <keyword>cue</keyword>
      <keyword>cursor</keyword>
      <keyword>direction</keyword>
      <keyword>display</keyword>
      <keyword>elevation</keyword>
      <keyword>empty-cells</keyword>
      <keyword>float</keyword>
      <keyword>font-family</keyword>
      <keyword>font-size-adjust</keyword>
      <keyword>font-size</keyword>
      <keyword>font-style</keyword>
      <keyword>font-variant</keyword>
      <keyword>font-weight</keyword>
      <keyword>font</keyword>
      <keyword>height</keyword>
      <keyword>left</keyword>
      <keyword>letter-spacing</keyword>
      <keyword>line-height</keyword>
      <keyword>list-style-image</keyword>
      <keyword>list-style-position</keyword>
      <keyword>list-style-type</keyword>
      <keyword>list-style</keyword>
      <keyword>margin-bottom</keyword>
      <keyword>margin-left</keyword>
      <keyword>margin-right</keyword>
      <keyword>margin-top</keyword>
      <keyword>margin</keyword>
      <keyword>marker-offset</keyword>
      <keyword>marks</keyword>
      <keyword>max-height</keyword>
      <keyword>max-width</keyword>
      <keyword>min-height</keyword>
      <keyword>min-width</keyword>
      <keyword>orphans</keyword>
      <keyword>outline-color</keyword>
      <keyword>outline-style</keyword>
      <keyword>outline-width</keyword>
      <keyword>outline</keyword>
      <keyword>overflow</keyword>
      <keyword>padding-bottom</keyword>
      <keyword>padding-left</keyword>
      <keyword>padding-right</keyword>
      <keyword>padding-top</keyword>
      <keyword>padding</keyword>
      <keyword>page-break-after</keyword>
      <keyword>page-break-before</keyword>
      <keyword>page-break-inside</keyword>
      <keyword>page</keyword>
      <keyword>pause-after</keyword>
      <keyword>pause-before</keyword>
      <keyword>pause</keyword>
      <keyword>pitch-range</keyword>
      <keyword>pitch</keyword>
      <keyword>play-during</keyword>
      <keyword>position</keyword>
      <keyword>quotes</keyword>
      <keyword>richness</keyword>
      <keyword>right</keyword>
      <keyword>size</keyword>
      <keyword>speak-header</keyword>
      <keyword>speak-numeral</keyword>
      <keyword>speak-punctuation</keyword>
      <keyword>speak</keyword>
      <keyword>speech-rate</keyword>
      <keyword>stress</keyword>
      <keyword>table-layout</keyword>
      <keyword>text-align</keyword>
      <keyword>text-decoration</keyword>
      <keyword>text-indent</keyword>
      <keyword>text-shadow</keyword>
      <keyword>text-transform</keyword>
      <keyword>top</keyword>
      <keyword>unicode-bidi</keyword>
      <keyword>vertical-align</keyword>
      <keyword>visibility</keyword>
      <keyword>voice-family</keyword>
      <keyword>volume</keyword>
      <keyword>white-space</keyword>
      <keyword>widows</keyword>
      <keyword>width</keyword>
      <keyword>word-spacing</keyword>
      <keyword>z-index</keyword>
    </context>

    <context id="svg-property-values" style-ref="property-values">
      <prefix>\s</prefix>
      <suffix>($|(?=[;\s]))</suffix>
      <keyword>alphabetic</keyword>
      <keyword>bevel</keyword>
      <keyword>butt</keyword>
      <keyword>central</keyword>
      <keyword>crisp(E|e)dges</keyword>
      <keyword>evenodd</keyword>
      <keyword>geometric(P|p)recision</keyword>
      <keyword>hanging</keyword>
      <keyword>ideographic</keyword>
      <keyword>lr-tb</keyword>
      <keyword>lr</keyword>
      <keyword>mathematical</keyword>
      <keyword>miter</keyword>
      <keyword>no-change</keyword>
      <keyword>nonzero</keyword>
      <keyword>optimize(L|l)egibility</keyword>
      <keyword>optimize(S|s)peed</keyword>
      <keyword>reset-size</keyword>
      <keyword>rl-tb</keyword>
      <keyword>rl</keyword>
      <keyword>tb-rl</keyword>
      <keyword>tb</keyword>
      <keyword>text-after-edge</keyword>
      <keyword>text-before-edge</keyword>
      <keyword>use-script</keyword>
    </context>

    <context id="css3-property-values" style-ref="property-values">
      <prefix>\s</prefix>
      <suffix>($|(?=[;\s]))</suffix>
      <keyword>active</keyword>
      <keyword>add</keyword>
      <keyword>allow-end</keyword>
      <keyword>all-petite-caps</keyword>
      <keyword>all-small-caps</keyword>
      <keyword>all-scroll</keyword> <!-- css2, but needed for regex -->
      <keyword>all</keyword>
      <keyword>alpha</keyword>
      <keyword>alternate-reverse</keyword>
      <keyword>alternate</keyword>
      <keyword>avoid-page</keyword>
      <keyword>auto-flow</keyword>
      <keyword>backwards</keyword>
      <keyword>balance</keyword>
      <keyword>border-box</keyword>
      <keyword>break-all</keyword>
      <keyword>break-word</keyword>
      <keyword>clip</keyword>
      <keyword>color-dodge</keyword>
      <keyword>color</keyword>
      <keyword>column-reverse</keyword>
      <keyword>column</keyword>
      <keyword>common-ligatures</keyword>
      <keyword>contain</keyword>
      <keyword>content-box</keyword>
      <keyword>contextual</keyword>
      <keyword>cover</keyword>
      <keyword>crisp-edges</keyword>
      <keyword>darken</keyword>
      <keyword>dense</keyword>
      <keyword>diagonal-fractions</keyword>
      <keyword>disabled</keyword>
      <keyword>discretionary-ligatures</keyword>
      <keyword>distribute</keyword>
      <keyword>ease-in-out</keyword>
      <keyword>ease-in</keyword>
      <keyword>ease-out</keyword>
      <keyword>ease</keyword>
      <keyword>ellipsis</keyword>
      <keyword>end</keyword>
      <keyword>exclude</keyword>
      <keyword>fill-box</keyword>
      <keyword>fill</keyword>
      <keyword>first</keyword>
      <keyword>flat</keyword>
      <keyword>flex-end</keyword>
      <keyword>flex-start</keyword>
      <keyword>flex</keyword>
      <keyword>flip</keyword>
      <keyword>force-end</keyword>
      <keyword>forwards</keyword>
      <keyword>from-image</keyword>
      <keyword>full-width</keyword>
      <keyword>grid</keyword>
      <keyword>historical-forms</keyword>
      <keyword>historical-ligatures</keyword>
      <keyword>horizontal-tb</keyword>
      <keyword>horizontal</keyword>
      <keyword>inactive</keyword>
      <keyword>infinite</keyword>
      <keyword>initial</keyword>
      <keyword>inline-flex</keyword>
      <keyword>inline-grid</keyword>
      <keyword>inter-cluster</keyword>
      <keyword>inter-ideograph</keyword>
      <keyword>inter-word</keyword>
      <keyword>intersect</keyword>
      <keyword>kashida</keyword>
      <keyword>keep-all</keyword>
      <keyword>last</keyword>
      <keyword>left-side</keyword> <!-- css2, but needed for regex -->
      <keyword>left</keyword>
      <keyword>lighten</keyword>
      <keyword>linear</keyword>
      <keyword>lining-nums</keyword>
      <keyword>local</keyword>
      <keyword>loose</keyword>
      <keyword>luminance</keyword>
      <keyword>luminosity</keyword>
      <keyword>manual</keyword>
      <keyword>mixed</keyword>
      <keyword>multiply</keyword>
      <keyword>no-clip</keyword>
      <keyword>no-common-ligatures</keyword>
      <keyword>no-contextual</keyword>
      <keyword>no-discretionary-ligatures</keyword>
      <keyword>no-historical-ligatures</keyword>
      <keyword>oldstyle-nums</keyword>
      <keyword>ordinal</keyword>
      <keyword>overlay</keyword>
      <keyword>padding-box</keyword>
      <keyword>page</keyword>
      <keyword>paused</keyword>
      <keyword>petite-caps</keyword>
      <keyword>pixelated</keyword>
      <keyword>preserve-3d</keyword>
      <keyword>proportional-nums</keyword>
      <keyword>proportional-width</keyword>
      <keyword>reverse</keyword>
      <keyword>round</keyword>
      <keyword>row-reverse</keyword>
      <keyword>row</keyword>
      <keyword>ruby</keyword>
      <keyword>running</keyword>
      <keyword>saturation</keyword>
      <keyword>scale-down</keyword>
      <keyword>screen</keyword>
      <keyword>sideways-left</keyword>
      <keyword>sideways-right</keyword>
      <keyword>sideways</keyword>
      <keyword>simplified</keyword>
      <keyword>slashed-zero</keyword>
      <keyword>space-around</keyword>
      <keyword>space-between</keyword>
      <keyword>space-evenly</keyword>
      <keyword>space</keyword>
      <keyword>stacked-fractions</keyword>
      <keyword>start</keyword>
      <keyword>stretch</keyword>
      <keyword>strict</keyword>
      <keyword>stroke-box</keyword>
      <keyword>style</keyword>
      <keyword>stylistic</keyword>
      <keyword>subtract</keyword>
      <keyword>tabular-nums</keyword>
      <keyword>titling-caps</keyword>
      <keyword>traditional</keyword>
      <keyword>trim</keyword>
      <keyword>under</keyword>
      <keyword>unicase</keyword>
      <keyword>unset</keyword>
      <keyword>upright</keyword>
      <keyword>use-glyph-orientation</keyword>
      <keyword>vertical-lr</keyword>
      <keyword>vertical-rl</keyword>
      <keyword>vertical</keyword>
      <keyword>view-box</keyword>
      <keyword>wavy</keyword>
      <keyword>weight</keyword>
      <keyword>wrap-reverse</keyword>
      <keyword>wrap</keyword>
    </context>

    <context id="property-values" style-ref="property-values">
      <prefix>\s</prefix>
      <suffix>($|(?=[;\s]))</suffix>
      <keyword>above</keyword>
      <keyword>absolute</keyword>
      <keyword>alias</keyword>
      <keyword>all-scroll</keyword>
      <keyword>always</keyword>
      <keyword>armenian</keyword>
      <keyword>auto</keyword>
      <keyword>avoid</keyword>
      <keyword>baseline</keyword>
      <keyword>behind</keyword>
      <keyword>below</keyword>
      <keyword>bidi-override</keyword>
      <keyword>blink</keyword>
      <keyword>block</keyword>
      <keyword>bolder</keyword>
      <keyword>bold</keyword>
      <keyword>both</keyword>
      <keyword>bottom</keyword>
      <keyword>capitalize</keyword>
      <keyword>caption</keyword>
      <keyword>cell</keyword>
      <keyword>center-left</keyword>
      <keyword>center-right</keyword>
      <keyword>center</keyword>
      <keyword>circle</keyword>
      <keyword>cjk-ideographic</keyword>
      <keyword>close-quote</keyword>
      <keyword>code</keyword>
      <keyword>collapse</keyword>
      <keyword>col-resize</keyword>
      <keyword>compact</keyword>
      <keyword>condensed</keyword>
      <keyword>continuous</keyword>
      <keyword>context-menu</keyword>
      <keyword>copy</keyword>
      <keyword>crop</keyword>
      <keyword>crosshair</keyword>
      <keyword>cross</keyword>
      <keyword>cue-after</keyword>
      <keyword>cue-before</keyword>
      <keyword>cursive</keyword>
      <keyword>dashed</keyword>
      <keyword>decimal</keyword>
      <keyword>decimal-leading-zero</keyword>
      <keyword>default</keyword>
      <keyword>digits</keyword>
      <keyword>disc</keyword>
      <keyword>dotted</keyword>
      <keyword>double</keyword>
      <keyword>embed</keyword>
      <keyword>e-resize</keyword>
      <keyword>ew-resize</keyword>
      <keyword>expanded</keyword>
      <keyword>extra-condensed</keyword>
      <keyword>extra-expanded</keyword>
      <keyword>fantasy</keyword>
      <keyword>far-left</keyword>
      <keyword>far-right</keyword>
      <keyword>faster</keyword>
      <keyword>fast</keyword>
      <keyword>fixed</keyword>
      <keyword>flow-root</keyword>
      <keyword>georgian</keyword>
      <keyword>grabbing</keyword>
      <keyword>grab</keyword>
      <keyword>groove</keyword>
      <keyword>hebrew</keyword>
      <keyword>help</keyword>
      <keyword>hidden</keyword>
      <keyword>hide</keyword>
      <keyword>higher</keyword>
      <keyword>high</keyword>
      <keyword>hiragana-iroha</keyword>
      <keyword>hiragana</keyword>
      <keyword>icon</keyword>
      <keyword>inherit</keyword>
      <keyword>inline-block</keyword>
      <keyword>inline-table</keyword>
      <keyword>inline</keyword>
      <keyword>inset</keyword>
      <keyword>inside</keyword>
      <keyword>invert</keyword>
      <keyword>italic</keyword>
      <keyword>justify</keyword>
      <keyword>katakana-iroha</keyword>
      <keyword>katakana</keyword>
      <keyword>landscape</keyword>
      <keyword>large</keyword>
      <keyword>larger</keyword>
      <keyword>left-side</keyword>
      <keyword>leftwards</keyword>
      <keyword>level</keyword>
      <keyword>lighter</keyword>
      <keyword>line-through</keyword>
      <keyword>list-item</keyword>
      <keyword>loud</keyword>
      <keyword>lower-alpha</keyword>
      <keyword>lowercase</keyword>
      <keyword>lower-greek</keyword>
      <keyword>lower-latin</keyword>
      <keyword>lower-roman</keyword>
      <keyword>lower</keyword>
      <keyword>low</keyword>
      <keyword>ltr</keyword>
      <keyword>marker</keyword>
      <keyword>medium</keyword>
      <keyword>menu</keyword>
      <keyword>message-box</keyword>
      <keyword>middle</keyword>
      <keyword>mix</keyword>
      <keyword>monospace</keyword>
      <keyword>move</keyword>
      <keyword>narrower</keyword>
      <keyword>ne-resize</keyword>
      <keyword>nesw-resize</keyword>
      <keyword>no-close-quote</keyword>
      <keyword>no-drop</keyword>
      <keyword>no-open-quote</keyword>
      <keyword>no-repeat</keyword>
      <keyword>none</keyword>
      <keyword>normal</keyword>
      <keyword>not-allowed</keyword>
      <keyword>nowrap</keyword>
      <keyword>ns-resize</keyword>
      <keyword>nw-resize</keyword>
      <keyword>n-resize</keyword>
      <keyword>oblique</keyword>
      <keyword>once</keyword>
      <keyword>open-quote</keyword>
      <keyword>outset</keyword>
      <keyword>outside</keyword>
      <keyword>overline</keyword>
      <keyword>pointer</keyword>
      <keyword>portait</keyword>
      <keyword>pre-line</keyword>
      <keyword>pre-wrap</keyword>
      <keyword>pre</keyword>
      <keyword>progress</keyword>
      <keyword>relative</keyword>
      <keyword>repeat-x</keyword>
      <keyword>repeat-y</keyword>
      <keyword>repeat</keyword>
      <keyword>ridge</keyword>
      <keyword>right-side</keyword>
      <keyword>right</keyword>
      <keyword>rightwards</keyword>
      <keyword>row-resize</keyword>
      <keyword>rtl</keyword>
      <keyword>run-in</keyword>
      <keyword>sans-serif</keyword>
      <keyword>scroll</keyword>
      <keyword>semi-condensed</keyword>
      <keyword>semi-expanded</keyword>
      <keyword>separate</keyword>
      <keyword>se-resize</keyword>
      <keyword>serif</keyword>
      <keyword>show</keyword>
      <keyword>silent</keyword>
      <keyword>slower</keyword>
      <keyword>slow</keyword>
      <keyword>small-caps</keyword>
      <keyword>smaller</keyword>
      <keyword>small-caption</keyword>
      <keyword>small</keyword>
      <keyword>soft</keyword>
      <keyword>solid</keyword>
      <keyword>spell-out</keyword>
      <keyword>square</keyword>
      <keyword>se-resize</keyword>
      <keyword>sw-resize</keyword>
      <keyword>s-resize</keyword>
      <keyword>static</keyword>
      <keyword>status-bar</keyword>
      <keyword>sub</keyword>
      <keyword>super</keyword>
      <keyword>sw-resize</keyword>
      <keyword>table-caption</keyword>
      <keyword>table-cell</keyword>
      <keyword>table-column-group</keyword>
      <keyword>table-column</keyword>
      <keyword>table-footer-group</keyword>
      <keyword>table-header-group</keyword>
      <keyword>table-row-group</keyword>
      <keyword>table-row</keyword>
      <keyword>table</keyword>
      <keyword>text-bottom</keyword>
      <keyword>text</keyword>
      <keyword>text-top</keyword>
      <keyword>thick</keyword>
      <keyword>thin</keyword>
      <keyword>top</keyword>
      <keyword>transparent</keyword>
      <keyword>ultra-condensed</keyword>
      <keyword>ultra-expanded</keyword>
      <keyword>underline</keyword>
      <keyword>upper-alpha</keyword>
      <keyword>uppercase</keyword>
      <keyword>upper-latin</keyword>
      <keyword>upper-roman</keyword>
      <keyword>vertical-text</keyword>
      <keyword>visible</keyword>
      <keyword>wait</keyword>
      <keyword>wider</keyword>
      <keyword>w-resize</keyword>
      <keyword>x-fast</keyword>
      <keyword>x-high</keyword>
      <keyword>x-large</keyword>
      <keyword>x-loud</keyword>
      <keyword>x-low</keyword>
      <keyword>x-slow</keyword>
      <keyword>x-small</keyword>
      <keyword>x-soft</keyword>
      <keyword>xx-large</keyword>
      <keyword>xx-small</keyword>
      <keyword>zoom-in</keyword>
      <keyword>zoom-out</keyword>
    </context>

    <context id="style-block">
      <start>\{</start>
      <end>\}</end>
      <include>
        <context ref="def:c-like-comment-multiline"/>
        <context ref="def:c-like-close-comment-outside-comment"/>
        <context ref="css3-at-rules"/>
        <context ref="at-rules"/>
        <context ref="style-block"/>
        <context ref="hexadecimal-color"/>
        <context ref="named-color"/>
        <context ref="function"/>
        <context ref="dimension"/>
        <context ref="float-number"/>
        <context ref="number"/>
        <context ref="unicode-range"/>
        <context ref="importance-modifier"/>
        <context ref="svg-property-names"/>
        <context ref="css3-property-names"/>
        <context ref="property-names"/>
        <context ref="svg-property-values"/>
        <context ref="css3-property-values"/>
        <context ref="property-values"/>
      </include>
    </context>

    <context id="punctuators" style-ref="others-3">
      <match>[{}();,]</match>
    </context>

    <context id="attribute-value-delimiters" style-ref="others-2">
      <match>(\[|\])</match>
    </context>

    <context id="operators" style-ref="function">
      <match>[@%~|!=]</match>
    </context>

    <context id="selector-grammar" style-ref="others-3">
      <match>[*&gt;+]</match>
    </context>

    <context id="css" class="no-spell-check">
      <include>
        <context ref="def:string"/>
        <context ref="def:single-quoted-string"/>
        <context ref="def:c-like-comment-multiline"/>
        <context ref="def:c-like-close-comment-outside-comment"/>
        <context ref="unicode-character-reference"/>
        <context ref="selector-pseudo-elements"/>
        <context ref="selector-pseudo-classes"/>
        <context ref="css3-at-rules"/>
        <context ref="at-rules"/>
        <context ref="style-block"/>
        <context ref="punctuators"/>
        <context ref="attribute-value-delimiters"/>
        <context ref="operators"/>
        <context ref="selector-grammar"/>
        <context ref="selector-id"/>
        <context ref="selector-class"/>
        <context ref="selector-tagname"/>
        <context id="at-media-call">
          <start>(?&lt;=(@media))</start>
          <end>\{</end>
          <include>
            <context id="media-keywords" style-ref="at-rules">
              <keyword>and</keyword>
              <keyword>not</keyword>
              <keyword>only</keyword>
            </context>
            <context id="media-types" style-ref="keyword">
              <keyword>all</keyword>
              <keyword>print</keyword>
              <keyword>screen</keyword>
              <keyword>speech</keyword>
            </context>
            <context id="at-media-arguments">
              <start>\(</start>
              <end>\)</end>
              <include>
                <context ref="css3-media-features"/>
                <context ref="css3-media-feature-values"/>
                <context ref="hexadecimal-color"/>
                <context ref="resolution"/>
                <context ref="dimension"/>
                <context ref="float-number"/>
                <context ref="number"/>
              </include>
            </context>
          </include>
        </context>
      </include>
    </context>

  </definitions>
</language>
