<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language
[
  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
  <!ENTITY escaped "\\([0-9a-fA-F]{1,6}|[^\n\r\f0-9a-fA-F])">
  <!ENTITY ident   "-?([_a-zA-Z]|&escaped;)([-_a-zA-Z0-9]+|&escaped;)*">
  <!-- identifiers starting with several - are invalid, but supported by browsers -->
  <!ENTITY ident2  "([-\w]+|&escaped;)+">
  <!ENTITY var     "--[-\w]*">
  <!ENTITY func    "-?[a-zA-Z][-a-zA-Z0-9]*">
  <!ENTITY propcheck "(?=\s*(/[*].*?[*]/\s*)?:)">
]>

<!--

Kate CSS syntax highlighting definition

Changelog:

- Version 8, by Jonathan Poelen
- fix some Operator and Selector Tag highlighting

- Version 7, by Jonathan Poelen
- fix tag followed by a pseudo-class in a nested rule (@media, ...)
- fix constraint in a rule
- fix Kate auto-completion for properties and rules
- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Variable, Value Keyword, Color, Number, Unit, Selector Tag

- Version 4, by Guo Yunhe guoyunhebrave@gmail.com
- Remake for complex CSS syntax, avoid errors

- 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

-->



<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->



<language name="CSS/Twig" hidden="true" version="17" kateversion="5.79" section="Other" extensions="" indenter="cstyle" mimetype="text/x-twig" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" >
    <highlighting>
        <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties (exclude FPWD)-->
        <list name="properties"><include>properties##CSS</include></list>

        <list name="vendor properties"><include>vendor properties##CSS</include></list>

        <list name="value keywords"><include>value keywords##CSS</include></list>

        <list name="values"><include>values##CSS</include></list>

        <list name="colors"><include>colors##CSS</include></list>

        <!-- https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions -->
        <list name="functions"><include>functions##CSS</include></list>

        <list name="media types"><include>media types##CSS</include></list>

        <list name="media features"><include>media features##CSS</include></list>

        <!-- prefixed by :: -->
        <list name="pseudo-elements"><include>pseudo-elements##CSS</include></list>

        <!-- prefixed by : -->
        <list name="pseudo-classes"><include>pseudo-classes##CSS</include></list>

        <list name="@page pseudo-classes"><include>@page pseudo-classes##CSS</include></list>

        <list name="at-rules"><include>at-rules##CSS</include></list>

        <list name="at-rules definitions"><include>at-rules definitions##CSS</include></list>

        <list name="media operators"><include>media operators##CSS</include></list>

        <contexts>
            <context name="Base" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Block Symbol" context="RuleSet" char="{" beginRegion="ruleset"/>
                <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
                <IncludeRules context="FindSelector"/>
            </context>

            <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
            <context name="FindSelector" attribute="Normal Text">
                <DetectChar attribute="Separator Symbol" char=","/>
                <DetectChar attribute="Selector Pseudo" context="PseudoClassOrElement" char=":"/>
                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="["/>
                <DetectChar attribute="Selector Pseudo" context="PseudoClassSelector" char="("/>
                <AnyChar attribute="Selector Symbol" String="*>+~|&amp;"/>
                <IncludeRules context="FindComments"/>
                <RegExpr attribute="Selector Class" String="\.&ident2;"/>
                <RegExpr attribute="Selector Id" String="#&ident2;"/>
                <RegExpr attribute="Selector Tag" String="&ident;"/>
            </context>

            <!-- find functions // rgba(255,255,255,0.75) -->
            <context name="FindFunctions" attribute="Normal Text">
                <RegExpr context="Function" String="(&func;)?\(" lookAhead="1"/>
            </context>
            <context name="FindNestedFunctions" attribute="Normal Text">
                <RegExpr context="NestedFunction" String="(&func;)?\(" lookAhead="1"/>
            </context>

            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
            <context name="FindValues" attribute="Normal Text">
                <DetectChar attribute="Annotation" context="Annotation" char="!"/>
                <keyword attribute="Value Keyword" String="value keywords"/>
                <keyword attribute="Value" String="values"/>
                <keyword attribute="Named Color" String="colors"/>
                <RegExpr attribute="Color" String="#([0-9A-Fa-f]{8}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{3,4})"/>
                <IncludeRules context="FindNumber"/>
                <IncludeRules context="FindIdentifier"/>
            </context>

            <context name="FindNumber" attribute="Number" lineEndContext="#pop">
                <RegExpr attribute="Number" context="FindUnits" String="[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?(?![-+])"/>
            </context>

            <context name="FindIdentifier" attribute="Number" lineEndContext="#pop">
                <RegExpr String="&ident2;\s*"/>
            </context>

            <context name="FindVendorProperty" attribute="Normal Text">
                <RegExpr attribute="Vendor Property" String="-(webkit|moz|o|ms)-[-_a-zA-Z0-9]*"/>
            </context>

            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <WordDetect attribute="Annotation" context="#pop" String="important"/>
            </context>

            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
                <!-- https://drafts.csswg.org/css-values-4/#lengths -->
                <!-- https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Values_and_Units -->
                <RegExpr attribute="Unit" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cqw|cqh|cqi|cqb|cqmin|cqmax|cm|mm|Q|in|pc|pt|px|deg|grad|rad|turn|s|ms|Hz|kHz|fr|dpi|dpcm|dppx|x)\b)(?![-+])"/>
            </context>

            <!-- find strings // "some words" 'some words' -->
            <context name="FindStrings" attribute="Normal Text">
                <DetectChar attribute="String" context="StringDQ" char="&quot;"/>
                <DetectChar attribute="String" context="StringSQ" char="'"/>
            </context>

            <!-- find comments // /* comment */ -->
            <context name="FindComments" attribute="Normal Text">
                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="1"/>
                <Detect2Chars attribute="Error" context="Error" char="/" char1="/"/>
            </context>

            <context name="Error" attribute="Error" lineEndContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <RegExpr attribute="Error" context="#pop" String=".*"/>
            </context>

            <context name="IsComments" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*BEGIN\b.*\*/" beginRegion="UserDefined"/>
                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*END\b.*\*/" endRegion="UserDefined"/>
                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment"/>
            </context>

            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <WordDetect attribute="At Rule" context="@keyframes" String="@keyframes"/>
                <WordDetect attribute="At Rule" context="@layer" String="@layer"/>
                <WordDetect attribute="At Rule" context="@font-feature-values" String="@font-feature-values"/>
                <WordDetect attribute="At Rule" context="@page" String="@page"/>
                <WordDetect attribute="At Rule" context="@supports" String="@supports"/>
                <keyword attribute="At Rule" context="@property" String="at-rules definitions"/>
                <RegExpr attribute="At Rule" context="@media" String="@[-a-zA-Z0-9_]*"/>
            </context>


            <context name="AtRuleCommon" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char=";" context="#pop#pop" attribute="Separator Symbol"/>
                <DetectChar char="}" context="#pop#pop" lookAhead="1"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="AtRuleCommon2" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char="{" context="#pop#pop!NestedRule" attribute="Block Symbol" beginRegion="ruleset"/>
                <IncludeRules context="AtRuleCommon"/>
            </context>


            <context name="@media" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="(" context="AtRuleMediaCondition" attribute="Condition Open/Close"/>
                <IncludeRules context="AtRuleCommon2"/>
                <IncludeRules context="FindFunctions"/>
                <keyword String="media operators" attribute="Keyword"/>
                <keyword String="media types" attribute="Media Type"/>
                <DetectIdentifier/>
            </context>

            <context name="AtRuleMediaCondition" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char=";" context="#pop#pop#pop" attribute="Error"/>
                <DetectChar char="{" context="#pop#pop#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
                <DetectChar char="}" context="#pop#pop#pop" lookAhead="1"/>
                <IncludeRules context="AtRuleMediaConditionValue"/>
            </context>
            <context name="NestedAtRuleMediaCondition" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <IncludeRules context="AtRuleMediaConditionValue"/>
            </context>
            <context name="AtRuleMediaConditionValue" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <AnyChar String="&lt;>=" attribute="Operator"/>
                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
                <DetectChar char="(" context="NestedAtRuleMediaCondition" attribute="Condition Open/Close"/>
                <DetectChar char=":" attribute="Property Separator"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindFunctions"/>
                <IncludeRules context="FindNumber"/>
                <keyword String="media operators" attribute="Keyword"/>
                <keyword String="media features" attribute="Condition Property"/>
                <IncludeRules context="FindIdentifier"/>
            </context>

            <context name="NestedRule" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
                <DetectChar char="{" context="RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
                <DetectChar char="@" context="SelectAtRule" lookAhead="1"/>
                <IncludeRules context="FindSelector"/>
            </context>


            <context name="@supports" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="(" context="AtRuleSupportsCondition" lookAhead="1"/>
                <IncludeRules context="AtRuleCommon2"/>
                <keyword String="media operators" attribute="Keyword"/>
                <WordDetect String="selector(" context="FunctionSelector" attribute="Function"/>
                <WordDetect String="font-tech(" context="#pop!SupportsProp" lookAhead="1"/>
                <WordDetect String="font-format(" context="#pop!SupportsProp" lookAhead="1"/>
                <DetectIdentifier/>
            </context>
            <context name="SupportsProp" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="{" context="#pop#pop!RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
                <WordDetect String="font-tech(" context="FunctionFont" attribute="Function"/>
                <WordDetect String="font-format(" context="FunctionFont" attribute="Function"/>
                <IncludeRules context="AtRuleCommon"/>
            </context>

            <context name="AtRuleSupportsCondition" attribute="At Rule Text" fallthroughContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
                <DetectChar char=";" context="#pop#pop#pop" attribute="Error"/>
                <DetectChar char="{" context="#pop#pop#pop!NestedRule" attribute="Error" beginRegion="ruleset"/>
                <DetectChar char="}" context="#pop#pop#pop" lookAhead="1"/>
            </context>
            <context name="SupportsCondition" attribute="At Rule Text" fallthroughContext="#pop!SupportsConditionValue">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
                <DetectChar char=":" context="#pop!SupportsConditionValue" attribute="Property Separator"/>
                <IncludeRules context="FindComments"/>
                <keyword String="media operators" attribute="Keyword"/>
                <keyword String="properties" attribute="Condition Property"/>
                <IncludeRules context="FindVendorProperty"/>
            </context>
            <context name="SupportsConditionValue" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindFunctions"/>
                <IncludeRules context="FindValues"/>
            </context>

            <context name="FunctionSelector" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <DetectChar char=")" context="#pop" attribute="Function"/>
                <IncludeRules context="FindSelector"/>
            </context>
            <context name="FunctionFont" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectIdentifier/>
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <DetectChar char=")" context="#pop" attribute="Function"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
            </context>


            <context name="@layer" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectIdentifier/>
                <DetectChar attribute="Separator Symbol" char=","/>
                <IncludeRules context="AtRuleCommon2"/>
            </context>


            <context name="@page" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Selector Pseudo" char=":"/>
                <AnyChar String="{};" context="#pop#pop" lookAhead="1"/>
                <IncludeRules context="FindComments"/>
                <keyword attribute="Selector Pseudo" String="@page pseudo-classes"/>
                <DetectIdentifier/>
            </context>


            <context name="@property" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="-"/>
                <DetectChar char="{" context="#pop#pop!RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
                <IncludeRules context="AtRuleCommon"/>
                <DetectIdentifier/>
            </context>


            <context name="@font-feature-values" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectIdentifier/>
                <DetectChar char="{" context="#pop#pop!FontFeatureBlock" attribute="Block Symbol" beginRegion="ruleset"/>
                <IncludeRules context="AtRuleCommon"/>
            </context>
            <context name="FontFeatureBlock" attribute="Normal Text" fallthroughContext="#pop!NestedRule">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
                <DetectChar char="{" context="AtRuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
                <RegExpr String="@[-a-zA-Z]*" attribute="At Rule"/>
                <IncludeRules context="FindComments"/>
            </context>

            <context name="AtRuleSet" attribute="Normal Text" fallthroughContext="#pop!NestedRule">
