keyframes parsing as empty declarations
Opened this issue · 4 comments
rockrep commented
css with @Keyframes rules parse as empty rule sets
css_parser (1.4.1)
css = "@keyframes shimmer {\n 0% {\n background-position: top left;\n }\n 100% {\n background-position: top right;\n }\n}"
parser = CssParser::Parser.new
parser.add_block!(css)
parser.each_rule_set do |rule_set, media_types|
p rule_set
end
#<CssParser::RuleSet:0x007fca9ce49030 @selectors=["@keyframes shimmer"], @specificity=nil, @declarations={}, @order=0>
=> [{:media_types=>[:all], :rules=>#<CssParser::RuleSet:0x007fca9ce49030 @declarations={}, @order=0, @selectors=["@keyframes shimmer"], @specificity=nil>}]
grosser commented
Please open a PR :)
rockrep commented
Would be happy to. But I could use a clue as to where the fix should go
grosser commented
sry, no idea, I'm not really an expert on the internals ...
maybe check a few recent PRs ... chances are it's a similar area ...
rockrep commented
@Keyframes uses nested braces of declarations, and the rest of the parser code in https://github.com/premailer/css_parser/blob/master/lib/css_parser/parser.rb#L248 isn't really setup to handle that. A fix has eluded me so far.