diff --git a/pygments/lexers/css.py b/pygments/lexers/css.py index 4d7cb46fe3..71f27dc55f 100644 --- a/pygments/lexers/css.py +++ b/pygments/lexers/css.py @@ -249,7 +249,7 @@ class CssLexer(RegexLexer): ], 'function-start': [ (r'\s+', Whitespace), - (r'[-]+([\w+]+[-]*)+', Name.Variable), + (r'[-]+([A-Za-z][\w+]*[-]*)+', Name.Variable), include('urls'), (words(_vendor_prefixes,), Keyword.Pseudo), (words(_keyword_values, suffix=r'\b'), Keyword.Constant), diff --git a/tests/snippets/css/percent_in_func.txt b/tests/snippets/css/percent_in_func.txt new file mode 100644 index 0000000000..9fce9bde63 --- /dev/null +++ b/tests/snippets/css/percent_in_func.txt @@ -0,0 +1,51 @@ +---input--- +.target-img { + position: absolute; + top: 25%; + left: 50%; + transform: translate(-50%, -50%); +} + +---tokens--- +'.' Punctuation +'target-img' Name.Class +' ' Text.Whitespace +'{' Punctuation +'\n ' Text.Whitespace +'position' Keyword +':' Punctuation +' ' Text.Whitespace +'absolute' Keyword.Constant +';' Punctuation +' \n ' Text.Whitespace +'top' Keyword +':' Punctuation +' ' Text.Whitespace +'25' Literal.Number.Integer +'%' Keyword.Type +';' Punctuation +' \n ' Text.Whitespace +'left' Keyword +':' Punctuation +' ' Text.Whitespace +'50' Literal.Number.Integer +'%' Keyword.Type +';' Punctuation +' \n ' Text.Whitespace +'transform' Keyword +':' Punctuation +' ' Text.Whitespace +'translate' Name.Builtin +'(' Punctuation +'-50' Literal.Number.Integer +'%' Keyword.Type +',' Punctuation +' ' Text.Whitespace +'-50' Literal.Number.Integer +'%' Keyword.Type +')' Punctuation +';' Punctuation +'\n' Text.Whitespace + +'}' Punctuation +' \n' Text.Whitespace