<IncludeRules context="##Twig/Twig" />
                <IncludeRules context="RuleSet"/>
            </context>


            <context name="@keyframes" attribute="At Rule Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="{" context="#pop#pop!KeyFramesBlock" attribute="Block Symbol" beginRegion="ruleset"/>
                <IncludeRules context="AtRuleCommon"/>
                <DetectIdentifier/>
            </context>
            <context name="KeyFramesBlock" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char="{" context="RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
                <DetectChar char="," attribute="Separator Symbol"/>
                <IncludeRules context="FindComments"/>
                <RegExpr attribute="Value" String="\b(from|to)\b|[-+]?[0-9.]+%"/>
            </context>


            <context name="SelectorAttr" attribute="Attribute Name">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Selector Attribute" context="#pop" char="]"/>
                <IncludeRules context="FindStrings"/>
                <DetectChar attribute="Attribute Operator" context="SelectorAttrValue" char="="/>
                <AnyChar attribute="Attribute Operator" String="~^$*|"/>
                <IncludeRules context="FindComments"/>
                <DetectIdentifier/>
                <AnyChar context="#pop" String="{};#.,:>" lookAhead="1"/>
            </context>

            <context name="SelectorAttrValue" attribute="Normal Text" fallthroughContext="SelectorAttrEnd">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <AnyChar context="SelectorAttrValueQuoted" String="&quot;'" lookAhead="1"/>
                <RegExpr context="SelectorAttrEnd" attribute="String" String="-?(\w|&escaped;)([-\w]+|&escaped;)*"/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="SelectorAttrValueQuoted" attribute="String" fallthroughContext="#pop!SelectorAttrEnd">
<IncludeRules context="##Twig/Twig" />
                <IncludeRules context="FindStrings"/>
            </context>
            <context name="SelectorAttrEnd" attribute="String" fallthroughContext="#pop#pop#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop" char="]"/>
                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="i" char1="]" lookAhead="1"/>
                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="I" char1="]" lookAhead="1"/>
                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="s" char1="]" lookAhead="1"/>
                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="S" char1="]" lookAhead="1"/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="SelectorAttrValueSensitiveOp" attribute="String">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop#pop" char="]"/>
                <AnyChar attribute="Attribute Operator" String="isIS"/>
            </context>

            <context name="PseudoClassOrElement" attribute="Selector Pseudo" lineEndContext="#pop" fallthroughContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char=":" attribute="Selector Pseudo"/>
                <WordDetect String="lang" attribute="Selector Pseudo" context="PseudoClassStr"/>
                <WordDetect String="part" attribute="Selector Pseudo" context="PseudoClassStr"/>
                <RegExpr String="nth-[-a-zA-Z0-9]*" attribute="Selector Pseudo" context="PseudoClassNth"/>
                <RegExpr String="[-a-zA-Z]+" attribute="Selector Pseudo" context="#pop"/>
                <IncludeRules context="FindComments"/>
            </context>

            <context name="PseudoClassStr" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char="(" context="PseudoClassStrInner" attribute="Selector Pseudo"/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="PseudoClassStrInner" attribute="Error">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
                <DetectChar char="{" context="#pop#pop#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
                <DetectChar char=":" context="#pop#pop#pop!PseudoClassOrElement" attribute="Error"/>
                <RegExpr String="\s*&ident;(\s+&ident;|\s+)*" attribute="String"/>
                <IncludeRules context="FindComments"/>
            </context>

            <context name="PseudoClassNth" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char="(" context="PseudoClassNthInner" attribute="Selector Pseudo"/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="PseudoClassNthInner" attribute="Normal Text" fallthroughContext="#pop#pop!PseudoClassSelector">
<IncludeRules context="##Twig/Twig" />
                <Int attribute="Number" additionalDeliminator="-"/>
                <AnyChar String="+-" attribute="Operator"/>
                <DetectChar char="n" attribute="Unit"/>
                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
                <WordDetect String="odd" attribute="Value"/>
                <WordDetect String="even" attribute="Value"/>
                <WordDetect String="of" attribute="Keyword" context="#pop#pop!PseudoClassSelector"/>
                <IncludeRules context="FindComments"/>
                <DetectSpaces/>
            </context>

            <context name="PseudoClassSelector" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char=")" context="#pop" attribute="Selector Pseudo"/>
                <DetectChar attribute="Selector Pseudo" context="NestedPseudoClassSelector" char="("/>
                <IncludeRules context="FindSelector"/>
                <DetectChar char="{" context="#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
            </context>
            <context name="NestedPseudoClassSelector" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char="{" context="#pop" lookAhead="1"/>
                <IncludeRules context="PseudoClassSelector"/>
            </context>

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

            <context name="RuleSet" attribute="Normal Text" fallthroughContext="Rule">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
                <DetectChar attribute="Block Symbol" context="RuleSet" char="{" beginRegion="ruleset"/>
                <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
                <IncludeRules context="FindComments"/>
                <AnyChar context="Selector" String=".#:,[*>+~|&amp;" lookAhead="1"/>
            </context>

            <context name="Selector" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Block Symbol" context="#pop!RuleSet" char="{" beginRegion="ruleset"/>
                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
                <DetectChar context="#pop!SelectAtRule" char="@" lookAhead="1"/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindSelector"/>
            </context>

            <context name="Rule" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Property Separator" context="RuleParameters" char=":"/>
                <Detect2Chars attribute="Variable" context="PropertyVariable" char="-" char1="-"/>
                <IncludeRules context="FindComments"/>
                <AnyChar context="#pop!Selector" String=".#,[*>+~|&amp;@{}" lookAhead="1"/>
                <keyword attribute="Property" String="properties"/>
                <DetectSpaces attribute="Normal Text"/>
                <IncludeRules context="FindVendorProperty"/>
                <RegExpr attribute="Unknown Property" String="[-_a-zA-Z]*"/>
            </context>
            <context name="PropertyVariable" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <RegExpr attribute="Variable" context="#pop" String="[-_a-zA-Z0-9]*"/>
            </context>

            <context name="RuleParameters" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <!-- Jump out conditions -->
                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
                <DetectChar attribute="Block Symbol" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
                <DetectChar attribute="Separator Symbol" char=","/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindFunctions"/>
                <IncludeRules context="FindValues"/>
            </context>

            <context name="Function" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <IncludeRules context="FunctionInc"/>
                <DetectChar attribute="Error" context="#pop#pop#pop" char=";"/>
                <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
                <DetectChar attribute="Error" context="#pop#pop#pop!RuleSet" char="{" beginRegion="ruleset"/>
            </context>
            <context name="NestedFunction" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <IncludeRules context="FunctionInc"/>
                <AnyChar context="#pop" String="{};" lookAhead="1"/>
            </context>
            <context name="FunctionInc" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Function" context="FunctionParameters" char="("/>
                <StringDetect attribute="Function" context="FunctionVar" String="var("/>
                <StringDetect attribute="Function" context="FunctionCalc" String="calc("/>
                <StringDetect attribute="Function" context="FunctionUrl" String="url("/>
                <StringDetect attribute="Function" context="FunctionEnv" String="env("/>
                <keyword attribute="Function" String="functions"/>
                <!-- Legacy -->
                <WordDetect attribute="Function" String="rgba"/>
                <WordDetect attribute="Function" String="hsla"/>
                <RegExpr attribute="Unknown Function" String="&func;"/>
            </context>

            <context name="FunctionVar" attribute="Normal Text" fallthroughContext="FunctionVarSep">
<IncludeRules context="##Twig/Twig" />
                <RegExpr String="&var;" context="FunctionVarSep" attribute="Variable"/>
                <DetectSpaces/>
                <IncludeRules context="FindComments"/>
            </context>
            <context name="FunctionVarSep" attribute="Normal Text" fallthroughContext="FunctionVarParam">
<IncludeRules context="##Twig/Twig" />
                <DetectChar char=")" context="#pop#pop#pop" attribute="Function"/>
                <DetectChar char="," context="FunctionVarParam" attribute="Separator Symbol"/>
            </context>
            <context name="FunctionVarParam" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar char=")" context="#pop#pop#pop#pop" attribute="Function"/>
                <AnyChar String=";{}" context="#pop#pop#pop" lookAhead="1"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindNestedFunctions"/>
                <IncludeRules context="FindValues"/>
            </context>

            <context name="FunctionEnv" attribute="Normal Text" fallthroughContext="FunctionVarSep">
<IncludeRules context="##Twig/Twig" />
                <RegExpr String="&ident;" context="FunctionVarSep" attribute="Normal Text"/>
                <DetectSpaces/>
                <IncludeRules context="FindComments"/>
            </context>

            <context name="FunctionCalc" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
                <IncludeRules context="Calc"/>
            </context>
            <context name="NestedCalc" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Normal Text" context="#pop" char=")"/>
                <IncludeRules context="Calc"/>
            </context>
            <context name="Calc" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Separator Symbol" char=","/>
                <DetectChar attribute="Normal Text" context="NestedCalc" char="("/>
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindComments"/>
                <AnyChar attribute="Operator" String="*/%"/>
                <IncludeRules context="FindNestedFunctions"/>
                <IncludeRules context="FindNumber"/>
                <RegExpr String="[-+]?((?i:infinity|e|pi)|NaN)($|[^-\w])|[-+]($|[\s(,;]|/\*)" context="CalcConstantOrOperator" lookAhead="1"/>
                <IncludeRules context="FindIdentifier"/>
            </context>
            <context name="CalcConstantOrOperator" attribute="Normal Text" fallthroughContext="#pop">
<IncludeRules context="##Twig/Twig" />
                <DetectIdentifier context="#pop" attribute="Calc Constant"/>
                <AnyChar String="-+" attribute="Operator"/>
            </context>

            <context name="FunctionUrl" attribute="Normal Text" fallthroughContext="UrlValue">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <IncludeRules context="FindStrings"/>
            </context>
            <context name="UrlValue" attribute="String">
<IncludeRules context="##Twig/Twig" />
                <DetectChar attribute="Function" context="#pop#pop#pop" char=")"/>
                <AnyChar String=";{}" context="#pop#pop" lookAhead="1"/>
            </context>

            <context name="FunctionParameters" attribute="Normal Text">
<IncludeRules context="##Twig/Twig" />
                <DetectSpaces/>
                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
                <DetectChar attribute="Separator Symbol" char=","/>
                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
                <IncludeRules context="FindComments"/>
                <IncludeRules context="FindStrings"/>
                <IncludeRules context="FindNestedFunctions"/>
                <IncludeRules context="FindValues"/>
            </context>

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

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

            <context name="InsideString" attribute="String">
<IncludeRules context="##Twig/Twig" />
                <RegExpr attribute="SpecialChar" String="\\([0-9A-Fa-f]{1,6}|.?)"/>
                <RegExpr attribute="String" String="\\?[^&quot;'\\]+"/>
            </context>

        </contexts>

        <itemDatas>
            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
            <itemData name="At Rule Text" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Media Type" defStyleNum="dsAnnotation" spellChecking="false"/>
            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
            <itemData name="Vendor Property" defStyleNum="dsKeyword" spellChecking="false" italic="1"/>
            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Property Separator" defStyleNum="dsChar" spellChecking="false"/>
            <itemData name="String" defStyleNum="dsString"/>
            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
            <itemData name="Block Symbol" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
            <itemData name="Named Color" defStyleNum="dsConstant" spellChecking="false"/>
            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
            <itemData name="Unknown Function" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Calc Constant" defStyleNum="dsDecVal" spellChecking="false"/>
            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
            <itemData name="Condition Open/Close" defStyleNum="dsFunction" spellChecking="false"/>
            <itemData name="Condition Property" defStyleNum="dsKeyword" spellChecking="false"/>
            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
            <itemData name="Selector Symbol" defStyleNum="dsOperator" spellChecking="false"/>
            <itemData name="Attribute Name" defStyleNum="dsSpecialString" spellChecking="false"/>
            <itemData name="Attribute Operator" defStyleNum="dsOperator" 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="*/" region="comment"/>
        </comments>
    </general>

</language>
<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->


<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT ***** -->
