-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Recently @asamuzaK has been doing lots of work on improving jsdom's cssstyle package.
It eventually got to the point where the coupling between jsdom and cssstyle code was very high, so in jsdom/cssstyle#318 I proposed merging cssstyle into jsdom.
In the process of doing so (jsdom/jsdom#4089), I realized that @acemir/cssom which jsdom is currently using for its cssom classes is annoyingly coupled to the existence of a standalone cssstyle package. And @acemir/cssom is a pretty messy package anyway, e.g. with its ES5 syntax and custom build system. So I got Claude to make its own CSSOM implementation, with the goal being at least parity with @acemir/cssom. The result is jsdom/jsdom#4092 .
I am currently going through Claude's first draft and fixing various issues or filing todos for known spec mismatches. (I have so far made it down to CSSImportRule-impl.js, in the alphabetical list of cssom files.) In the process of doing so I found spec bugs like w3c/csswg-drafts#13612. And that reminded me you were working on this.
The code in @cdoublev/css for the CSSOM classes looks really good. Much nicer than what Claude and I have created. And more comprehensive.
And the scope of this project is... massive? You have your own CSS parser? You have an implementation of CSSStyleDeclaration and CSSStyleProperties!? I'm unsure how you're handling the complex parts of the latter, like @asamuzaK has in https://github.com/jsdom/cssstyle/tree/main/lib/properties , but maybe your custom serializer makes it just work?
So... what's missing? When can we drop this into jsdom? If we do, does this replace all of the current functionality of cssstyle and @acemir/cssom? (Maybe also css-tree and @asamuzakjp/css-color?)