This PR replaces the CSS parser and printer from css to postcss since css wasn't updated for 4 years and GitHub is using many modern CSS features like @layer which css failed to parse.
PostCSS is actively maintained and is used in modern projects like Vite, so it should last for a long time.
Commit Details:
At-rules (like @media) are dropped but with an exception that rules in @layer are treated as top-level rules. Because GitHub is refactoring some of its colors into layers, e.g.
Obviously this treatment has a risk when GitHub is refactoring some low-priority styles into layers that appears later in the stylesheets (since we parse and process them in order). Not happend for now, though.
Previously this package depended on got to fetch URLs. Now it uses the native global fetch() function, which was stabilized since Node.js 18.
This PR replaces the CSS parser and printer from
css
topostcss
sincecss
wasn't updated for 4 years and GitHub is using many modern CSS features like@layer
whichcss
failed to parse.PostCSS is actively maintained and is used in modern projects like Vite, so it should last for a long time.
Commit Details:
At-rules (like
@media
) are dropped but with an exception that rules in@layer
are treated as top-level rules. Because GitHub is refactoring some of its colors into layers, e.g.Obviously this treatment has a risk when GitHub is refactoring some low-priority styles into layers that appears later in the stylesheets (since we parse and process them in order). Not happend for now, though.
Previously this package depended on
got
to fetch URLs. Now it uses the native globalfetch()
function, which was stabilized since Node.js 18.Output Diff